Управление реле по радиоканалу.
- Войдите на сайт для отправки комментариев
Сб, 07/01/2017 - 21:04
Добрый день. Нужна помощь. Нужно чтобы при нажатии на пульте кнопки, реле замыкалось, а при повторном реле размыкалось. Как это реализовать не знаю. Пока получилься такой код.
const int Rel1=10; #include <RCSwitch.h> RCSwitch mySwitch = RCSwitch(); void setup() { digitalWrite(Rel1, HIGH); pinMode(Rel1, OUTPUT); Serial.begin(9600); mySwitch.enableReceive(0); // Receiver on inerrupt 0 => that is pin #2 } void loop() { if (mySwitch.available()) { int value = mySwitch.getReceivedValue(); if (value == 0) { Serial.print("Unknown encoding"); } else { Serial.println( mySwitch.getReceivedValue() ); if(mySwitch.getReceivedValue()==7551673){Serial.print(" pir1 komnata "); } else if(mySwitch.getReceivedValue()==1326849){digitalWrite(Rel1, LOW);} // 1-е реле вкл else {Serial.print("EROR");} } mySwitch.resetAvailable(); } }
Если у вас это https://goo.gl/Dn53EO. то библиотека точно лишняя.
А как тогда?
Сделал то что хотел, но при нажатии на другие кнопки реле срабатывает (коды этих кнопок совершенно другие). Вот что получилось
Так а чего Вы хотели. Оно у Вас должно срабатывать по условию в строке 25, так. А Вы срабатывание вытащили в строки 27-38, которые от условия никак не зависят. Вот она у Вас и срабатывает по любой кнопке.
Спасибо большое. Всё работает).
Как при нажатии и удержинии кнопки любое время получить только 1 включение реле,
а при повторном нажатии и удержании кнопки любое время - 1 выключение реле ???
1. Побороть дребезг, чтобы левые сигналы не пёрли.
2. Реализовать следующую логику:
Евгений П
Что там насчет вечного цикла, а то я две недели, как ардуинщик.
При удержании кнопки на радиопульте с приемника периодически поступает код ( в моем случае
case
2276802)
и диод (реле и т.д.) блин мигает постоянно, а нужно, что бы хоть при однократном хоть при длительном нажатии кнопки пульта - реле(диод) включилось При повторном однократном (либо длительном) нажатии этой кнопки пульта -выключилось.Вечный цикл? Ну, например, функция loop - она вечно вызывается.
чет вот бы по доступней кок то?
То, что написано между "ВЕЧНЫЙ ЦИКЛ" и "КОНЦЕ ЦИКЛА" нужно выполнять бесконечное количество раз. Например, функция loop постоянно бесконечно вызывается. Так что можно все это запихнуть в неё.
Евгений
Вот все вокруг, да около ... туговато пока для меня это все В виде куска счетча никаку что-ли?
Не, никак. В виде куска скетча спросите вот здесь.
Как при нажатии и удержинии кнопки любое время получить только 1 включение реле,
а при повторном нажатии и удержании кнопки любое время - 1 выключение реле ???
Тоже очень удобная вещь. А то поставил на открывание гаража, бывает жмёшь Реле включается и тут же выключается, иногда выбешивает.
Евгений
Вот все вокруг, да около ... туговато пока для меня это все В виде куска счетча никаку что-ли?
Отрежь кусок да полож, хорошо что не требуют заливать в дуню за себя.
Для тс: Вам написали алгаритм при котором длительное нажатие не обрабатывается так как происходит обработка в момент смены состояния кнопки. Можете посде срабатывания реле добавить определенное время в течении которого реле будет невосприимчево к нажатиям