Модуль инфракрасного приемника KY-022 может использоваться во многих проектах Arduino, где вам нужно заставить Arduino взаимодействовать с внешними устройствами или заставить 2 Arduino взаимодействовать между собой на небольшом расстоянии. Модуль построен на базе ИК-приемника VS1838B.
Для информации
Чтобы реализовать двухстороннюю связь между двумя платами ардуино, необходимо использовать две пары модуля ИК-приемника KY-022 в сочетании с модулем инфракрасного передатчика KY-005.
Характеристики модуля
| Рабочее напряжение | от 2.7 до 5.5 В |
| Рабочий ток | от 0.8 до 1.5 мА |
| Расстояние | 15 м |
| Угол приема | ± 45º |
| Частота | 38 кГц |
| Максимальное напряжение для низкого уровня LOW | 0.4 В |
| Минимальное напряжение для высокого уровня HIGH | 4.5 В |
| Размер модуля | 20×14 мм |
Электрическая схема модуля
Схема модуля очень проста, поскольку все функции выполняются инфракрасным приемником VS1838. Внутри него есть все схемы, которые обеспечивают усиление, фильтрацию, сравнение принятого сигнала и т.д. На самом модуле есть светодиод с токоограничивающим резистором на 1 кОм, который загорается при приеме сигнала.
Подключение KY-022 к Ардуино
Схема подключения модуля к Ардуино УНО представлена ниже:

| KY-022 | Arduino UNO |
|---|---|
| S | Контакт 11 |
| Средний вывод | +5В |
| – | GND |
- Сигнальный контакт S модуля подключается к контакту D11 ардуино уно;
- Средний контакт питание модуля подключается к контакту 5V ардуино;
- Контакт – модуля подключается к контакту GND ардуино.
Выровняйте ИК-приемник и передатчик, расположив их друг к другу.
Код для Ардуино и модуля KY-022
Код использует библиотеку IRremote для приема и обработки инфракрасных сигналов. Используйте модуль ИК-передатчика KY-005 или ИК-пульт дистанционного управления для отправки данных на модуль.
Ссылку на библиотеку можно найти в разделе Загрузки ниже.
Для 2-й версии библиотеки
// Код для версии библиотеки 2.0.1
#include <IRremote.h> // Подключаем библиотеку
const int RECV_PIN = 7; // Сигнальный вывод, подключенный к Ардуино
IRrecv irrecv(RECV_PIN); // Создаем объект
decode_results results; // Объявляем переменную для хранения принятого значения
void setup()
{
Serial.begin(9600); // Инициализируем последовательный порт
irrecv.enableIRIn(); // Включаем ИК
irrecv.blink13(true); // Если сигнал пришел, диод D13 будет мигать
}
void loop()
{
if (irrecv.decode(&results)) // Проверяем, пришли ли данные
{
Serial.println(results.value, HEX); // Выводим в порт
irrecv.resume(); // Получаем следующее значение
}
}
Для 4-й версии библиотеки
// Код для версии 4.2.0
#include <IRremote.hpp> // Подключаем библиотеку
#define IR_RECEIVE_PIN 7 // Сигнальный вывод, подключенный к Ардуино
void setup()
{
Serial.begin(9600);
IrReceiver.begin(IR_RECEIVE_PIN, ENABLE_LED_FEEDBACK); // Инициализация приемника
}
void loop() {
if (IrReceiver.decode()) { // // Проверяем, пришли ли данные
Serial.println(IrReceiver.decodedIRData.decodedRawData, HEX); // Выводим в порт
IrReceiver.resume(); // Включение приема следующего значения
}
}







Keep up the fantastic work!
Thanks! We will try to make good content.