Stap 3: Programmeren van de Arduino & testen de schets
Ik gebruikte de schets gebruikt door:
met kleine wijzigingen in de arduino board suite die ik had gekocht. Dit was de pro mini die ik van Ebay voor rond Rs 200 gekocht. De schets gebruikt is hieronder:
#include
int hourLEDs [] {5, 4, 3, 2} =; lijst in volgorde van met 1 eerste int minuteLEDs [] = {A4, A3, A2, A1, A0, 13}; int secondLEDs [] {11, 10, 9, 8, 7, 6} =; PIN 11 = LSB = 1, pin10 = 2, pin9 = 4, pin8 = 8, pin7 = 16, pin6 = 32 seconden int loopLEDs [] = {A4, A3, A2, A1, A0, 13, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2};
int switchPin = 0;
VOID Setup
{voor (int i = 0; ik < 4; i ++) {pinMode (hourLEDs [i], OUTPUT);} voor (int ik = 0; ik < 6; i ++) {pinMode (minuteLEDs [i], OUTPUT);} voor (int ik = 0; ik < 6; i ++) {pinMode (secondLEDs [i], OUTPUT);} setTime(0);}
void loop
{Als ((digitalRead (switchPin) == 0)) //when-schakelaar wordt geactiveerd, tijd versnelt zodat u kunt instellen tijd {adjustTime(1);} else
Als (minute() == 0 & & second() == 0) {spin(hour());
}
updateDisplay(); delay(1); }
VOID updateDisplay() {time_t t = now(); setOutput (hourLEDs, 4, hourFormat12 (t)); setOutput (minuteLEDs, 6, minute(t)), setOutput (secondLEDs, 6, second(t));
}
VOID setOutput (int * ledArray, int numLEDs, int waarde) {voor (int i = 0; ik < numLEDs; i ++) {digitalWrite (ledArray [i], bitRead (waarde, ik));}}
VOID spin (int count) //spins van de lichten voor elk uur {voor (int ik = 0; ik < telling; i ++) {voor (int j = 0; j < 16; j ++) {digitalWrite (loopLEDs [j], hoge); delay(50); digitalWrite (loopLEDs [j], laag);}}}
Aangezien de Arduino board niet over een USB-interface beschikt, had ik een USB gewend TTL interface en gebruikt de connectors en duwde de schets in de Raad van bestuur via mijn desktop computer USB-poort en de Arduino IDE. Als de programmering wordt gedaan, u kan debug en test de werking van de schets met behulp van enkele LED's met 560 ohm huidige aangesloten weerstanden op een breadboard alleen beperken om ervoor te zorgen dat de schets als werkt geüpload. U kunt 6 LEDs op een gegeven moment haak en controleren van de uren, minuten en seconden pinnen voor werken afzonderlijk. Dit is gewoon te vergewissen dat de software werkt als gedefinieerd en er geen verrassingen later zijn.