выполнить irsend один раз
- Войдите на сайт для отправки комментариев
Чт, 21/08/2014 - 13:51
Добрый день! Пишу программу для климат контроля... Использую для управления кондиционера IR, соответственно библиотека irremote.
Сам сигнал записал, кондиционер благополучно отвечает... но при отправке сигнала моим способом сигнал шлется постоянно, пока не исполниться другое условие (Будто я зажал кнопку включения на кондиционере и он постоянно шлет сигнал). Как сделать так, чтоб сигнал (пакет) отправился только один раз? Ну или два на случай если первый не дойдет?
Код
if(t1 >= 28 || t2 >=28 ) { lcd.setCursor(7, 0); lcd.print ("ON"); irsend.sendRaw(ConditionerOn, 295, 38); } else { lcd.setCursor(7, 0); lcd.print ("OF"); irsend.sendRaw(ConditionerOff, 295, 38); } }
Ну народ, почитайте хоть статью какую по C, не?
Ну народ, почитайте хоть статью какую по C, не?
Данный способ не меняет ничего! Поставил вместо IR обычный, так он мигает постоянно с паузой в одну секунду! (
Надо просто 2 плюса между собой замкнуть после подачи сигнала. Ардуино успешно сгорит и ничего посылать больше не будет.
Данный способ не меняет ничего! Поставил вместо IR обычный, так он мигает постоянно с паузой в одну секунду! (
Навтыкайте в код отладочных принтов и будете видеть: когда какая часть кода исполняется, тогда будет видно - почему оно у Вас не работает...
Например, внутри цикла if можно выводить состояние переменных
bSentOn и
bSentOff, хотя я бы попытался проанализировать код возврата функции
irsend.sendRaw(), как более отвечающий за достоверность...
угу. а тупо присвоить переменной 1 после передачи и по ней проверять мама не разрешает?
угу. а тупо присвоить переменной 1 после передачи и по ней проверять мама не разрешает?
Спасибо кэп! Религия не позволяет!
Код вместе с отладкой. По завершению i=4 3. irsend отправил как минимум два пакета.