Etape 3: Comment ça marche
Le principe de ce projet os Nombre binaire.
Pour chaque nombre de heures, minutes et secondes, vous devez les convertir de base 10 (décimal) à base 2 (binaire) et à les coder en segments de « A à G » de l’écran.
Mais c’est très facile à l’aide de la programmation de l’Arduino.
Tous les nombres entiers à l’intérieur de la fourchette d’heures (de 00 à 23), minutes et secondes (00 à 59) sont inférieures à 64, et donc ils peuvent être organisés dans les 7 segments.
Jetez un oeil là-dessus :
// A// ------ // | | // F | | B // | G | // ------ // | | // E | | C // | D | // ------// 0 // ------ // | | // 16 | | 1 // | 32 | // ------ // | | // 8 | | 2 // | 4 | // ------
Vous pouvez voir le corresponce parfait entre : Segments--> >--binaire (Base 2)
G=32 / F=16 / E=8 / D=4 / C=2 / B=1 / A=0 32 16 8 4 2 1 0 G F E D C B A
Mais bon!!! Il y a un truc ici !
N’oubliez pas que Base 2 commence à partir de 1 (2 puissance 0) et pas de zéro !
Zéro signifie dans ce cas que le segment correspondant d’affichage est défini sur Off et je veux que le premier segment doit être défini sur On.
Comment pouvons-nous y parvenir ?
Jetez un oeil la suite des déclarations d’émissions :
if (mm == 0) { shiftOut(dataPin, clockPin, MSBFIRST, 1); } else { shiftOut(dataPin, clockPin, MSBFIRST, mm << 1); }
J’ai d’abord vérifier si le variablle mm (minutes) est égale à zéro. Dans l’affirmative, je force la LED sera définie sur.
Pour tous les nombres supérieurs à zéro, j’ai passer une à gauche du nombre binaire correspondant au segment correct que j’ai besoin avec la commande hh << 1.
Exemple :
Minutes = 0 est alors binaire 00000000 et il aura la valeur 00000001
Minutes = 5 alors binaire est 00000101 et il sera MAJ gauche une position à 00001010