Помогите пожалуйста разобраться со скетчем! Нужно, чтобы по нажатию кнопки последовательно включались 2 реле с паузой около 5 сек. При повторном нажатии выключались в обратном порядке тоже с паузой. Набросал вот это: Код (C++): int pinButton = 8; int Relay1 = 2; int Relay2 = 3; int stateRelay1 = HIGH; int stateRelay2 = HIGH; int stateButton; int previous = LOW; long time = 0; long debounce = 500; void setup() { pinMode(pinButton, INPUT); pinMode(Relay1, OUTPUT); pinMode(Relay2, OUTPUT); } void loop() { stateButton = digitalRead(pinButton); if(stateButton == HIGH && previous == LOW && millis() - time > debounce) { if(stateRelay1 == HIGH && stateRelay2 == HIGH){ stateRelay1 = LOW; stateRelay2 = LOW; } else { stateRelay2 = HIGH; stateRelay1 = HIGH; } time = millis(); } digitalWrite(Relay1, stateRelay1); digitalWrite(Relay2, stateRelay2); previous == stateButton; } Работает почти как надо, только не получается задать паузу между включениями реле. Если вставить delay(), то оба реле включаются и выключаются по истечении паузы звдвнной.
ну так вы же сами их включаете и выключаете синхронно. Если надо по отдельности - так и включайте по отдельности.
Это не так просто, как кажется. Ваша система может находится в 4х состояниях 1. Оба реле выключены 2. Одно реле включена, идет задержка на включение второго 3. Оба реле включены 4 Одно реле выключено, идет задержка на выключение второго Далее нужно определить, что делает кнопка в каждом из этих состояний. Вы пока указали только что будет при нажатии в состояниях 1 и3, а состояниях 2 и 4 - нет. Далее создаете переменную. где храните состояние системы. каждый раз когда состояние меняется - меняете и переменную. Если вдруг кнопка нажата - смотрите. какое состояние и по табличке отрабатываете нужное действие