Stap 5: Arduino Sketch
/*
Een open-source binaire klok voor Arduino.
Op basis van de code uit door Rob Faludi (http://www.faludi.com)
Code onder (cc) door Daniel Spillere Andrade, www.danielandrade.net
http://creativecommons.org/License/CC-GPL
*/
int tweede = 0, minuten = 0, uur = 0; de begintijd op 00:00:00
int munit, hunit, valm = 0, valh = 0, ledstats, i;
void setup {//set uitgangen en ingangen
pinMode (1, OUTPUT); pinMode (2, OUTPUT); pinMode (3, OUTPUT); pinMode (4, OUTPUT), pinMode (5, OUTPUT);
pinMode (6, OUTPUT); pinMode (7, OUTPUT); pinMode (8, OUTPUT); pinMode (9, OUTPUT), pinMode (10, OUTPUT);
pinMode (11, OUTPUT), pinMode (12, OUTPUT); pinMode (13, OUTPUT);
pinMode (0, INPUT);
}
void loop {}
statische unsigned long lastTick = 0; een lokale variabele instellen om te houden van de laatste keer zijn we verhuisd naar voren één seconde
(statische variabelen zijn geïnitialiseerd zodra en houden van hun waarden tussen de functieaanroepen van de)
verplaatsen naar voren één seconde elke 1000 milliseconden
Als (millis() - lastTick > = 1000) {}
lastTick = millis();
tweede ++;
}
één minuut om de 60 seconden vooruit
Als (tweede > = 60) {}
minuut ++;
tweede = 0; seconden weer op nul gezet
}
een uur om de 60 minuten vooruit
Als (minuut > = 60) {}
uur ++;
minuten = 0; minuten weer op nul gezet
}
Als (uur > = 24) {}
uur = 0;
minuten = 0; minuten weer op nul gezet
}
Munit = minuut % 10; Hiermee stelt u de variabele munit en hunit voor de cijfers van de eenheid
hunit = uur % 10;
ledstats = digitalRead(0); Lees de invoerwaarde, voor verrekening van leds, maar houden van de graaf
Als (ledstats == LOW) {}
voor (ik = 1; ik < = 13; i ++) {}
digitalWrite (i, laag);}
} else {}
minuten eenheden
Als (munit == 1 || munit == 3 || munit == 5 || munit == 7 || munit == 9) {digitalWrite (1, hoog);} else {digitalWrite(1,LOW);}
Als (munit == 2 || munit == 3 || munit == 6 || munit == 7) {digitalWrite (2, HIGH);} else {digitalWrite(2,LOW);}
Als (munit == 4 || munit == 5 || munit == 6 || munit == 7) {digitalWrite (3, hoge);} else {digitalWrite(3,LOW);}
Als (munit == 8 || munit == 9) {digitalWrite (4, HIGH);} else {digitalWrite(4,LOW);}
minuten
Als ((minuut > = 10 & & < 20 minute) || (minuut > = 30 & & < 40 minute) || (minuut > = 50 & & < 60 minute)) {digitalWrite (5, hoge);} else {digitalWrite(5,LOW);}
Als (minuut > = 20 & & < 40 minute) {digitalWrite (6, hoge);} else {digitalWrite(6,LOW);}
Als (minuut > = 40 & & < 60 minute) {digitalWrite (7, hoge);} else {digitalWrite(7,LOW);}
uur eenheden
Als (hunit == 1 || hunit == 3 || hunit == 5 || hunit == 7 || hunit == 9) {digitalWrite (8, hoge);} else {digitalWrite(8,LOW);}
Als (hunit == 2 || hunit == 3 || hunit == 6 || hunit == 7) {digitalWrite (9, hoge);} else {digitalWrite(9,LOW);}
Als (hunit == 4 || hunit == 5 || hunit == 6 || hunit == 7) {digitalWrite (10, hoge);} else {digitalWrite(10,LOW);}
Als (hunit == 8 || hunit == 9) {digitalWrite (11, hoge);} else {digitalWrite(11,LOW);}
uur
Als (uur > = 10 & & uur < 20) {digitalWrite (12, hoge);} else {digitalWrite(12,LOW);}
Als (uur > = 20 & & uur < 24) {digitalWrite (13, hoge);} else {digitalWrite(13,LOW);}
}
valm = analogRead(0); toevoegen van één minuut wanneer gedrukt
if(valm<800) {}
minuut ++;
tweede = 0;
delay(250);
}
valh = analogRead(5); toevoegen van één uur wanneer gedrukt
if(valh<800) {}
uur ++;
tweede = 0;
delay(250);
}
}