Управление Arduino с ИК приемником TSOP 1833

Сегодня я расскажу как сделать управление контроллером Arduino с помощью пульта управления и приемника TSOP 1833. У нас в примере будет использоваться светодиод, но вы можете подключить все что угодно, может быть это будет к примеру силовое реле, которое будет включать люстру, или открывать ворота гаража.

Для того что бы можно было управлять с пульта платой ардуино нам потребуется инфракрасный приемник TSOP1138 и сам контроллер, для начала я думаю Arduino UNO будет оптимальный вариант, для экспериментов.

Приемник подключаем по схеме как на картинке и с помощью библиотеки esp8266-ir-remote-sdk читаем коды кнопок пультов, как подключить библиотеку, написано в этой статье. Что бы считать коды кнопок, необходимо запустить среду разработки ARduino IDE и открыть пример «IRremote -> IRrecvDemo».

После чего вас откроется пример скетча для использования инфракрасного датчика:

/*
* IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
* An IR detector/demodulator must be connected to the input RECV_PIN.
* Version 0.1 July, 2009
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*/
 
#include <IRremote.h>
 
int RECV_PIN = 4;
 
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
}
}

На четвертый пин Arduino согласно схемы ниже подключаем выход с нашего ИК приемника, в моем случае это TSOP 1833.

Открываем «Сервис -> монитор порта» и смотрим коды кнопок, которые мы нажимаем.

Мы указали, что все коды будут выводиться в формате HEX.

Serial.println(results.value, HEX);

Запомним коды двух кнопок(C667A и AB009) и изменим немного наш скетч для тестирования работоспособности:

/*
* IRremote: IRrecvDemo - demonstrates receiving IR codes with IRrecv
* An IR detector/demodulator must be connected to the input RECV_PIN.
* Version 0.1 July, 2009
* Copyright 2009 Ken Shirriff
* http://arcfn.com
*/
 
#include <IRremote.h>
 
int RECV_PIN = 4;
 
IRrecv irrecv(RECV_PIN);
 
decode_results results;
 
void setup()
{
Serial.begin(9600);
irrecv.enableIRIn(); // Start the receiver
 
pinMode(3, OUTPUT);
}
 
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value);
 
if (results.value==0xAB009) {//поменяйте на свой код
digitalWrite(3,HIGH);
}
 
if (results.value==0xC667A) {//поменяйте на свой код
digitalWrite(3,LOW);
}
 
irrecv.resume(); // Receive the next value
}
}

Как видно из скетча, на 3 пин мы добавили светодиод, что бы визуально проверить работоспособность нашего будущего пульта. Как подключить светодиод, написано в этой статье. Теперь если мы нажмем  на кнопку с кодом >AB009< светодиод включается, а по нажатию на кнопку с кодом >C667A< светодиод выключается. Ура! Теперь можно внедрять данную схему в работу, а где вы ее примените, решать вам!

Ардуино+