Étape 6: Code d’Arduino : séquences
Le code de l’Arduino que vous pouvez télécharger ici est mis en place pour un 5v Adafruit TrinketPro. Vous pouvez utiliser n’importe quel microcontrôleur Arduino, j’ai choisi le Adafruit un parce qu’il est petit et peu coûteux. J’ai essayé annoter le code afin qu’un débutant comme moi pourrait voir comment les différentes lignes de code. Voici quelques faits saillants pour un débutant complet :
Séquences : Les LEDs et numitron sont contrôlés par séquences envoyés pour les registres à décalage. Il y a 9 LEDs et 7 filaments numitron = 16 choses à la lumière. Registre à décalage 1 poignées 8 des LEDs. Registre à décalage 2 gère la dernière LED et le numitron. Les bits sont chargés dans les registres à décalage 2 séries de 8 (un jeu pour chaque registre à décalage) et puis les 16 bits d’information sont envoyés dans les LEDs et le numitron.
La séquence d’octets 1er va à la 2e Registre à décalage qui est la numitron. En fait, il pénètre dans le premier registre à décalage mais puis obtient « déplacé » à la seconde quand arrive le 2ème set de 8 octets.
Supposons que vous voulez allumer tous les 9 LEDs et le numéro 9 sur le numitron. Dans ce cas, tous les octets dans le registre à décalage premier doivent être « sur » et chacun d’eux dans le second doivent être sur sauf le dernier d'entre eux (voir le schéma de câblage de la numitron si cela est source de confusion pour vous). Ainsi, nous avons besoin de deux séries de 8 bits, ce qui nous pouvons représenter comme ceci :
B11111111 et B11111110 (où le B11111110 est envoyé en premier mais finit vers le haut dans le registre à décalage 2ème)
La déclaration ci-dessus doit s’allumer de presque tout et est la chose plus raides que nous demandons le système à faire - à ~ 20 milliampères par LED ou filament, nous demandons le microcontrôleur à sortie 15 x 20 = 300 milliampères. Pas grand chose, mais c’est 2 x ce que le TrinketPro est conçu pour. Donc, mon code souligne le Conseil de microcontrôleur pour 600 millisecondes ; Il fonctionne très bien, mais peut-être il grillera lui-même plus vite que la normale, je ne sais pas encore.
Pour s’allumer 8 LEDs et le numéro 8 sur le numitron nous procédez comme suit :
B1111111 et B01111111
parce que nous voulons les 8 premières LEDs sur mais pas le 9e (qui est représenté par la valeur 0 qui vient après le deuxième B ci-dessus). Le reste de la séquence est comme ceci :
7: B01111111 et B00001110
6: B00111111 et B11111100
5: B00011111 et B01111100
4: B00001111 et B00110110
3: B00000111 et B01101110
2: B00000011 et B11101010
1: B00000001 et B00000110
0: B00000000 et B11011110
Vérifiez le code pour voir les choses ci-dessus comme code adruino. Je l’ai cassé en deux séquences distinctes. Il y a un total de 4 séquences dans le code ; deux qui sont utilisés à l’époque « attendre le bouton à pousser » et 2 qui servent à rebours à partir de 9 à 0 pendant le temps de mesure. Par ailleurs, il existe d’autres façons de coder cela, je ne sais pas eux encore.