Подключение ИК приемника TL1838 38КГц к Arduino

Сегодня я расскажу как подключить ИК приемник TL1838 38КГц к отладочной плате Arduino. Датчик цифровой и принимает он цифровой сигнал, поэтому прозванивать его мультимером нет смысла. Внешний вид и распиновка:

Ножки VCC и GND подключаются к соответствующим выходам нашей Arduino, а ножка OUT к любому цифровому или аналоговому пину микроконтроллера(я использовал А0). Вот такая конструкция у меня получилась:

Дальше коротенький скетч:

#include <IRremote.h>
#include <IRremoteInt.h>
IRrecv irrecv(A0); // Указываем пин, к которому подключен приемник
decode_results results;
void setup() {
Serial.begin(9600);// Запускаем серийный порт
irrecv.enableIRIn(); // Запускаем прием
}
void loop() {
 if (irrecv.decode(&results)) // Если данные пришли 
 {
 Serial.println(results.value, DEC); // Отправляем полученную данную в консоль
 irrecv.resume(); // Принимаем следующую команду
 }
}

Прошиваем его в наш Arduino и идем искать любой работающий ИК пульт дистанционного управления (от телевизора вполне подойдет). Я использовал пульт от автомобильной магнитолы.

Запускаем монитор порта и нажимаем на кнопки пульта. На экране будут выскакивать цифры в зависимости от нажатой кнопки, которые будут чередоваться с фиксированным числом в зависимости от пульта:

Повторяется у нас 4294967295 все остальное коды кнопок или сбои… За несколько проб узнаем, что кнопка 1 имеет код 373604801 а кнопка 2 имеет код 2797147069 (у вас будут другие коды).

Подключаем светодиод к пину 12 и переписываем наш скетч:

#include <IRremote.h>
#include <IRremoteInt.h>
IRrecv irrecv(A0); // Указываем пин, к которому подключен приемник
decode_results results;
unsigned long knopka;//Переменная для хранения кода нажатой кнопки
void setup() {
Serial.begin(9600);// Запускаем серийный порт
irrecv.enableIRIn(); // Запускаем прием
pinMode(12, OUTPUT);//Определяем 12-й пин на вход
}
void loop() {
 if (irrecv.decode(&results)) // Если данные пришли 
 {
 knopka=results.value;
 Serial.println(knopka, DEC); // Отправляем полученную данную в консоль
 if (knopka==373604801){digitalWrite(12, HIGH);}//Если нажимаем 1 - светодиод загорается
 if (knopka==2797147069){digitalWrite(12, LOW);}//Если нажимаем 2 - светодиод гаснет
 irrecv.resume(); // Принимаем следующую команду
 }
}

Таким образом мы сможем включать и выключить что угодно и как угодно с нашего пульта без особых усилий. К стати ИК приемник так можно подключить любой. Важно только знать распиновку.

Спасибо за Ваше внимание. Удачи в дальнейших опытах.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *