Не работают библиотеки IRLib, IRRemote

Cyber
Offline
Зарегистрирован: 28.04.2013

Доброго времени суток!

Имеется 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();
  }
}

Однако в терминале тоже тишина. Подскажите пожалуйста, что я делаю не так?

 

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

напряжение питания IR приёмника - 5V

кури даташиты

Cyber
Offline
Зарегистрирован: 28.04.2013

На 5 вольтах тоже не работает.

по тесту поменялся уровень только, без нажатия:

1023
1023
1023
1023
1023
1023
1023
1023
1023
1023
1023
1023
 
 
С нажатием:
1023
1023
1023
0
1023
1023
1023
1023
1023
1023
0
1023
1023
1023
1023
1023
1023
1023
1023
1023
0
1023
1023
0
0
1023
944
1
1023
0
0
1023
1023
1023
1023
 
 
Есть еще идеи, что это может быть?

 

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Cyber пишет:

С нажатием:
...
1023
0
...

ну, дык - работает!

Cyber
Offline
Зарегистрирован: 28.04.2013

Да, но не IRLib, не iRremote в упор не хочет декодировать эти сигналы. Может там еще обвязка какая нужна?

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Cyber пишет:

Да, но не IRLib, не iRremote в упор не хочет декодировать эти сигналы. Может там еще обвязка какая нужна?

может и нужна - посмотри документацию на датчик.

второй момент - несущая частота пульта и датчика должны совпадать.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Какой пульт? Не от кондиционера случайно? Похоже, что IRremote не может декодировать сигнал. Большинство пультов используют протоколы NEC, RC-5, RC-6. А у кондиционеров нестандартные протоколы, надо снимать данные в RAW, без декодирования. Должно быть в стандартных примерах IRremote.

Cyber
Offline
Зарегистрирован: 28.04.2013

Проблема решена. Сигнал надо было втыкать не в аналоговый вход а в цифровой...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Шо за датчик? Шо за пульт? На каких частотах работают? Всё - ХЗ.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

<del>

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Cyber пишет:

Проблема решена. Сигнал надо было втыкать не в аналоговый вход а в цифровой...

Или RECV_PIN честно определять как A3, а не просто 3.

Клапауций 232
Offline
Зарегистрирован: 05.04.2016

Cyber пишет:

Проблема решена. Сигнал надо было втыкать не в аналоговый вход а в цифровой...

с чего бы это?