Статьи

Управление 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 светодиод выключится.

Теперь можно внедрять данную схему в работу, а где вы ее примените, решать вам.

Опубликовал 28 мая 2017 в 17:06
Статьи, ,

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

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