Z- IR receiver. Модуль ИК приемника

Опубликовано 05.05.2014 8:44:00


Модуль ИК Приемника в связке и ИК пультом дистанционного управления позволит легко реализовать дистанционное управление платой Arduino.

Он представляет из себя не что иное, как ИК приемник VS1838B с установленной на плате рекомендуемой производителем обвязкой.

Для работы с данным модулем "из коробки" необходим ПДУ с частотой 38 кГц.

Плюсом данной платы является цанговый разъем, позволяющий без применения пайки заменить ИК приемник на другой, работающий на частоте, необходимой для вашего проекта.

Модуль ИК приемника

 

 

Основные технические характеристики:

• Напряжение питания: 2.7 - 5.5В

• Частота модуляции: 38кГц

• Диапазон температур: - 20 ... +  80°C

• Интерфейс: Цифровой


 

Подключение к Arduino

Модуль оборудован трехпиновым разъемом стандарта 2.54мм

 : подключается к выводу GND

 : подключается к выводу +5V

 : подключается к цифровому выводу ( в примере D2 )

Подключение Z- IR receiver модуля к Arduino

 


 

Пример работы в среде Arduino

Для работы с данным модулем необходимо установить библиотеку IRRemote

Скачиваем, распаковываем и закидываем в папку libraries в папке Arduino. В случае, если на момент добавления библиотеки, Arduino IDE была открытой, перезагружаем среду.

 

Считывание показаний кнопок ПДУ

Для считывания показаний пульта заливаем нижеприведенный скетч. Он будет выводить в порт кодировки нажатых кнопок.

В качестве примера будем использовать пульт, как на картинке, т.к. пульт такого типа идет в наборе ИК пульт + ИК модуль приемник

Про отличия в логике работы различных пультов можно прочитать в статье-оригинале от члена нашего сообщества под ником mgook

Ик пульт

 

Пример программного кода:

// Тестировалось на Arduino IDE 1.0.3
#include <IRremote.h>
int RECV_PIN = 2;
IRrecv irrecv(RECV_PIN); //Создаем объект получения сигнала с определенного порта
decode_results results; //Переменная, хранящая результат

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Начинаем прием
}

void loop() {
  if (irrecv.decode(&results)) //При получении сигнала...
  { 
    Serial.println(results.value); //…выводим его значение в последовательный порт
    irrecv.resume(); // Получаем следующее значение
  }
}


В мониторе порта должны увидеть слудущее:

 

При почти секундном удержании каждой кнопки, мы получаем около 10 кодов. Первый из них и является кодом кнопки. А после него начинает идти стандартный код, который сообщает о залипании кнопки.


 

Управление платой Arduino c ПДУ

Заставим светодиод на плате Arduino (D13) загораться при получении кодировки первой кнопки и выключаться при получении кодировки второй.

 

Пример программного кода:

// Тестировалось на Arduino IDE 1.0.3
#include <IRremote.h>

int RECV_PIN = 2;
int LED = 13;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Запуск приемника
  pinMode(LED, OUTPUT);
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value);
    if (results.value == 16769565) // При получении кодировки 1
    {
      digitalWrite(LED, HIGH); // Включаем светодиод
    }
    if (results.value == 16761405) // При получении кодировки 2
    {
      digitalWrite(LED, LOW); // Выключаем светодиод
    }
    irrecv.resume(); // Получаем следующее значение
  }
}

 

Купить в России  Z- Модуль ИК приемника


А как же комментарии?