Модуль инфракрасного приемника 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.