]> git.piffa.net Git - sketchbook_andrea/blobdiff - advanced_projects/state_machine/semaforo_2_2_doppio/semaforo_2_2_doppio.ino
Data type con funzione
[sketchbook_andrea] / advanced_projects / state_machine / semaforo_2_2_doppio / semaforo_2_2_doppio.ino
index e25b487136fc134c0a8f017e3889fb322917b9e5..0d7271e0f9f5fee4acebcdbe86983bc4f55ba604 100644 (file)
@@ -26,18 +26,20 @@ enum states_available { // Stati della FMS
     red
 };
 
-states_available FSM1  ;
-states_available FSM2 ;
+states_available FSM1  = turn_green; // Semaforo principale
+states_available FSM2 = turn_red; // Semaforo secondario
 
 
+RGBLed led_main(11, 10, 9); 
+RGBLed led_secondary(8, 7, 6); 
+
 void setup() {
   pinMode(input, INPUT_PULLUP);
   Serial.begin(9600);
   Serial.flush();
+  led_secondary.Red();
 }
 
-RGBLed led_main(11, 10, 9); 
-RGBLed led_secondary(8, 7, 6); 
 
 void loop() {
 switch (FSM1) {
@@ -65,7 +67,7 @@ switch (FSM1) {
     delay(pausa/3);
     led_main.Red();
     FSM1 = red ;
-    FSM2 = turn_green; // Stimolo al semafor secondario
+    FSM2 = turn_green; // **** Stimolo al semaforo secondario
     break;
 
     case red :
@@ -89,12 +91,13 @@ switch (FSM2) {
     case turn_red :
     led_secondary.Yellow();
     delay(pausa/3);
-    FSM1 = turn_green ;
+    FSM1 = turn_green ; // ****
     FSM2 = red ;
+    led_secondary.Red();
     break;
 
     case red :
-    led_secondary.Red();
+    // niente da fare, statico
     break;
 }
 // Debug