ArduinoState machine

Vaak hebben we een situatie dat als we op een knop drukken er iets gebeurd, een LED gaat branden of een belletje rinkelen. Om dat langdurig te laten zijn moeten we de knop ingedrukt houden.

Hier willen we dat niet. We hebben hier 4 LEDs. Drie rode LEDs om de status aan te geven en een groene LED om de 'niet in gebruik' status aan te geven. Bij Button1 zal er een verandering in de status optreden. De volgende LED zal gaan branden. 1, 2, 3 en dan weer overnieuw, 1, 2, etc.

Indien er 'niet in gebruik' is, dan zal de groene LED branden. Als er dan op button1 gedrukt zal worden dan zal de eerste status actief worden.

Bij het drukken op button2 zal de status weer resetten naar 'niet in gebruik'.

Om te voorkomen dat de status continue zal wijzigen zolang we button1 ingedrukt houden, gaan we alleen iets doen als we button1 loslaten! Dit doen we door een state machine mechanisme te gebruiken. Als we button1 indrukken dan markeren we dat (variable buttonPressed). We doen echter nog niets. We gaan pas iets doen als we de knop weer hebben losgelaten.



ArduinoBreadboard