]> git.piffa.net Git - sketchbook_andrea/blob - advanced_projects/state_machine/blink_1/blink_1.ino
8f1f3be40892de9f631ddaf6187b1a4cd616aad6
[sketchbook_andrea] / advanced_projects / state_machine / blink_1 / blink_1.ino
1 /*
2   Blink FSM
3
4   Accensione e spegnimanto di un LED utilizzando
5   una FSM 2 stati statici.
6
7 Costrutto switch basato su uno struct.
8
9  */
10
11 // Dichiarazione variabili
12 int led = 13;
13 int pausa = 500;  // Variabile richiambile nel corso dell'esecuzione
14
15 void setup() {
16     // Inizializziamo il PIN 13 come OUTPUT
17     pinMode(led, OUTPUT);
18 }
19
20 enum fsm_stati { // Stati della FMS
21     on,
22     off
23 };
24
25 fsm_stati stato;
26
27 void loop() {
28     switch (stato){
29     case on :
30         // Machine: operazioni svolte
31         digitalWrite(led, HIGH);  // Mette il PIN del LED in stato acceso
32         delay(pausa);              // Aspetta un secondo (mille millisecondi)
33
34         // State: gestione degli stati
35         stato = off ; // Setta il prossimo state
36         break;
37
38     case off:
39         digitalWrite(led, LOW);   // Mette il PIN del LED in stato spento
40         delay(pausa);               // Aspetta mezzo secondo
41
42         stato = on ;
43         break;
44     }
45 }