Модуль инфракрасного передатчика KY-005 излучает инфракрасный свет с частотой 38 кГц и длиной волны 940нм (невидим для человеческого глаза). Его можно использовать для управления телевизорами, стереосистемами, кондиционерами и другими устройствами с ИК-приемником. А также для подключения двух удаленных устройств Arduino. Для реализации такой ИК-системы необходимо использовать модуль KY-005 вместе с модулем инфракрасного приемника KY-022.
Характеристики модуля KY-005
Электрическая схема этого модуля довольно проста и состоит из 5-мм инфракрасного светодиода IR333-A и 3 штыревых контактов.
Примечание
Такой же диод установлен на модуле датчика обхода препятствий KY-032.
Внимание
Обращайтесь с осторожностью, не направляйте ИК-свет прямо в глаза.
Рабочее напряжение | 5 В |
Рабочий ток | ~30 мА |
Длина волны | 940 нм |
Рабочая температура | от -25°C до 80°C |
Размеры платы | 18,5 мм x 15 мм |
Как подключить к Ардуино
KY-005 | Arduino Uno |
---|---|
S | Контакт D3 |
Средний вывод | Не используется |
— | GND |
- Подключите сигнальный вывод S к контакту D3 на плате Arduino.
- Подключите землю — к GND на плате Arduino.
Номер контакта для ИК-передатчика определяется библиотекой IRremote. Другие библиотеки могут использовать другой контакт.
Версия библиотеки 2.0.1
#include <IRremote.h> IRsend irsend; const int SEND_PIN = 3; // ИК-передатчик, подключенный к Ардуино void setup() { irsend.setSendPin(SEND_PIN); // Передаем контакт, к которому подключен передатчик } void loop() { irsend.sendNEC(0xB847FF00, 32); // Отправляем код, используя протокол NEC delay(500); // ждем 0.5 секунды }
Если к контакту D7 ардуино дополнительно подключить ИК-приемник KY-022, то можно проверить правильность отправленных данных.
#include <IRremote.h> IRsend irsend; const int RECV_PIN = 7; // ИК-приемник, подключенный к Ардуино const int SEND_PIN = 3; // ИК-передатчик, подключенный к Ардуино IRrecv irrecv(RECV_PIN); // Создаем объект для приемника decode_results results; // Объявляем переменную для хранения результата void setup() { Serial.begin(9600); // Инициализируем последовательный порт irrecv.enableIRIn(); // Включаем прием irsend.setSendPin(SEND_PIN); // Передаем контакт, к которому подключен передатчик } void loop() { irsend.sendNEC(0xB847FF00, 32); // Отправляем код, используя протокол NEC delay(500); // ждем 0.5 секунды if (irrecv.decode(&results)) // Проверяем, пришли ли данные { Serial.println(results.value, HEX); // Выводим в порт irrecv.resume(); // Получаем следующее значение } }
Вот что выводит монитор порта:
Версия библиотеки 4.2.0
#include <IRremote.hpp> // Подключаем библиотеку #define IR_SEND_PIN 3 // Сигнальный вывод модуля (или анод ИК-диода), подключенный к Ардуино void setup() { IrSender.begin(IR_SEND_PIN); } void loop() { IrSender.sendNEC(0x0, 0x47, 1); // Отправить один раз код 0xB847FF00, используя протокол NEC delay(1000); }
ИК-приемник получит следующее:
Про ИК-приемник можно прочитать в этой статье.