Stap 6: Arduino code: sequenties
De Arduino-code die u hier kunt downloaden is ingesteld voor een Adafruit TrinketPro 5v. U kunt elke Arduino microcontroller, ik pakte de Adafruit een omdat het is klein en goedkoop. Ik probeerde te annoteren van de code, zodat een beginner als ik kon zien wat de verschillende coderegels doen. Hier zijn enkele hoogtepunten voor een complete newbie:
Reeksen: De numitron en de LEDs worden beheerd door de sequenties die zijn verzonden naar de registers van de verschuiving. Er zijn 9 LEDs en 7 numitron filamenten = 16 dingen aan het licht omhoog. Shift register 1 handvatten 8 van de LED's. Shift register 2 behandelt de laatste LED en de numitron. De bits zijn geladen in de registers van de verschuiving in 2 sets van 8 (een set voor ieder shift register) en dan de 16-bits van informatie worden verzonden naar de LED's en de numitron.
De 1ste bytevolgorde gaat naar de 2de shift register, dat de numitron is. Eigenlijk komt het eerste shift register maar dan krijgt 'Ontheemd' aan de tweede als de 2de set van 8 bytes wordt geleverd in.
Stel dat u wilt licht alle 9 LEDs en het nummer 9 op de numitron. In dit geval, moeten alle bytes in het eerste shift register 'op' en alle van hen in de tweede moet op met uitzondering van de laatstgenoemde (terug te verwijzen naar het bedradingsschema van de numitron als het dit is verwarrend voor u). We moeten dus twee sets van 8 bits, die wij als volgt vertegenwoordigen kunnen:
B11111111 en B11111110 (waar de B11111110 wordt verzonden eerst maar einden omhoog in het 2de shift register)
De verklaring hierboven moet oplichten bijna alles en is het meest belasten wat dat wij het systeem vragen te doen - op ~ 20 milliampère per LED of gloeilamp, vragen wij de microcontroller aan uitvoer 15 x 20 = 300 milliampère. Niet veel, maar dat is 2 x wat de TrinketPro wordt beoordeeld voor. Dus, mijn code benadrukt de microcontroller-board voor 600 milliseconden; het werkt prima, maar misschien het zal branden zich uit sneller dan normaal, weet ik nog niet.
Wij doen dit om het oplichten van de 8 LEDs en de nummer 8 op de numitron:
B1111111 en B01111111
omdat we willen dat de eerste 8 LEDs op maar niet de 9e (die wordt vertegenwoordigd door de 0 die na de tweede B hierboven komt). De rest van de volgorde is als volgt:
7: B01111111 en B00001110
6: B00111111 en B11111100
5: B00011111 en B01111100
4: B00001111 en B00110110
3: B00000111 en B01101110
2: B00000011 en B11101010
1: B00000001 en B00000110
0: B00000000 en B11011110
Controleer de code om te zien van de bovenstaande dingen als adruino code. Ik brak het in twee aparte reeksen. Er zijn een totaal van 4 sequenties in de code; twee die worden gebruikt tijdens de ' voor de knop te worden geduwd ' wachttijd, en 2 die worden gebruikt voor het tellen van 9 naar 0 tijdens de tijd van de meting. By the way, er zijn andere manieren om te coderen dit, alleen weet ik hen nog niet.