]> git.piffa.net Git - sketchbook_andrea/blob - advanced_projects/state_machine/blink/blink.ino
State machine e blinks con millis()
[sketchbook_andrea] / advanced_projects / state_machine / blink / blink.ino
1 /*
2    Blink con state machine
3
4    Introduzione alle state machine
5
6    */
7 int led = 13;
8 int pausa = 1000;
9 enum states_available { // Stati della FMS
10     turn_on,    // Dinamico, transizione
11     on,         // Statico
12     turn_off,
13     off
14 };
15
16 states_available state  ;
17
18 void setup() {
19   pinMode(led, OUTPUT); 
20   Serial.begin(9600);
21   Serial.flush();
22 }
23
24 void loop() {
25 switch (state) {
26     case turn_on :
27     digitalWrite(led, HIGH);
28     state = on ; // Setta il prossimo state
29     break;
30
31     case on:
32     delay(pausa);
33     state = turn_off ;
34     break;
35
36     case turn_off :
37     digitalWrite(led, LOW);
38     state = off ;
39     break;
40
41     case off :
42     delay(pausa);
43     state = turn_on ;
44     break;
45
46     default:    // In caso di default si fa turn_off
47     digitalWrite(led, LOW);
48     state = off ;
49     break;
50
51 }
52 Serial.print(millis()); 
53 Serial.print(" \t Stato attuale ");
54 Serial.println(state);
55
56 }