Задержка без delay();
- Войдите на сайт для отправки комментариев
Вс, 20/09/2015 - 00:01
Здравствуйте.
У меня такая проблема.
Есть код:
val = digitalRead(in1); vall = digitalRead(in2); digitalWrite(out1,val); digitalWrite(out2,vall);
И мне нужно,чтобы он 30 секунд работал,а 30 секунд не работал. С delay(); это сделать не получилось. С millis(); тоже,видимо где-то допускаю ошибку или чего-то не понимаю. Буду благодарен за помощь!
long timeStartMeas; int in1 = 3; int in2 = 5; int out1 = 8; int out2 = 9; int val = 0; int vall =0; void setup() { timeStartMeas = millis(); pinMode(in1,INPUT); pinMode(in2,INPUT); pinMode(out1,OUTPUT); pinMode(out2,OUTPUT); } void loop() { long currentTime = millis(); if(currentTime - timeStartMeas >= 30000) { digitalWrite(out1,LOW); digitalWrite(out2,LOW); delay(30000) } else { timeStartMeas = currentTime; val = digitalRead(in1); vall = digitalRead(in2); digitalWrite(out1,val); digitalWrite(out2,vall); } return; }
Полный код.
polkiloqq
Так как-то, по-моему.
dimax,Datak,большое спасибо!