Je hebt in deze tweede cyclus een prototype gemaakt voor een lantaarnpaal met behulp van een (externe) infraroodsensor of de lichtsensor op de Micro:bit. Voor beide sensoren zijn geen event-handlers. Bijvoorbeeld zoiets als: het was licht en nu is het donker. Vergelijk dit met een knopje indrukken en weer loslaten.
In plaats daarvan gebruikte je zoiets als dit, waarmee je controleer of het op dat moment donker is.
Soms reageert het systeem dus op een verandering, soms reageert het op een bepaalde situatie. Zie de voorbeelden in de tabel hieronder.
Verandering | Situatie | |
Drukknop | De drukknop wordt ingedrukt: de drukknop verandert van niet ingedrukt naar wel ingedrukt | De drukknop is ingedrukt (iemand heeft zijn vinger op dit moment op de knop) |
Afstandssensor | Er komt een object binnen een afstand van 20,0 cm | Er is een object binnen een afstand van 20,0 cm. |
Temperatuur | De temperatuur verandert van lager dan 21,0 graden naar groter dan of gelijk aan 21,0 graden. | De temperatuur is groter dan of gelijk aan 21,0 graden. |
Licht | De lichtintensiteit was eerst groter dan of gelijk aan 100 (>=100) maar is nu kleiner dan 100 (<100). | De lichtintensiteit is kleiner dan 100. |
Event-handlers gebruik je typsich bij veranderingen. Maar zoals je hebt kunnen zien, niet voor alle veranderingen is een event-handler beschikbaar in de programmeeromgeving. De Micro:bit heeft standaard een event-handler voor de volgende verandering: de drukknop wordt ingedrukt en weer losgelaten:
Maar er is geen event-handler voor een verandering in de temperatuur.
In de praktijk heb je het daar echter ook niet altijd nodig en kun je prima uit de voeten met de blokjes het systeem reageert op een situatie, afhankelijk van de toestand waarin het systeem verkeert. Je kunt hier bij het maken van het toestandsdiagram ook rekening mee houden door de keuze van de gebeurtenissen.
In de volgende paragraaf volgt een concreet voorbeeld om het verschil tussen verandering en situatie verder te verhelderen.