From: Andrea Manni Date: Mon, 6 Feb 2017 17:52:19 +0000 (+0100) Subject: SFM: fixed times intervas for pause X-Git-Url: http://git.piffa.net/web?a=commitdiff_plain;h=be1dfd3e9cfafbf56bc78ad53c08eaa6cd8d502d;p=sketchbook_andrea SFM: fixed times intervas for pause --- diff --git a/advanced_projects/state_machine/semaforo_3_millis/semaforo_3_millis.ino b/advanced_projects/state_machine/semaforo_3_millis/semaforo_3_millis.ino index 50eb1ae..68825a6 100644 --- a/advanced_projects/state_machine/semaforo_3_millis/semaforo_3_millis.ino +++ b/advanced_projects/state_machine/semaforo_3_millis/semaforo_3_millis.ino @@ -48,15 +48,15 @@ switch (state) { led.Green(); if (millis() - timer >= pausa * 2/3) { state = wait_button ; - timer = millis(); + timer += pausa * 2/3 ; } break; case wait_button: if (digitalRead(input) == LOW) { state = turn_yellow ; // Il passaggio di stato avviene alla pressione di un bottone - timer = millis(); delay(20); // Debouncing, si potrebbe fare con millis() + timer = millis(); }; break; @@ -68,7 +68,7 @@ switch (state) { led.Yellow(); if (millis() - timer >= pausa * 2/3) { state = turn_red ; - timer = millis(); + timer += pausa * 2/3; } break; @@ -80,7 +80,7 @@ switch (state) { led.Red(); if (millis() - timer >= pausa) { state = turn_green ; - timer = millis(); + timer += pausa ; } break; diff --git a/advanced_projects/state_machine/semaforo_4_doppio/semaforo_4_doppio.ino b/advanced_projects/state_machine/semaforo_4_doppio/semaforo_4_doppio.ino index 1ad650b..ab22ae0 100644 --- a/advanced_projects/state_machine/semaforo_4_doppio/semaforo_4_doppio.ino +++ b/advanced_projects/state_machine/semaforo_4_doppio/semaforo_4_doppio.ino @@ -54,14 +54,14 @@ switch (state) { case green: if (millis() - timer => pausa * 2/3) { state = wait_button ; - timer = millis(); + timer += pausa * 2/3 ; } break; case wait_button: if (digitalRead(input) == LOW) { - state = turn_yellow ; // Il passaggio di stato avviene alla pressione di un bottone delay(20); // Debouncing, si potrebbe fare con millis() + state = turn_yellow ; // Il passaggio di stato avviene alla pressione di un bottone timer = millis(); }; @@ -75,7 +75,7 @@ switch (state) { case yellow : if (millis() - timer >= pausa / 3) { state = turn_red ; - timer = millis(); + timer += pausa / 3; } break; @@ -88,7 +88,7 @@ switch (state) { case red : if (millis() - timer >= pausa /3) { state = turn_sec_yellow ; - timer = millis(); + timer += pausa /3 ; } break; @@ -100,7 +100,7 @@ switch (state) { case sec_yellow : if (millis() - timer >= pausa / 3) { state = turn_green ; - timer = millis(); + timer += pausa /3; } break; diff --git a/advanced_projects/state_machine/semaforo_5_doppia_fsm/semaforo_5_doppia_fsm.ino b/advanced_projects/state_machine/semaforo_5_doppia_fsm/semaforo_5_doppia_fsm.ino index 602af74..dfcc362 100644 --- a/advanced_projects/state_machine/semaforo_5_doppia_fsm/semaforo_5_doppia_fsm.ino +++ b/advanced_projects/state_machine/semaforo_5_doppia_fsm/semaforo_5_doppia_fsm.ino @@ -51,15 +51,15 @@ switch (FSM1) { case green: if (millis() - timer >= pausa * 2/3) { FSM1 = wait_button ; - timer = millis(); + timer += pausa * 2/3; } break; case wait_button: if (digitalRead(input) == LOW) { + delay(20); // Debouncing, si potrebbe fare con millis() o un interrupt FSM1 = turn_yellow ; timer = millis(); - delay(20); // Debouncing, si potrebbe fare con millis() }; break; @@ -72,7 +72,7 @@ switch (FSM1) { case yellow : if (millis() - timer >= pausa * 2/3) { FSM1 = turn_red ; - timer = millis(); + timer += pausa * 2/3 ; } break; @@ -102,7 +102,7 @@ switch (FSM2) { case green: if (millis() - timer >= pausa * 2/3) { FSM2 = turn_yellow; - timer = millis(); + timer += pausa * 2/3; } break; @@ -114,7 +114,7 @@ switch (FSM2) { case yellow : if (millis() - timer >= pausa / 3) { FSM2 = turn_red ; - timer = millis(); + timer += pausa * 2/3; } break;