Проект 5: ИК-пульт

ИК (инфракрасный) пульт – это устройство дистанционного управления, использующее инфракрасное излучение для передачи команд на приемник. ИК пульты широко используются в бытовой технике, таких как телевизоры, кондиционеры и аудиосистемы. В этой статье мы рассмотрим основы работы ИК пульта, его применение и как интегрировать его с Arduino для управления различными устройствами.

Принцип работы ИК пульта

ИК пульт передает команды с помощью инфракрасного света, который невидим для человеческого глаза, но может быть обнаружен специальными датчиками. Основные компоненты системы ИК управления:

  • ИК передатчик: Излучает инфракрасные сигналы, модулированные с определенной частотой.

  • ИК приемник: Улавливает инфракрасные сигналы и демодулирует их для передачи данных на микроконтроллер или другое устройство.

Применение ИК пультов

ИК пульты применяются в широком спектре устройств:

  • Бытовая техника: Управление телевизорами, кондиционерами, аудиосистемами и другой электроникой.

  • Умный дом: Контроль освещения, жалюзи, дверных замков и других систем автоматизации.

  • Робототехника: Дистанционное управление роботами и их движением.

  • Промышленность: Контроль оборудования и машин на расстоянии.

Использование ИК пульта с Arduino

Для интеграции ИК пульта с Arduino необходимо использовать ИК приемник и соответствующую библиотеку. В нашем проекте мы будем использовать библиотеку AlashIRControlRX для приема сигналов с ИК пульта.

Необходимые компоненты

  • Arduino Uno

  • ИК приемник (например, VS1838B)

  • ИК пульт

  • Соединительные провода

  • Макетная плата (опционально)

Подключение компонентов

ИК приемник:

  • VCC к 5V на Arduino

  • GND к GND на Arduino

  • OUT к аналоговому пину A2 на Arduino

Установка библиотеки AlashIRControlRX

  1. Перейдите на официальный репозиторий библиотеки AlashIRControl на GitHub по следующей ссылке: AlashIRControl GitHub

  2. На странице репозитория нажмите кнопку «Code» и выберите «Download ZIP» для скачивания архива с библиотекой.

  3. После скачивания архива с библиотекой, распакуйте его в удобное для вас место на вашем компьютере.

  4. Откройте Arduino IDE.

  5. Перейдите в меню «Скетч» -> «Подключить библиотеку» -> «Добавить .ZIP библиотеку…».

  6. В открывшемся окне проводника найдите и выберите скачанный и распакованный архив с библиотекой AlashIRControl. Нажмите «Открыть».

  7. 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 и соответствующих библиотек вы можете легко интегрировать ИК управление в свои проекты, будь то управление роботами, бытовыми устройствами или системами умного дома. Этот проект демонстрирует, как использовать ИК-пульт для управления движением робота, что может стать основой для более сложных и интересных проектов.