ребята подскажите пж как в коде реализовать if( digitalRead(MyRoom_button2)==LOW && MyRoom_flag2 == 0) { MyRoom_flag2=1; delay(50); } if( digitalRead(MyRoom_button2)==LOW && MyRoom_flag2 == 1) { delay(50); digitalWrite(MyRoom_relay, !digitalRead(MyRoom_relay)); MyRoom_flag2=0; } мне нужно чтоб по протяжению 3-х секунд если кнопка не была повторно нажата флаг обнулился
Комментарии: 18
Anonim
кнопку вешаешь на прерывание, в прерывании выставляешь флаг и фиксируешь millis дета в переменной в лупе сравниваешь, обрабатываешь, наслаждаешься я так делал например, удобненько
Sifun
стоит понимать что датчики кислорода имеют срок жизни и хранение и использование расходует его
Beron
аха как и многие вот тут неплохой ассортимент https://www.compel.ru/lib/ne/2017/8/4-perevesti-dyihanie-datchiki-winsen-dlya-kontrolya-kachestva-vozduha если ссылка не допустима то удалит
Loool
ну если я в лупе буду сравнивать это выходит не оч удобно ибо если не успеваешь в тайминг лупа нажать тогда выходит хрень одним словом. я вот думаю может запуск отдельной функции на отсчет чтоб отсчет работал не постоянно а при первом нажатие
Anonim
не-не, тайминг лупа побоку, у тебя флаг выставляется в интеррапте
Sifun
базово датчик кислорода это банальная батарейка использующая кислород из атмосферы на катализаторе как окислитель для электрохимической реакции
Anonim
и к следующему проходу он уже выставится и время зафиксируется минус сходу только один, если луп долгий - до обработки нажатия может пройти некоторое время, пока до нужного места не дотопает
Anonim
А как прерывания в ардуино иде обрабатывать? Там есть упрощённый интерфейс для этого?
Anonim
нипанимать что есть обрабатывать
Anonim
Ну как «повесить кнопку на прерывание»?
Anonim
пин задефайнил, ф-цию напейсал, на пин хендлер навесил, фсьо
Anonim
https://www.arduino.cc/reference/en/language/functions/external-interrupts/attachinterrupt/
Anonim
const byte interruptPin = 14; void enableBacklight(){ enableBacklit=1; } в сетапе: pinMode(interruptPin, INPUT_PULLUP); attachInterrupt(digitalPinToInterrupt(interruptPin), enableBacklight, RISING);
Anonim
Да, я про аттач интеррапт спрашивал. Спасибо
Anonim
велкам, чо
Anonim
Не знал, интересно почему в туториялах для детей этого нет. Может, я недостаточно глубокие туторы смотрел
Anonim
типа такого
Beron
в общем то так но параметры будут очень размытые и завтсеть от много чего пока применю датчик что привел выше путем сравнения что на улице и в комнате