/* Maszyna stanów wersja 2 ma za zadanie wyeliminować funkcję delay przez stosowanie timerów */ int led_r = 10; int led_y = 11; int led_g = 12; int time_led = 0; long time_str = 0; long time_stp=0; long interwal = 0; void setup() { pinMode(led_r, OUTPUT); pinMode(led_y, OUTPUT); pinMode(led_g, OUTPUT); Serial.begin(9600); } // the loop routine runs over and over again forever: void loop() { // funkcja mills() sprawdza ile milisekund już działa program time_str = millis(); interwal = millis() - time_str ; while (interwal<6001) { interwal = millis() - time_str ; Serial.print(interwal); if (interwal < 2001 or interwal > 5500) { digitalWrite(led_r, HIGH); } else { digitalWrite(led_r, LOW); } if (interwal > 1500 and interwal < 4001) { digitalWrite(led_y, HIGH); } else { digitalWrite(led_y, LOW); } if (interwal > 3500 and interwal < 6001) { digitalWrite(led_g, HIGH); } else { digitalWrite(led_g, LOW); } } }