Stap 2 - Tellen maar!
In stap 2 bouwen we verder op de code die we in stap 1 al hebben neergezet. Nu gaan we de loop()
functie verder invullen en zorgen dat we ook echt kunnen gaan tellen.
Zorg ervoor dat de loop()
functie er zo uitziet:
void loop() {
// Met digitalRead lezen we een 1 (HIGH)
// of een 0 (LOW) van pin A3
int val = digitalRead(A3);
// Wanner de pin HIGH (1) is..
if(val == HIGH) {
// Als het knopje is ingedrukt,
// verhogen we aantal met 1
aantal++;
// Dan printen we het aantal
// naar de Serial Monitor
Serial.print("Het knopje is ");
Serial.print(aantal);
Serial.println(" seconden ingedrukt");
} else {
// Als de pin LOW is (knopje NIET ingedrukt),
// dan resetten we het aantal naar 0
aantal = 0;
}
// Nu een seconde wachten
delay(1000);
}
Het stuk code hierboven lijkt erg sterk op de code die we in Opdracht B hebben neerzeten. Er zitten twee subtiele verschillen in:
- Als er niet op de knop wordt gedrukt, wordt onze variabele
aantal
weer op 0 gezet - In plaats van 100ms wachten we nu 1000ms (1 seconde).
Op deze manier telt de Marvin iedere seconde totdat je het knopje weer los laat.