- Необходимые компоненты
- Как работает ИК-связь?
- Принципиальная электрическая схема
- Программирование для удаленного ИК-декодера Arduino
- Сохранение данных ИК-удаленного декодера в таблицу Excel
Связь через ИК (инфракрасный порт) - это простая, недорогая и широко используемая технология беспроводной связи. ИК-свет чем-то похож на видимый свет, за исключением того, что длина волны немного больше. Это свойство ИК-излучения делает его незаметным для человеческого глаза и идеально подходит для беспроводной связи.
Существует множество приложений, в которых вам необходимо декодировать ИК-сигналы для управления некоторыми устройствами с помощью ИК-пульта. Итак, в этом руководстве мы собираемся использовать ИК-приемник TSOP1838 для создания ИК-удаленного декодера с использованием Arduino. Шестнадцатеричный код для каждой кнопки будет записан в лист Microsoft Excel. Этот простой декодер с ИК-пультом дистанционного управления можно использовать в таких проектах, как робот с ИК-пультом дистанционного управления, домашняя автоматизация и другие проекты с ИК-управлением.
Ранее мы использовали ИК-пульт и приемник TSOP для создания множества полезных приложений, таких как:
- Схема диммера TRIAC с ИК-пультом дистанционного управления
- Домашняя автоматизация с дистанционным ИК-управлением с использованием Arduino
- Домашняя автоматизация с дистанционным ИК-управлением и микроконтроллером PIC
- AC, управляемый сотовым телефоном, с помощью Arduino и Bluetooth
Необходимые компоненты
- Ардуино Уно / Ардуино Нано
- ИК-приемник (TSOP1838)
- Перемычки
- Макетная плата
Как работает ИК-связь?
Как и другие системы связи, инфракрасная связь также имеет передатчик и приемник. Передатчик выглядит как светодиод, но излучает свет в инфракрасном, а не в видимом спектре. В то время как ИК-приемник представляет собой фотодиод, встроенный в предварительный усилитель, который преобразует ИК-свет в электрический сигнал. Для ИК-связи передатчик и приемник должны быть направлены друг на друга. Чтобы узнать больше о схеме ИК-передатчика и приемника, перейдите по ссылке.
При нажатии кнопки дистанционного управления ИК-светодиод (передатчик) излучает инфракрасный свет. Этот свет принимается приемником, который обычно представляет собой фотодиод или фототранзистор. Но ИК-свет также излучается солнцем, лампочками и всем остальным, что выделяет тепло. Это может создавать помехи сигналу передатчика, поэтому для предотвращения этого сигнал передатчика модулируется с использованием несущей частоты от 36 кГц до 46 кГц. После получения сигнала ИК-приемник демодулирует сигнал и преобразует его в двоичный вид перед отправкой в микроконтроллер.
Здесь мы используем пульт от телевизора для отправки ИК-сигнала и TSOP1838 с Arduino для их приема.
Кроме того, проверьте здесь различные приложения на базе ИК-излучения, в том числе схему заглушки пульта дистанционного управления телевизором и схему ИК-тестера.
Принципиальная электрическая схема
Принципиальная схема удаленного ИК-декодера с использованием Arduino приведена ниже:
Подключения очень просты, так как датчик ИК-приемника имеет только три контакта: V, GND и Data. Подключите контакты Vs и GND ИК-приемника к контакту 3.3V GND Arduino, а контакт Data - к цифровому контакту 2 Arduino.
Программирование для удаленного ИК-декодера Arduino
Полный код для ИК-декодера Arduino приведен в конце страницы.
Для декодирования ИК-пульта, во-первых, нам нужно загрузить и добавить ИК-библиотеку в Arduino IDE. Вы можете скачать библиотеку IR Remote отсюда. После загрузки файла откройте свою Arduino IDE и перейдите в Sketch> Include library> Add.Zip library . Выберите файл библиотеки и нажмите «Открыть».
Начните свой код с включения файла библиотеки IR Remote.
#включают
После этого определите вывод Arduino, к которому вы подключили вывод данных ИК-приемника. В моем случае он подключен к выводу D2 Arduino.
int IRPIN = 2;
После этого создайте экземпляр для пина ИК-приемника.
IRrecv irrecv (IRPIN);
В следующей строке определите объект для класса decode_results , он будет использоваться ИК-приемником для отправки декодированной информации.
decode_results результат;
Внутри установки () функции, инициировать последовательную связь, и запустить ИК - приемник с помощью вызова IRrecv функции enableIRIn ().
void setup () {Serial.begin (9600); Serial.println («Включение IRin»); irrecv.enableIRIn (); Serial.println ("Включенный IRin"); Initialize_streamer (); }
В петле () функции, irrecv.decode постоянно проверяет наличие нового сигнала и, если будет получен новый сигнал, принятый код сигнала будет храниться в result.value функции.
void loop () {if (irrecv.decode (& result)) {Serial.print ("Значение:"); Serial.println (результат.значение, HEX); Write_streamer (); irrecv.resume (); } задержка (500); }
Для отправки данных в таблицу Excel из Arduino мы используем PLX-DAQ. Используя функцию Write_streamer () , мы отправляем данные последовательно по определенному шаблону, точно так же, как отображение значения на последовательном мониторе. Ключевые строки поясняются ниже:
void Write_streamer () {Serial.print ("ДАННЫЕ"); // всегда записывать "ДАННЫЕ", чтобы указать следующее как Data Serial.print (","); // Перейти к следующему столбцу, используя "," Serial.print (result.value, HEX); // Сохраняем дату в Excel Serial.print (","); // Переход к следующему столбцу с помощью "," Serial.println (); // Конец строки перейти к следующей строке}
Как только оборудование и программа готовы, пора загрузить программу на вашу плату Arduino Nano Board. После загрузки кода направьте пульт на ИК-приемник и нажмите кнопки пульта ДУ. Шестнадцатеричный код каждой кнопки будет напечатан на последовательном мониторе.
Сохранение данных ИК-удаленного декодера в таблицу Excel
Теперь, чтобы отправить данные в таблицу Excel, мы будем использовать PLX-DAQ. Это подключаемый модуль Excel, который помогает вам записывать значения из Arduino прямо в таблицу Excel на вашем ноутбуке или ПК. Воспользуйтесь ссылкой, чтобы скачать файл. После загрузки извлеките файл и щелкните файл.exe, чтобы установить его. На вашем рабочем столе будет создана папка с именем PLX-DAQ.
Теперь откройте файл « PLX-DAQ spreadsheet» из папки рабочего стола. Если макросы отключены в вашем Excel, вы увидите блокировку безопасности, как показано на изображении ниже:
Нажмите Параметры -> Включить содержимое -> Готово -> ОК, чтобы включить макросы. После этого вы получите следующий экран:
Теперь выберите скорость передачи «9600» и порт, к которому подключен ваш Arduino, а затем нажмите «Подключиться», чтобы начать потоковую передачу данных. Ваши значения должны начать регистрироваться, как показано на рисунке ниже.
Вот как можно легко построить дистанционный ИК-декодер Arduino для преобразования удаленных ИК-сигналов в эквивалентный HEX-код.
Полный код Arduino с демонстрационным видео приведен ниже.