Re order
authorAndrea Manni <andrea@piffa.net>
Mon, 13 Mar 2017 11:12:22 +0000 (12:12 +0100)
committerAndrea Manni <andrea@piffa.net>
Mon, 13 Mar 2017 11:12:22 +0000 (12:12 +0100)
advanced_projects/state_machine/semaforo_2_1_stimolo/semaforo_2_1_stimolo.ino
advanced_projects/state_machine/semaforo_2_2_doppio/semaforo_2_2_doppio.ino
advanced_projects/state_machine/semaforo_3_millis/semaforo_3_millis.ino
advanced_projects/state_machine/semaforo_4_doppio_single_FSM/semaforo_4_doppio_single_FSM.ino
advanced_projects/state_machine/semaforo_rgb/semaforo_rgb.ino

index b151838..99ea8a5 100644 (file)
@@ -13,7 +13,7 @@
 
 #include <common.h>
 const byte input = 2; // PIN del bottone
-int pausa = 3000;
+const int pausa = 3000;
 enum states_available { // Stati della FMS
     turn_green,    // Dinamico, transizione
     green,         // Statico
@@ -51,7 +51,6 @@ switch (state) {
     state = turn_red ; // Il passaggio di stato avviene alla pressione di un bottone
     delay(20);
     };
-
     break;
 
     case turn_red :
index e25b487..e561361 100644 (file)
@@ -26,8 +26,8 @@ enum states_available { // Stati della FMS
     red
 };
 
-states_available FSM1  ;
-states_available FSM2 ;
+states_available FSM1  ; // Semaforo principale
+states_available FSM2 ; // Semaforo secondario
 
 
 void setup() {
@@ -65,7 +65,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 +89,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
index 4cc7dcb..0b3c415 100644 (file)
@@ -18,6 +18,7 @@
 const byte input = 2; // PIN del bottone
 int pausa = 3000;
 long timer ;
+
 enum states_available { // Stati della FMS
     green,         // Statico
     wait_button,   // Evento - Stimolo
@@ -52,7 +53,7 @@ case green:
 
 case wait_button:
     if (digitalRead(input) == LOW) {
-        state = turn_yellow ; // Il passaggio di stato avviene alla pressione di un bottone
+        state = turn_yellow ; 
         delay(20); // Debouncing, si potrebbe fare con millis()
         timer = millis();
     };
index be9bb04..0ab3b51 100644 (file)
@@ -24,11 +24,11 @@ enum states_available { // Stati della FMS
     turn_green,    // Dinamico, transizione
     green,         // Statico
     wait_button,   // Evento - Stimolo
-    turn_yellow,      // Dinamico, transizione
-    yellow,            // Statico
+    turn_yellow,   // Dinamico, transizione
+    yellow,        // Statico
     turn_red,      // Dinamico, transizione
-    turn_sec_yellow,  // Yellow per semaforo secondario
-    sec_yellow,
+    turn_sec_yellow,// Yellow per semaforo secondario
+    sec_yellow,     // Statico
     red            // Statico
 };
 
index 3260dbb..5d86aa9 100644 (file)
@@ -8,9 +8,10 @@ Version: singolo semaforo + millis + memoria giallo
 
    Uno stimolo esterno rappresentato dalla pressione di un bottone
    causa il passaggio di stato.
+   Il semaforo resta verde fino a quando non riceve lo stimolo
+   (es passaggio pedonale).
 
    Implementata con millis() invece che con delay(),
-   sono stati aggiuntu due stati per meglio gestire lo stato yellow.
 
    */
 
@@ -18,6 +19,8 @@ Version: singolo semaforo + millis + memoria giallo
 const byte input = 2; // PIN del bottone
 int pausa = 3000;
 long timer ;
+boolean wait = 0; // Memoria bottone
+
 enum states_available { // Stati della FMS
     green,         // Statico
     yellow,            // Statico
@@ -25,7 +28,6 @@ enum states_available { // Stati della FMS
 };
 
 states_available state  ;
-boolean wait = 0;
 
 
 void setup() {
@@ -34,8 +36,7 @@ void setup() {
     timer = millis();
 }
 
-RGBLed led(11, 10, 9); //Istanziamo un oggetto led facente parte
-// della classe RGBLed
+RGBLed led(11, 10, 9); 
 
 void loop() {
     switch (state) {