Модуль инфракрасного передатчика 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);
}
ИК-приемник получит следующее:
Про ИК-приемник можно прочитать в этой статье.







