--- /dev/null
+/*
+ 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 :
+ digitalWrite(led, HIGH); // Mette il PIN del LED in stato acceso
+ delay(pausa); // Aspetta un secondo (mille millisecondi)
+
+ 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;
+ }
+}