Compteur de la qualité de vie (4 / 10 étapes)

Étape 4: Firmware

Le code s’exécute en trois étapes générales: 1) lire en et diviser la position de pot, 2) décider ce qu’il faut afficher, 3) de la commande appropriée pour du 595 sortie.

Étape 1 est contenue dans sa propre fonction définie par l’utilisateur. Vous lisez d’abord la broche analogique attaché au potentiomètre. Cela se traduira par une lecture entre 0-682 (n’oubliez pas que nous sommes sur 3.3V, pas 5). Ensuite nous voulons retourner une valeur de 0-11, qui représente les 11 segments sur notre thermomètre, pour le programme principal. Pour ce faire, vous effectuez un entier sur l’entrée à l’aide de la taille d’un segment, 62 (682/11 = 62). L’utilisation de la division d’entiers, qui utilise uniquement des nombres entiers, n’est pas une erreur, il permet la fonction renvoie un nombre entier sans passer à l’étape supplémentaire d’arrondir le résultat avec une autre ligne de code.

Une fois que vous exportez le segment que le pot est indiquant que le code a besoin établir une corrélation entre ce nombre de la séquence binaire qui s’allument les voyants appropriés. Les valeurs décimales qui convertissent les chaînes binaires appropriés pour contrôler de la 595 sont stockés dans un tableau où leur position dans le tableau d’idéalement est identique à la sortie du pot.

L’étape finale consiste à pousser les commandes pour de 595. L’ordre des opérations est de désactiver la goupille de verrouillage, empêchant les LEDs de modifier tandis que les nouvelles commandes sont rédigés, utilisez le changement de commande pour envoyer les chaînes binaires par l’intermédiaire de la broche de données, qui utilise la goupille horloge pour différencier les morceaux, et enfin de réactiver la goupille de verrouillage pour les nouvelles données de sortie à travers toutes les quilles en même temps.

2 TEST LED w / 74HC595 //by 2013 Bwrussell / / / * * ce programme est un logiciel libre ; vous pouvez le redistribuer et/ou le modifier * elle aux termes de la GNU General Public License telle que publiée par * la Free Software Foundation ; soit la version 2 de la licence, ou * (à votre choix) toute version ultérieure. ** Ce programme est distribué dans l’espoir qu’il sera utile, * mais sans aucune garantie ; sans même la garantie implicite de * qualité marchande ou ADEQUATION a un usage particulier. Voir la * GNU General Public License pour plus de détails. * / //74HC595-Arduino des définitions d’interface Pin //Pin connecté à ST_CP de 74HC595 int latchPin = 8 ; Broche reliée à SH_CP de 74HC595 int clockPin = 12 ; Broche reliée à la DS de 74HC595 int dataPin = 11 ; Broche reliée à la borne de balayage de la marmite #define potPin A5 //arrays qui tiennent les États LED pour chaque poste de pot, un pour chaque 595 int ledStatesA [] = {1,2,6,14,30,62,126,254,254,254,254,254} ; int ledStatesB [] = {0,0,0,0,0,0,0,0,1,3,7,15} ; Variable, Defs int knobPosition ; void setup() {//Start série pour débogage à des fins Serial.begin(9600) ; //set broches de sortie parce qu’elles sont adressées dans la boucle principale pinMode (latchPin, sortie); pinMode (clockPin, sortie); pinMode (dataPin, sortie);} void loop() {knobPosition = potRead() ; digitalWrite (latchPin, 0); //send données à la seconde 595 shiftOut (8-11) (dataPin, clockPin, ledStatesB[knobPosition]) ; //cosend données à la première 595 (0-7) shiftOut (dataPin, clockPin, ledStatesA[knobPosition]) ; //return la goupille de verrouillage haute au signal puce qu’il a besoin de //no plus de temps écouter les informations digitalWrite (latchPin , 1); } void shiftOut (int myDataPin, int myClockPin, myDataOut octet) {/ / cela décale de 8 bits sur MSB //on tout d’abord, le front de l’horloge, //clock ralenti //internal faible fonction Configuration int j’ai = 0; int pinState ; pinMode (myClockPin, sortie); pinMode (myDataPin, sortie); //clear tout juste dans le cas de //prepare Maj s’inscrire à peu mouvants digitalWrite (myDataPin, 0); digitalWrite (myClockPin, 0); pour (j’ai = 7; j’ai > = 0; i--) {digitalWrite (myClockPin , 0); Si (myDataOut & (1 << j’ai)) {pinState = 1;} else {pinState = 0;} //Sets la broche à haute ou basse selon pinState digitalWrite (myDataPin, pinState) ; enregistrer des morceaux de déplacements sur la branche ascendante de horloge broche digitalWrite (myClockPin, 1) ; zéro la broche de données après Maj pour empêcher le saignement par digitalWrite (myDataPin, 0) ; } //stop déplacement digitalWrite (myClockPin, 0) ; } / / Fonction pour la lecture et segmanting le pot entrée int potRead () {int metrów = 0; //read dans la position du pot brut, avec une moyenne de plus de 5 échantillons pour (int j’ai = 0; j’ai < 5; i ++) {metrów = metrów + analogRead(potPin);} metrów = metrów/5 ; //segment les fichiers RAW en 12 segmants égales, renvoie une valeur de 0-11 int potPosition = metrów / 60 ; //Use 60 pour 3.3V, 93 pour 5V à travers le pot //send le segment actuel de la boucle principale return potPosition;}

Le code source est disponible dans le fichier .zip (le .ino ne serait pas télécharger) et un fichier de texte brut.

