Двунаправленная передача IRremote. проблема
- Войдите на сайт для отправки комментариев
Сб, 10/10/2015 - 10:06
Добрый день
Прошу вашей помощи. использую ардуино нано. TSOP 36КГц и излучатель.
пользовался примерами приема и передачи по отдельности. прием с пульта работает. ик диод светится. Но нужно мне реализовать такую штуку, что на одном выводе ардуины излучатель посылает данные, и на другом выводе ардуины tsop сразу их получает и проверяет, дошли ли данные...
пишу такой код:
#include <IRremote.h> int RECV_PIN = 11; IRrecv irrecv(RECV_PIN); IRsend irsend; decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver } void loop() { irsend.sendSony(0xa90, 9); if (irrecv.decode(&results)) { Serial.println(results.value, HEX); irrecv.resume(); // Receive the next value } }
Не работает. вероятно я посылаю число, передача прекращается и потом начинается приём и ИК луча уже нет. верно?
Но не понятно почему не принимаются коды с пульта, которые раньше, с закомментированным irsend работало?
И, возвращаясь к первому вопросу... Как мне реализовать одновременную передачу и приём?
не понятно. приемная сторона обратно отсылает сигнал о получении? или контролировать что излучатель излучает?
Влюбом случае, перед приемом нужно его разрешить, аналогично 13 строке.
Потому что после отправки кода, приём выключен.
Да, контроллировать что излучатель излучает а приемник получает) ведь в комнате могут ходить и преграждать сигнал чем-либо...
разрешить прием как в строке 13 помогло, спасибо :)
но ещё обязательно задержку нужно вставить оказалось. команды пульта ардуина стала принимать...
Ну а как организовать на одном контроллере одновременную передачу и прием ?
ик-излучатель на соседнем пине ик-приемник ардуины не увидел. видимо из-за последовательного выполнения сначала излучения, потом приема.
наверное нужно изменить библиотеку irremote так, чтобы был буфер передачи и приема и потом дной командой происходил обмен? типа FIFO uart... или есть уже готовое что-то в библиотеках?
наверное нужно изменить библиотеку irremote так, чтобы был буфер передачи и приема и потом дной командой происходил обмен? типа FIFO uart... или есть уже готовое что-то в библиотеках?
удалось ли решить эту задачу? Я тоже озабочен изготовлением помехоустойчивого датчика отражения