X-Git-Url: http://git.piffa.net/web?a=blobdiff_plain;f=advanced_projects%2Fstate_machine%2Fblink%2Fblink_1%2Fblink_1.ino;fp=advanced_projects%2Fstate_machine%2Fblink%2Fblink_1%2Fblink_1.ino;h=c119794d589d3a90e4c9edec46b75b4c7f3dfce5;hb=92687f500a1e7aed1fe35540e4f4aee5f8bcf6a1;hp=0000000000000000000000000000000000000000;hpb=ae89c245050fa3a4ced19f8e7ea2aa5c1ba2a4a2;p=sketchbook_andrea diff --git a/advanced_projects/state_machine/blink/blink_1/blink_1.ino b/advanced_projects/state_machine/blink/blink_1/blink_1.ino new file mode 100644 index 0000000..c119794 --- /dev/null +++ b/advanced_projects/state_machine/blink/blink_1/blink_1.ino @@ -0,0 +1,43 @@ +/* + 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; + } +}