Не работают библиотеки IRLib, IRRemote
- Войдите на сайт для отправки комментариев
Пнд, 26/09/2016 - 13:47
Доброго времени суток!
Имеется mega328p. К ней подключен IR приёмник тремя пинами (3.3v, gnd, signal).
Запускаю тестовую программу чтения:
void setup() { Serial.begin(9600); } void loop() { int PinValue = analogRead(3); Serial.println(PinValue); }
Без нажатия кнопок на пульте выдаёт:
702
702
703
703
703
703
703
702
701
704
703
702
С нажатием:
704
702
703
704
0
0
702
704
0
0
704
702
0
704
702
0
701
702
0
703
703
0
703
702
702
703
703
703
0
0
703
704
703
Что как бы намикает что с подключением всё ровно.
Загружаю пример от IRremote:
#include <IRremote.h> int RECV_PIN = 3; IRrecv irrecv(RECV_PIN); decode_results results; void setup() { Serial.begin(9600); irrecv.enableIRIn(); // Start the receiver } void loop() { if (irrecv.decode(&results)) { Serial.println(results.value, HEX); irrecv.resume(); // Receive the next value } }
На нажатие кнопок не реагирует никак, в терминале пусто(
Иду на гитхаб и скачиваю IRLib, пробую:
#include <IRLib.h> int RECV_PIN = 3; IRrecv My_Receiver(RECV_PIN); IRdecode My_Decoder; unsigned int Buffer[RAWBUF]; void setup() { Serial.begin(9600); delay(2000);while(!Serial);//delay for Leonardo My_Receiver.enableIRIn(); // Start the receiver My_Decoder.UseExtnBuf(Buffer); } void loop() { if (My_Receiver.GetResults(&My_Decoder)) { //Restart the receiver so it can be capturing another code //while we are working on decoding this one. My_Receiver.resume(); My_Decoder.decode(); My_Decoder.DumpResults(); } }
Однако в терминале тоже тишина. Подскажите пожалуйста, что я делаю не так?
напряжение питания IR приёмника - 5V
кури даташиты
На 5 вольтах тоже не работает.
по тесту поменялся уровень только, без нажатия:
ну, дык - работает!
Да, но не IRLib, не iRremote в упор не хочет декодировать эти сигналы. Может там еще обвязка какая нужна?
Да, но не IRLib, не iRremote в упор не хочет декодировать эти сигналы. Может там еще обвязка какая нужна?
может и нужна - посмотри документацию на датчик.
второй момент - несущая частота пульта и датчика должны совпадать.
Какой пульт? Не от кондиционера случайно? Похоже, что IRremote не может декодировать сигнал. Большинство пультов используют протоколы NEC, RC-5, RC-6. А у кондиционеров нестандартные протоколы, надо снимать данные в RAW, без декодирования. Должно быть в стандартных примерах IRremote.
Проблема решена. Сигнал надо было втыкать не в аналоговый вход а в цифровой...
Шо за датчик? Шо за пульт? На каких частотах работают? Всё - ХЗ.
<del>
Проблема решена. Сигнал надо было втыкать не в аналоговый вход а в цифровой...
Или RECV_PIN честно определять как A3, а не просто 3.
Проблема решена. Сигнал надо было втыкать не в аналоговый вход а в цифровой...
с чего бы это?