Ардуино

Всё что связано с аппаратурой и антеннами
Ответить
  • Автор
  • Сообщение
Не в сети
Аватара пользователя
Сообщения: 616
Зарегистрирован: 25 дек 2015 08:48

Ардуино

Сообщение EW8RX »

Здравствуйте, нужна помощь. Не получается получить с ИК пульта код кнопки для дальнейшего использования. Получаю со всех кнопок или 0, или fffff. Попробовал разные скетчи, предположил что не совпадает частота работы пульта и приемника (взял пульт и ик порт от рабочего набора для управления RGB лентой), результат один и тот же. Вот крайний скеч с которым экспериментировал, тут получаю ноли.

#include <IRremote.h>

int irPin = 3;

IRrecv IrReciver(irPin);

decode_results results;

void setup() {
Serial.begin(9600);
IrReciver.enableIRIn();
}

void loop() {
if (IrReciver.decode()) {
Serial.println( results.value, HEX );
IrReciver.resume();
}
}
_________________
https://vk.com/public119472661

Не в сети
Аватара пользователя
Сообщения: 825
Зарегистрирован: 26 май 2013 10:07
Откуда: Минск, KO33tv

Re: Ардуино

Сообщение eu1aq »

Возможно, не подходит универсальная библиотека IRremote.
Если пульт китайский (а каким ему еще быть ? :-): ), можно попробовать библиотеку https://www.arduinolibraries.info/libraries/nec-decoder
Скетч для определения протокола пульта:

Код: Выделить всё

#define RECEIVER_PIN 2 // define the IR receiver pin
IRrecv receiver(RECEIVER_PIN); // create a receiver object of the IRrecv class
decode_results results; // create a results object of the decode_results class
unsigned long key_value = 0; // variable to store the pressed key value

void setup() {
  Serial.begin(9600); // begin serial communication with a baud rate of 9600
  receiver.enableIRIn(); // enable the receiver
  receiver.blink13(true); // enable blinking of the built-in LED when an IR signal is received
}

void loop() {
  if (receiver.decode(&results)) {
    if (results.value == 0XFFFFFFFF) {
      results.value = key_value;
    }
    Serial.println(results.value, HEX);
    switch (results.decode_type) {
      case NEC:
        Serial.println("NEC");
        break;
      case SONY:
        Serial.println("SONY");
        break;
      case RC5:
        Serial.println("RC5");
        break;
      case RC6:
        Serial.println("RC6");
        break;
      case DISH:
        Serial.println("DISH");
        break;
      case SHARP:
        Serial.println("SHARP");
        break;
      case JVC:
        Serial.println("JVC");
        break;
      case SANYO:
        Serial.println("SANYO");
        break;
      case MITSUBISHI:
        Serial.println("MITSUBISHI");
        break;
      case SAMSUNG:
        Serial.println("SAMSUNG");
        break;
      case LG:
        Serial.println("LG");
        break ;
      case WHYNTER:
        Serial.println("WHYNTER");
        break;
      case AIWA_RC_T501:
        Serial.println("AIWA_RC_T501");
        break;
      case PANASONIC:
        Serial.println("PANASONIC");
        break;
      case DENON:
        Serial.println("DENON");
        break;
      case BOSEWAVE:
        Serial.println("BOSEWAVE");
        break;
      case LEGO_PF:
        Serial.println("LEGO_PF");
        break;
      case MAGIQUEST:
        Serial.println("MAGIQUEST");
        break;
      default:
      case UNKNOWN:
        Serial.println("UNKNOWN");
        break ;
    }
    key_value = results.value;
    receiver.resume();
  }
}
Кстати, код FFFFFFFF пульт может выдавать при длительном нажатии кнопки.
:-):
_________________
73! EW1Q
ex EU1AQ, UC2AAQ

Не в сети
Аватара пользователя
Сообщения: 616
Зарегистрирован: 25 дек 2015 08:48

Re: Ардуино

Сообщение EW8RX »

Спасибо за ответ.

Вот так все получилось.

#include "IRremote.h"

IRrecv irrecv(2); // указываем вывод, к которому подключен приемник

decode_results results;

void setup() {
Serial.begin(9600); // выставляем скорость COM порта
irrecv.enableIRIn(); // запускаем прием
}

void loop() {
if ( irrecv.decode( &results )) { // если данные пришли
Serial.println( results.value, HEX ); // печатаем данные
irrecv.resume(); // принимаем следующую команду
}
}
_________________
https://vk.com/public119472661

Не в сети
Аватара пользователя
Сообщения: 825
Зарегистрирован: 26 май 2013 10:07
Откуда: Минск, KO33tv

Re: Ардуино

Сообщение eu1aq »

И это радует. Поздравляю!
:-):
_________________
73! EW1Q
ex EU1AQ, UC2AAQ
Ответить