04-01-2020, 20:50
Witam potrzebuję program taki żeby migał 2 diodami naprzemiennie ale bez użycia "delay" bo ona zamraża cały program znalazłem kod z użyciem "millis" i wszystko ok ale nie potrafię go zmusić do tego żeby diody migały naprzemiennie mógłby ktoś mi to poprawić z góry dzięki
Kod:
int stan2 = LOW;
int stan3 = LOW;
unsigned long miganie2 = 1000;
unsigned long miganie3 = 2000;
unsigned long aktualnyCzas = 0;
unsigned long zapamietanyCzas2 = 0;
unsigned long zapamietanyCzas3 = 0;
void setup(){
Serial.begin(9600);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
}
void loop(){
//Pobierz liczbe milisekund od startu
aktualnyCzas = millis();
//Jeśli różnica wynosi ponad miganie2
if (aktualnyCzas - zapamietanyCzas2 >= miganie2) {
//Zapamietaj aktualny czas
zapamietanyCzas2 = aktualnyCzas;
//Zmieniamy stan diody na przeciwny
stan2 = !stan2;
//ustawiamy nowy stan na diodzie
digitalWrite(2, stan2);
}
//Jeśli różnica wynosi ponad miganie3
if (aktualnyCzas - zapamietanyCzas3 >= miganie3) {
//Zapamietaj aktualny czas
zapamietanyCzas3 = aktualnyCzas;
//Zmieniamy stan diody na przeciwny
stan3 = !stan3;
//ustawiamy nowy stan na diodzie
digitalWrite(3, stan3);
}
}