Ren binär LED väggklocka med Arduino (3 / 4 steg)
Steg 3: Programmera Arduino & testa skissen
Jag använde den skiss som används av:
med mindre modifieringar suite arduino styrelsen jag hade köpt. Detta var pro mini jag köpte från Ebay för runt Rs 200. Den skiss som används är nedan:
#include
int hourLEDs [] = {5, 4, 3, 2}; listan i den ordning med 1 första int minuteLEDs [] = {A4, A3, A2, A1, A0, 13}; int secondLEDs [] = {11, 10, 9, 8, 7, 6}; stift 11 = LSB = 1, pin10 = 2, pin9 = 4, pin8 = 8, pin7 = 16, pin6 = 32 sekunder int loopLEDs [] = {A4, A3, A2, A1, A0, 13, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2};
int switchPin = 0;
void setup()
{för (int jag = 0; jag < 4; i ++) {pinMode (hourLEDs [i], produktionen);} för (int jag = 0; jag < 6; i ++) {pinMode (minuteLEDs [i], produktionen);} för (int jag = 0; jag < 6; i ++) {pinMode (secondLEDs [i], produktionen);} setTime(0);}
void loop()
{om ((digitalRead (switchPin) == 0)) //when växel är aktiverad, tid snabbar upp så att du kan ange tid {adjustTime(1);} annat
om (minute() == 0 & & second() == 0) {spin(hour());
}
updateDisplay(); Delay(1); }
void updateDisplay() {tid t = now(), setOutput (hourLEDs, 4, hourFormat12 (t)); setOutput (minuteLEDs, 6, minute(t)); setOutput (secondLEDs, 6, second(t));
}
void setOutput (int * ledArray, int numLEDs, int värde) {för (int jag = 0; jag < numLEDs; i ++) {digitalWrite (ledArray [i], bitRead (värde, jag));}}
Annullera spin (int antal) //spins lampor i varje timme {för (int jag = 0; jag < greve; i ++) {för (int j = 0; j < 16; j ++) {digitalWrite (loopLEDs [j], hög); delay(50); digitalWrite (loopLEDs [j], låg);}}}
Eftersom Arduino styrelsen inte har ett USB-gränssnitt, hade jag använt en USB till TTL gränssnitt och används kontakterna och sköt den skiss till styrelsen via min stationära dator USB-port och Arduino IDE. När planeringen är klar, kan du felsöka och test bearbetning av skissen med enda lysdioder ansluten med 560 ohm nuvarande begränsa motstånd på en skärbräda bara för att säkerställa att skissen fungerar som laddas upp. Du kan koppla in 6 lysdioder på en given tid och kontrollera timmar, minuter och sekunder stiften separat för att arbeta. Detta är bara att konstatera att programvaran fungerar som definieras och det finns inga överraskningar senare.