/* Blink FSM Accensione e spegnimanto di un LED utilizzando una FSM 2 stati statici. Costrutto switch basato su uno struct. */ // Dichiarazione variabili int led = 13; int pausa = 500; // Variabile richiambile nel corso dell'esecuzione void setup() { // Inizializziamo il PIN 13 come OUTPUT pinMode(led, OUTPUT); } enum fsm_stati { // Stati della FMS on, off }; fsm_stati stato; void loop() { switch (stato) { case on : // Machine: operazioni svolte digitalWrite(led, HIGH); // Mette il PIN del LED in stato acceso delay(pausa); // Aspetta un secondo (mille millisecondi) // State: gestione degli stati stato = off ; // Setta il prossimo state break; case off: digitalWrite(led, LOW); // Mette il PIN del LED in stato spento delay(pausa); // Aspetta mezzo secondo stato = on ; break; default: // Opzionale, quando non si verificano altre condizioni break; } }