ИК Перехватчик на Arduino

ИК Перехватчик — это инструмент для работы с инфракрасными (ИК) сигналами на базе Arduino. Проект позволяет передавать ИК-сигналы, вводя 16-значное число через серийный порт, и перехватывать сигналы от других пультов дистанционного управления. Перехваченные сигналы можно копировать и повторно отправлять.

В современном мире инфракрасные (ИК) сигналы играют ключевую роль в управлении различными устройствами: от телевизоров до систем кондиционирования воздуха. Однако, возможности перехвата и анализа ИК-сигналов остаются недооцененными. В этой статье мы представляем проект ИК Перехватчик — мощный инструмент для захвата, анализа и управления ИК-сигналами.

ВНИМАНИЕ: Чтобы подключить библиотеку для Arduino, выполните следующие шаги:

  1. Скачайте библиотеки с официального сайта или из репозитория GitHub:

AlashIRControl.

  1. Откройте программу Arduino IDE и перейдите в меню «Скетч» → «Подключить библиотеку» → «Добавить .ZIP библиотеку…».

  2. В открывшемся окне выберите скачанный .zip файл и нажмите «Открыть».

  3. Снизу Arduino IDE появится сообщение «Библиотека добавлена. Проверьте меню «Подключить библиотеку»».

  4. Теперь библиотека будет доступна для использования в ваших проектах.

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

Для реализации проекта ИК Перехватчик вам понадобятся следующие компоненты, которые можно приобрести здесь:

  1. Arduino (например, Arduino Uno)

  2. Пульт дистанционного управления (батарейка в комплекте).

  3. Соединительные провода (3-х жильные).

  4. ИК приемник.

  5. Тестовый светодиод.

  6. Макетная плата

Подключение

Подключите компоненты согласно следующей схеме:

  1. ИК-передатчик:

  • Подключите один вывод к пину 2 на Arduino.

  • Подключите другой вывод к GND.

  1. ИК-приёмник:

  • Подключите вывод VCC к 5V на Arduino.

  • Подключите вывод GND к GND на Arduino.

  • Подключите вывод OUT к пину 7 на Arduino.

Схема подключения

Код:

Откройте Arduino IDE и создайте новый скетч, затем перепишите следующий код:

ir_interceptor.ino
#include <AlashIRControlTX.h> // Подключаем библиотеку для работы с ИК-передатчиком
#include <AlashIRControlRX.h> // Подключаем библиотеку для работы с ИК-приёмником
AlashIRControlTX irTransmitter(2); // Объявляем объект irTransmitter, с указанием вывода, к которому подключён ИК-передатчик
AlashIRControlRX irReceiver(7); // Объявляем объект irReceiver, с указанием вывода, к которому подключён ИК-приёмник
void setup() {
  Serial.begin(9600); // Инициализация серийного порта
  irTransmitter.begin(); // Инициализация работы с ИК-передатчиком
  irReceiver.begin(); // Инициализация работы с ИК-приёмником
}
void loop() {
  handleSerialInput(); // Обработка входных данных с серийного порта
  checkIRReceiver(); // Проверка и обработка данных с ИК-приёмника
}
void handleSerialInput() {
  if (Serial.available() > 0) {
    String data = Serial.readString();
    uint32_t decimalNumber = (uint32_t)strtoul(data.c_str(), NULL, 16);
    irTransmitter.send(decimalNumber, true);
  }
}
void checkIRReceiver() {
  if (irReceiver.check(true)) { // Проверка наличия данных в буфере, принятых с пульта
    Serial.print("Received IR data: ");
    Serial.println(irReceiver.data, HEX); // Вывод кода нажатой кнопки в шестнадцатеричном формате
    Serial.print("Bit length: ");
    Serial.println(irReceiver.length); // Вывод количества бит в коде
  }
}

Особенности кода ИК Перехватчика

Проект ИК Перехватчик предоставляет уникальные возможности по передаче и копированию инфракрасных (ИК) сигналов. Давайте рассмотрим основные особенности кода и его функционал.

Передача сигнала через серийный порт

Одной из ключевых функций данного кода является возможность передачи ИК-сигнала, введённого пользователем через серийный порт. Пользователь может ввести 16-значное шестнадцатеричное число в серийный монитор, и устройство отправит соответствующий ИК-сигнал. Это достигается с помощью функции handleSerialInput(), которая обрабатывает входные данные с серийного порта и отправляет сигнал.

Пример ввода и передачи сигнала:

  1. Пользователь вводит в серийный порт, например, FF629D.

  2. Код преобразует строку в десятичное число и отправляет его через ИК-передатчик.

ir_interceptor.ino
void handleSerialInput() {
  if (Serial.available() > 0) {
    String data = Serial.readString();
    uint32_t decimalNumber = (uint32_t)strtoul(data.c_str(), NULL, 16);
    irTransmitter.send(decimalNumber, true);
  }
}

Перехват и копирование ИК-сигнала

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

Пример перехвата и копирования сигнала:

  1. Устройство перехватывает ИК-сигнал от пульта.

  2. Код выводит захваченный сигнал в шестнадцатеричном формате на серийный монитор.

  3. Пользователь может использовать этот шестнадцатеричный код для дальнейшей передачи сигнала.

ir_interceptor.ino
void checkIRReceiver() {
  if (irReceiver.check(true)) { // Проверка наличия данных в буфере, принятых с пульта
    Serial.print("Received IR data: ");
    Serial.println(irReceiver.data, HEX); // Вывод кода нажатой кнопки в шестнадцатеричном формате
    Serial.print("Bit length: ");
    Serial.println(irReceiver.length); // Вывод количества бит в коде
  }
}

Общий функционал

  1. Передача сигнала через серийный порт: Пользователь может ввести 16-значное шестнадцатеричное число в серийный монитор, и устройство передаст соответствующий ИК-сигнал.

  2. Перехват и копирование сигнала: Устройство может перехватывать ИК-сигналы от других пультов, выводить их в шестнадцатеричном формате и затем использовать эти коды для передачи.

Пример использования

  1. Введите в серийный порт FF629D, и устройство передаст этот сигнал.

  2. Перехватите сигнал с пульта, и устройство выведет на серийный монитор, например, Received IR data: FF629D.

  3. Используйте выведенный код для повторной передачи, введя его в серийный порт.

Заключение

ИК Перехватчик представляет собой инновационный проект, открывающий широкие возможности для работы с ИК-сигналами. Его простота в использовании и мощный функционал делают его незаменимым инструментом как для любителей электроники, так и для профессионалов. Попробуйте создать свой ИК Перехватчик и откройте для себя новые горизонты в мире инфракрасных технологий!