]> git.piffa.net Git - sketchbook_andrea/blobdiff - advanced_projects/state_machine/blink/blink_1/blink_1.ino
Rover prima lezione
[sketchbook_andrea] / advanced_projects / state_machine / blink / blink_1 / blink_1.ino
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 (file)
index 0000000..c119794
--- /dev/null
@@ -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;
+    }
+}