Проект 5: ИК-пульт
ИК (инфракрасный) пульт – это устройство дистанционного управления, использующее инфракрасное излучение для передачи команд на приемник. ИК пульты широко используются в бытовой технике, таких как телевизоры, кондиционеры и аудиосистемы. В этой статье мы рассмотрим основы работы ИК пульта, его применение и как интегрировать его с Arduino для управления различными устройствами.
Принцип работы ИК пульта
ИК пульт передает команды с помощью инфракрасного света, который невидим для человеческого глаза, но может быть обнаружен специальными датчиками. Основные компоненты системы ИК управления:
ИК передатчик: Излучает инфракрасные сигналы, модулированные с определенной частотой.
ИК приемник: Улавливает инфракрасные сигналы и демодулирует их для передачи данных на микроконтроллер или другое устройство.
Применение ИК пультов
ИК пульты применяются в широком спектре устройств:
Бытовая техника: Управление телевизорами, кондиционерами, аудиосистемами и другой электроникой.
Умный дом: Контроль освещения, жалюзи, дверных замков и других систем автоматизации.
Робототехника: Дистанционное управление роботами и их движением.
Промышленность: Контроль оборудования и машин на расстоянии.
Использование ИК пульта с Arduino
Для интеграции ИК пульта с Arduino необходимо использовать ИК приемник и соответствующую библиотеку. В нашем проекте мы будем использовать библиотеку AlashIRControlRX для приема сигналов с ИК пульта.
Необходимые компоненты
Arduino Uno
ИК приемник (например, VS1838B)
ИК пульт
Соединительные провода
Макетная плата (опционально)
Подключение компонентов
ИК приемник:
VCC к 5V на Arduino
GND к GND на Arduino
OUT к аналоговому пину A2 на Arduino
Установка библиотеки AlashIRControlRX
Перейдите на официальный репозиторий библиотеки AlashIRControl на GitHub по следующей ссылке: AlashIRControl GitHub
На странице репозитория нажмите кнопку «Code» и выберите «Download ZIP» для скачивания архива с библиотекой.
После скачивания архива с библиотекой, распакуйте его в удобное для вас место на вашем компьютере.
Откройте Arduino IDE.
Перейдите в меню «Скетч» -> «Подключить библиотеку» -> «Добавить .ZIP библиотеку…».
В открывшемся окне проводника найдите и выберите скачанный и распакованный архив с библиотекой AlashIRControl. Нажмите «Открыть».
Arduino IDE автоматически установит библиотеку, и внизу окна появится сообщение «Библиотека добавлена. Проверьте меню „Подключить библиотеку“».
Пример кода для работы с ИК пультом
// Библиотека AlashIRControl для работы с ИК приёмопередатчиками разработана https://alash-electronics.kz/
// Для считывания данных с ИК-пульта предлагаем воспользоваться ИК-приёмником https://alash-electronics.kz/collection/sveta-i-tsveta/product/modul-ik-datchika-vs1838b-ky-022
#include <AlashIRControlRX.h> // Подключаем библиотеку для работы с ИК-приёмником
AlashIRControlRX irReceiver(A2); // Объявляем объект irReceiver, с указанием вывода к которому подключён ИК-приёмник
void setup() {
Serial.begin(9600); // Инициируем передачу данных в монитор последовательного порта, на скорости 9600 бит/сек
irReceiver.begin(); // Инициируем работу с ИК-приёмником
}
void loop() {
if (irReceiver.check()) { // Если в буфере имеются данные, принятые с пульта (была нажата кнопка)
Serial.print("Received code: "); // Печатаем полученный код
Serial.println(irReceiver.data, HEX); // Выводим данные в шестнадцатеричном формате
switch (irReceiver.data) { // Обрабатываем полученный код
case 0xFFA25D: Serial.println("Button: 1"); break;
case 0xFF629D: Serial.println("Button: 2"); break;
case 0xFFE21D: Serial.println("Button: 3"); break;
case 0xFF22DD: Serial.println("Button: 4"); break;
case 0xFF02FD: Serial.println("Button: 5"); break;
case 0xFFC23D: Serial.println("Button: 6"); break;
case 0xFFE01F: Serial.println("Button: 7"); break;
case 0xFFA857: Serial.println("Button: 8"); break;
case 0xFF906F: Serial.println("Button: 9"); break;
case 0xFF6897: Serial.println("Button: *"); break;
case 0xFF9867: Serial.println("Button: 0"); break;
case 0xFFB04F: Serial.println("Button: #"); break;
case 0xFF18E7: Serial.println("Button: UP"); break;
case 0xFF10EF: Serial.println("Button: LEFT"); break;
case 0xFF38C7: Serial.println("Button: OK"); break;
case 0xFF5AA5: Serial.println("Button: RIGHT"); break;
case 0xFF4AB5: Serial.println("Button: DOWN"); break;
default: Serial.println("Button: UNKNOWN"); break;
}
}
}
Заключение
ИК пульты – это удобное средство дистанционного управления, широко применяемое в различных областях. С помощью Arduino и соответствующих библиотек вы можете легко интегрировать ИК управление в свои проекты, будь то управление роботами, бытовыми устройствами или системами умного дома. Этот проект демонстрирует, как использовать ИК-пульт для управления движением робота, что может стать основой для более сложных и интересных проектов.