]> git.piffa.net Git - sketchbook_andrea/blobdiff - advanced_projects/state_machine/blink/blink_2_trans/blink_2_trans.ino
FSM reorder
[sketchbook_andrea] / advanced_projects / state_machine / blink / blink_2_trans / blink_2_trans.ino
diff --git a/advanced_projects/state_machine/blink/blink_2_trans/blink_2_trans.ino b/advanced_projects/state_machine/blink/blink_2_trans/blink_2_trans.ino
deleted file mode 100644 (file)
index 1841f87..0000000
+++ /dev/null
@@ -1,106 +0,0 @@
-/*
-  Blink FSM
-
-  Accensione e spegnimanto di un LED utilizzando
-  una FSM  con 4 stati, statici e di transizione.
-
-Costrutto switch basato su uno struct.
-
- */
-
-// Dichiarazione variabili
-int led = 11; // PWM
-int pausa = 1000;  // Variabile richiambile nel corso dell'esecuzione
-byte lum = 0 ;
-
-void setup() {
-    // Inizializziamo il PIN 13 come OUTPUT
-    pinMode(led, OUTPUT);
-}
-
-enum fsm_stati { // Stati della FMS
-    on,     // Statico
-    to_off, // Transizione
-    off,
-    to_on
-};
-
-fsm_stati stato ;
-
-void loop() {
-    switch (stato) {
-    case on :
-       // Operativa: Machine
-        digitalWrite(led, HIGH);  // Mette il PIN del LED in stato acceso
-        delay(pausa);              
-
-       // Stati
-        stato = to_off ; // Setta il prossimo state
-        lum = 255;
-        break;
-
-    case to_off :
-        while (lum > 0) {
-            lum-- ;
-            analogWrite(led, lum);  // Mette il PIN del LED in stato acceso
-            delay(1);              
-        }
-
-        stato = off ; // Setta il prossimo state
-        break;
-
-    case off:
-        digitalWrite(led, LOW);   // Mette il PIN del LED in stato spento
-        delay(pausa);             
-
-        stato = to_on ;
-        lum = 0;
-        break;
-
-    case to_on :
-        while (lum < 255) {
-            lum++ ;
-            analogWrite(led, lum);  // Mette il PIN del LED in stato acceso
-            delay(1);              
-        }
-
-        stato = on ; // Setta il prossimo state
-        break;
-    }
-}
-
-/* Domande:
-
- 1.Cosa comporta l'uso della funzione delay?
- 2.Come si puo' modificare lo sketch per poter eseguire piu' conpiti contemporaneamente?
-
-Esercizi successivi:
-- Creare una FSM con un LED RGB avente due stati Red e Green, una transizione yellow tra i due
-- Creare una FSM per la gestione di un semaforo 
-       (esempio disponibile in sketchbook_andrea/advanced_projects/state_machine )
-
- .
- .
- .
- .
- .
- .
- .
- .
- .
- .
- .
- .
- .
- .
- .
- .
- .
- .
- .
- .
- Soluzioni:
-
- 1.Delay rende il codice blocking, null'altro puo' essere eseguito durante i delay
- 2.Si potrebbe utilizzare millis(), vedi esercizi multitasking
-*/