## Timers programmeren voor de Micro:bit

In dit deel laten we zien hoe je een timer kunt programmeren voor de Micro:bit en welke blokken je daarvoor nodig hebt. We laten de volgende onderdelen zien:

- de timer starten
- de timer loopt af
- de timer resetten
- de timer uitzetten

### De timer starten

In het algemene deel van cyclus 2 heb je kunnen zien dat je een variable nodig hebt, we noemen deze variabele: timerEindtijd.

Het starten van de timer doe je als volgt.

De looptijd (ms) geeft aan hoe lang de Micro:bit al aan staat, in miliseconden. Daar tel je 5000 miliseconden (= 5 seconden) bij op. De timer loopt dus over 5 seconden af.

### De timer loopt af

Om na te gaan of de timer afloopt gebruik je het volgende:

Je controleert dus op de looptijd van de Micro:bit inmiddels groter of gelijk is aan de eindtijd van de timer. Als dat zo is, zijn de 5 seconden verstreken en loopt de timer dus af.

Een voorbeeld:

Je start de timer bij de looptijd van 12.000 milliseconden (dat is 12 seconden). De timerEindtijd wordt dan 12.000 + 5.000 = 17.000 milliseconden. Bij een looptijd van 12.500 milliseconden gaat de timer niet af, want de volgende uitdrukking is dan NIET WAAR:

12.500 >= 17.000

Een paar seconden later is de looptijd bijvoorbeeld 17.400 milliseconden. De timer loopt dan wel af, want de volgende uitdrukking is dan WAAR:

17.400 >= 17.000

### De timer resetten of herstarten

Het resetten of herstarten van een timer is hetzelfde als het starten van de timer.

### De timer uitzetten

Het uitzetten van een timer kan niet en hoeft ook niet. Als in een bepaalde toestand binnen het toestandsdiagram de timer niet belangrijk is, wordt simpelweg niet gecontroleerd of de timer afloopt. Eigenlijk is de vergelijking met de kookwekker in die zin niet helemaal goed. Een kookwekker geeft namelijk een alarm (hard piepen bijvoorbeeld) waardoor jij weet dat het tijd is om de eieren uit de pan te halen. Als je niet wilt dat het alarm afgaat moet je de kookwekker eerder uitzetten.

Bij een timer werkt dat iets anders. Het programma controleert steeds of de tijd al is verstreken. En als de timer niet meer nodig is, controleer het programma niet meer of de tijd al is verstreken.