]> git.piffa.net Git - sketchbook_andrea/blob - advanced_projects/state_machine/blink/blink_1/blink_1.ino
c119794d589d3a90e4c9edec46b75b4c7f3dfce5
[sketchbook_andrea] / advanced_projects / state_machine / blink / 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         digitalWrite(led, HIGH);  // Mette il PIN del LED in stato acceso
31         delay(pausa);              // Aspetta un secondo (mille millisecondi)
32
33         stato = off ; // Setta il prossimo state
34         break;
35
36     case off:
37         digitalWrite(led, LOW);   // Mette il PIN del LED in stato spento
38         delay(pausa);               // Aspetta mezzo secondo
39
40         stato = on ;
41         break;
42     }
43 }