ИК-приемник VS1838B и arduino

ИК-приемник VS1838B и arduino

Управлять своими устройствами можно очень многими способами, один из них – это с помощью ИК-сигналов, про этот метод постараюсь расписать в сегодняшней статье. Тут поможет любой ИК-пульт – от телевизора, музыкального центра или любого другого домашнего устройства, которое есть у каждого. Пульт дистанционного управления являться передатчиком информации, а в качестве приемника можно использовать инфракрасный датчик VS1838B, который продается совсем за смешные деньги. Приемник работает на частоте 38 кГц, данная частота является самой распространенной среди ИК-пультов, используемых в домашней технике.

Подключение ИК-датчика VS1838B к arduino

Для считывания ИК-сигнала и преобразования его к человеческому виду – числу, можно воспользоваться библиотекой IRremote, с ее помощью весь скетч займет всего несколько строк.
Ссылка на библиотеку: IRremote .
Но прежде, чем начать писать программу, необходимо разобраться с подключением приемника VS1838B. Датчик имеет всего три ноги, две из них – это питание, и третья передает полученный сигнал. Ниже приведена фотография VS1838B с подписанными ножками:

ИК-приемник VS1838B и arduino. Datasheet

Ногу, которая отвечает за передачу данных, будем подключать к пину 11 arduino. Так же для наглядности подключим к 13 пину светодиод, который будет включаться и выключаться при нажатии на кнопки на ИК-пульте.

Что использовалось в проекте:

Код скетча для ИК-приемника VS1838B

Каждая кнопка ИК-пульта имеет уникальный код, который мы будем получать с помощью датчика VS1838B. В первую очередь запишем скетч, который выводит в консоль коды кнопок, после чего уже дополнить программу условиями на конкретные кнопки.
Ниже приведет скетч для работы с ИК-приемником VS1838B и arduino, скачать его можно тут: скачать.

#include <IRremote.h> // подключаем библиотеку

int ledPin = 13; // светодиод
int reciverPin = 11; // пин, к котрому подключен ИК-приемник
IRrecv irrecv(reciverPin);
 
decode_results results;
 
void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // запуск приемника
  pinMode(ledPin, OUTPUT);
}
 
void loop() {
  // постоянно считываем данные с приемника
  if (irrecv.decode(&results)) {
    // выводим в консольку, что получили, число в 16-ричном виде
    Serial.println(results.value, HEX);
    // проверяем сигналы - и если это те, что нам нужны, то вкл или выкл светодиод
    if(results.value == 0x926DC837) digitalWrite(13, HIGH);
    if(results.value == 0x926D48B7) digitalWrite(13, LOW);
    irrecv.resume(); // готовы принимать следующий сигнал
  }
}

Пример работы ИК-датчика VS1838B и arduino можно посмотреть ниже на видео.

Рассказать друзьям:


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

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

*