Управление светодиодом с помощью TSOP модуля

Что требуется:

  • Arduino UNO или любой другой аналог
  • Макетная плата
  • Инфракрасный детектор TSOP4836
  • Светодиод
  • Резистор 220 Ом

 

Для подключения ИК-приемника к Arduino следует использовать библиотеку IRremote. Скачать данную библиотеку можно здесь https://github.com/shirriff/Arduino-IRremote.

Далее распаковываем ее в папку libraries и меняем название на IRremote.

Следующим шагом является подключение сенсора к микроконтроллеру.

Ниже представлена схема.

 

 

Чтобы «подружить» микроконтроллер с пультом управления понадобится выполнить еще один важный шаг. Предстоит определить коды кнопок, чтобы в дальнейшем использовать их для программирования. Для этого в Arduino IDE заходим в Файл->Примеры->IRremote->IRrecvdemo. Либо загружаем в Arduino данный скетч:

 

#include 

int RECV_PIN = 11;

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
  }
  delay(100);
}

 

Далее заходим в Сервер->Монитор порта, направляем пульт на ИК-приемник и получаем коды кнопок.

 

 

После такой недолгой подготовки приступим к написанию самой программы. С помощью пульта управления мы будем управлять включением и выключением светодиода.

Запомним коды двух кнопок, например, FF02FD и FF22DD.

 

#include 

int RECV_PIN = 11;
IRrecv irrecv(RECV_PIN);

decode_results results;

void setup()
{
 Serial.begin(9600);
 irrecv.enableIRIn(); // запуск приемника
 pinMode(6, OUTPUT); //настройка пина в режим выхода
}

void loop() {
 if (irrecv.decode(&results)) {
  Serial.println(results.value);

  if (results.value==0xFF02FD) { //поменять на свой код
   digitalWrite(6,HIGH); //включение светодиода
  } else{
   if (results.value==0xFF22DD){ //поменять на свой код
    digitalWrite(6,LOW); //выключение светодиода
   }
  } 
  irrecv.resume(); // получить следующее значение
 }
}