Juste un bouchon rapide : dans certains des tests initiaux, j’ai utilisé le soft ArduinoDroid relativement nouveau pour Android. C’est assez impressionnant pour ce que c’est. Il vous permet d’écrire du code de l’Arduino, avec codage couleur et compilation, n’importe où, comme sur la pause déjeuner au travail. Avec un câble USB, vous pouvez également alimenter et charger sur une carte Arduino. Il y a quelques autres fonctionnalités que je n’ai pas encore utilisé comme contrôle Bluetooth et autres, mais pour un fabricant sur le pouce ou le travail sur le terrain, ce soft est phénoménal. Je le recommande fortement surtout que c’est totalement gratuit (annonce pris en charge) et illimitée. Si vous l’aimez alors vous pouvez payer une somme modique pour supprimer les publicités et soutenir le développement. Je ne sais pas qui est le développeur, mais ils basculent.

Articles Liés

Qualité de vie compteur Mk.2 - intelligents et connectés

Qualité de vie compteur Mk.2 - intelligents et connectés

Il y a quelque temps j'ai créé un compteur de la qualité de vie, basé sur une blague qui circule où je travaille. Essentiellement, c'est juste une version de la version de tableau blanc, avec que nous avons commencé LED. Lorsque vous travaillez sur c
Courtoisie : Le Hack ultime de la vie

Courtoisie : Le Hack ultime de la vie

Courtoisie un peu va un long chemin... tel un long chemin, en fait, qu'il trouve finalement c'est chemin du retour vers vous de la façon que vous êtes traité par d'autres.Si c'est vrai que "quelque chose qui rend votre routine quotidienne plus facile
Smart Metering et système de commande

Smart Metering et système de commande

Le projet développera un système de surveillance et de contrôle intelligent pour une maison d'habitation. La société moderne de nos jours apporte beaucoup de besoins pour une personne vivante alors que le temps de chercher, de réparer et de vérifier
Iontophorèse contrôlé par arduino timer

Iontophorèse contrôlé par arduino timer

DIY appareil iontophorèse propulsé par Arduino avec fonction timerCes dispositif aura un commutateur de polarité sur l'intervalle de temps programmé (ON et OFF).Étape 1: contexte HISTOIRE :L'hyperhidrose est la condition caractérisée par la transpira
Élever des papillons de soie géants

Élever des papillons de soie géants

Quand j'étais gamin, j'ai trouvé une énorme chenille verte dans l'arrière-cour qui ressemblait il avait des coccinelles qui sortent de son dos. J'ai utilisé mon livre insecte pour l'identifier et trouvé que c'était les larves de la Saturnie cécropia
Charbon de bois alimenté par générateur - gazéificateur

Charbon de bois alimenté par générateur - gazéificateur

Demandez à n'importe quel agriculteur, expert de la survie, scouts, hippie ou préparateur et ils vous diront les utilisations génial pour charbon de bois. De l'amélioration de votre jardin au filtrage de l'eau et sur le terrain de la médecine. Mais s
Introduction à la culture aquaponique

Introduction à la culture aquaponique

Quand j'ai entendu parler aquaponique, j'étais assez content. C'était un concept étranger à l'époque, en étant capables de cultiver des poissons et des plantes en harmonie. Il a fallu quelques années, mais j'ai enfin construit un système qui répond à
BRICOLAGE un humidificateur automatique Simple

BRICOLAGE un humidificateur automatique Simple

Voyons d'abord la vidéo.Dans la société actuelle, de plus en plus attention à la qualité de vie, poursuivre le milieu de vie sain et confortable. Donc nous avons fait cet appareil pour contrôler la température intérieure et l'humidité, lorsque l'humi
Contrôleur d’Irrigation framboise Pi

Contrôleur d’Irrigation framboise Pi

Jardinage améliore la santé et la qualité de vie, nous relient à notre environnement local. De plus, vous pouvez manger des fruits et légumes à très peu de frais. Encore pour tous ces avantages fantastiques, sans oublier de l'eau peut encore prendre
Robot de soins gériatriques

Robot de soins gériatriques

Au cours des dernières décennies, la technologie a avancé à un rythme rapide et répartis dans le monde entier. L'abordabilité et l'accessibilité de la technologie a apporté de nombreux avantages, y compris le mieux la recherche scientifique, meilleur
IFTTT pour ITO avec Intel Edison

IFTTT pour ITO avec Intel Edison

LE PROBLÈME :Trop d'appareils, trop d'apps (pour chaque périphérique), c'est bon pour un professionnel occupé !Nous devons non seulement un « connecté la maison » - mais aussi une « maison de Smarter » !NOTRE SOLUTION MAGIQUE :Par le biais de notre p
Minutes d’urgence téléphone chargeur 10 $9

Minutes d’urgence téléphone chargeur 10 $9

Hors tension? Grille vers le bas ? Ouragan ? Tornade ? Camping ? Apocalypse ? Cross eyed jack du bois vers le bas de la rue ?Je veux vous montrer comment faire un chargeur avec les compétences et les outils de base de téléphone bricolage rapide, simp
Soupe de tomate épicée Cheddar

Soupe de tomate épicée Cheddar

Avez-vous longtemps pour l'idéal platonicien de la soupe de tomate ? Parfaitement lisse, mais encore corsé, crémeux sans dégustation comme quelqu'un sous-évaluées littéralement crème il, et surtout, vu que je ne sais quoi de tomate saveur sans qu'auc
Passer un moteur utilisant Arduino et communication série

Passer un moteur utilisant Arduino et communication série

avez-vous déjà demandé comment les robots se déplacent ?  Avez-vous jamais voulu écrire un programme pour contrôler un robot ?  Dans l'affirmative, ce tutoriel sera un excellent pied-à-terre pour apprendre les commandes électroniques avec l'Arduino M