Stap 1: Het programma:
Door een beknopte handleiding doorlezen en kijken voorbeelden (hier en daar) kwam ik het volgende programma:
(sorry ik weet niet hoe te halen zulks in een mooi venster)
/ * Leren hoe te programmeren Arduino * /
/ * door Rob van Staalduinen - Nederland * /
byte num [] = {192,249,164,176,153,146,130,248,128,144,64,121,36,48,25,18,2,120,0,16};
matrix met getallen 0-9 en 0. -9. (voor urencijfer [1])
byte tijd [] = {0,0,0,0}; matrix voor het aanbrengen van de tijd
byte push; knop-push vertraging teller
void setup)
{voor (byte een = 3; een < = 13; a ++) / / datapins 4 tot en met 13 naar uitvoer sets
{pinMode(a,OUTPUT);} 3 = zoemer 4 = klink 7 = clk 8 = data 10-13 = leds
digitalWrite(3,HIGH);} stopt de buzzerd van het piepen
void loop
{lang snelheid = 37500+(1024-analogRead(0)) * 2; / / tijd verandert teller; tijd-speed voor
differend planken gebruiken potmeter op schild
voor (byte c = 10; c < = 13; c ++) / / leds loop
{digitalWrite(c,HIGH);} seconden geleide sets [c] op off
Voor (lange een = 0; een < = snelheid; a ++) / / vertraging van de timer
{Als (analogRead(1)==LOW) / / leest button1
{tijd [1] = tijd [1] +(!push); push = 60;} voegt 1 uur
Als (analogRead(2)==LOW) / / button2 leest
{tijd [2] = tijd [2] +(!push); push = 60;} voegt 10 minuten
Als (analogRead(3)==LOW) / / leest button3
{tijd [3] = tijd [3] +(!push); push = 60;} voegt 1 tot minuten
push push =-(push>0); down-teller voor knop-push
Als (tijd [3] > 9) {tijd [3] = 0; tijd [2] = tijd [2] + 1;} / / ingesteld minuten + 10 als meer dan 9 en ga naar 0
Als (tijd [2] > 5) {tijd [2] = 0; tijd [1] = tijd [1] + 1;} / / uur + 1 als meer dan 5 en ga op 0 ingesteld
Als (tijd [1] > 9) {tijd [1] = 0; tijd [0] = tijd [0] + 1;} / / uur + 10 indien ingesteld meer dan 9 en ga naar 0
Als ((tijd [0] > 1) & & (tijd [1] > 3)) {tijd [1] = 0; tijd [0] = 0; / / uur op 0 ingesteld als hoger dan 23
digitalWrite(3,LOW); delay(30);digitalWrite(3,High);} elk uur piept
voor (char b = 0; b < = 3; b ++) / / loop voor het schrijven van 4 cijfers
{digitalWrite(4,LOW); / / uitgangen uitschakelen
shiftOut (8,7, MSBFIRST,(num[time[b]+10*(b==1)])); schrijft nummer-data
shiftOut (8,7, MSBFIRST,(241+(b==1)+3*(b==2)+7*(b==3))); schrijft cijfers-data
digitalWrite(4,HIGH);} gegevens verzenden uitgangen
digitalWrite(a/(speed/4)+10,LOW);} Hiermee stelt u 15 seconden geleid
tijd [3] = tijd [3] + 1;} voegt 1 minuut tijd