Stap 7: software deel - uitleg van de code (2)
5) schrijven van de code voor de knoppen, tijd voor uren en minuten in te stellen. Hier gaan wij een debounce code gebruiken met de druk op de knop om te voorkomen dat meerdere veranderingen met elke druk op deu kunt kijken naar de verwijzing hier: http://www.arduino.cc/en/Tutorial/Debounce
int hourState = digitalRead(hourPin); int buttonState; de huidige hourstate van de invoer pin lange lastDebounceTime = 0; de laatste keer dat de uitgang-pins was van een knevel gevoorzid Aanpassing van het uur Als (hourState == HIGH) {} Minute aanpassing
int minState = digitalRead(minPin);
int lastButtonState = laag; de eerdere hourstate van de invoer pin
int buttonState2; de huidige hourstate van de invoer pin
int lastButtonState2 = laag; de eerdere hourstate van de invoer pin
lange debounceDelay = 50; de ontdendering tijd; verhoging als de uitvoer flikkert
Als de knop wordt ingedrukt
1) de debouncing timer reset
2) nemen de ontdendering vertraging als de huidige status
3) ingestelde tijd
4) het opslaan van de hourstat
lastDebounceTime = millis();
Als ((millis()-lastDebounceTime) > debounceDelay) {}
buttonState = hourstate;
}
time_t t = now();
t = t + 3600;
setTime(t);
lastButtonState = hourstate;
}
Als (minState == HIGH) {}
lastDebounceTime = millis();
Als ((millis()-lastDebounceTime) > debounceDelay) {}
buttonState2 = minstate;
}
time_t t = now();
t = t + 60;
setTime(t);
lastButtonState2 = minstate;
}
6) laatste deel is het verschuiven van de gegevens. Een zeer god tutorial kan hier worden gevonden:
http://Arduino.CC/en/Reference/ShiftOut
h = hourFormat12(); Als (previousHours! = h) {} digitalWrite (hlatchPin, hoge); digitalWrite (dlatchPin, hoge); digitalWrite (mlatchPin, hoge);
m = minute();
digitalWrite (hlatchPin, laag);
shiftOut (hdataPin, hclockPin, MSBFIRST, (number_to_display [h] >> 8));
shiftOut (hdataPin, hclockPin, MSBFIRST, hours_display[h]);
previousHours = h;
}
Als (previousMins! = m) {}
minuten = m;
Als (mins > = 10) {}
d = 0;
terwijl (mins > = 10) {}
minuten = minuten - 10;
d = d + 1;
}
digitalWrite (dlatchPin, laag);
shiftOut (ddataPin, dclockPin, MSBFIRST, (number_to_display [d] >> 8));
shiftOut (ddataPin, dclockPin, MSBFIRST, number_to_display[d]);
digitalWrite (mlatchPin, laag);
shiftOut (mdataPin, mclockPin, MSBFIRST, (number_to_display [min] >> 8));
shiftOut (mdataPin, mclockPin, MSBFIRST, number_to_display[mins]);