Ардуино ИК приемник

Устройство ИК приемника. Принцип работы

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

Принцип работы IR ресивера. Обработка сигнала от пульта ДУ

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

Под действием инфракрасного излучения в фотодиоде, у которого между p и n областями создана дополнительная область из полупроводника (i-область), начинает течь ток. Сигнал поступает на усилитель и далее на полосовой фильтр, который настроен на фиксированную частоту: 30; 33; 36; 38; 40 и 56 килогерц и защищает приемник от помех. Помехи могут создавать любые бытовые приборы.

Чтобы сигнал от пульта ДУ принимался ИК приемником Ардуино, пульт должен быть с той же частотой, на которую настроен фильтр в IR приемнике. Поэтому не каждый пульт дистанционного управления подойдет для работы. Следует подбирать IR приемник и IR передатчик с одной частотой. После фильтра сигнал поступает на амплитудный детектор, интегрирующий фильтр и выходной транзистор.

Как подключить ИК приемник к Ардуино

Корпуса инфракрасных приемников содержат оптический фильтр для защиты прибора от внешних электромагнитных полей, изготавливаются они специальной формы для фокусировки принимаемого излучения на фотодиоде. Для подключения IR приемника к Arduino UNO используют три ножки, которые соединяют с — GND, 5V и A0. Советуем для начала использовать 3,3 Вольта, чтобы не сжечь ИК датчик при настройке.

Для занятия нам понадобятся следующие детали:

  • плата Arduino Uno / Arduino Nano / Arduino Mega;
  • макетная плата;
  • IR приемник;
  • пульт ДУ;
  • 1 светодиод и резистор 220 Ом;
  • провода «папа-папа» и «папа-мама».

Схема подключения ИК приемника к аналоговому порту Ардуино

Подключите IR приемник по схеме, представленной выше, и подключите светодиоды к 12 и 13 пину. Перед загрузкой программы, вам потребуется установить библиотеку IRremote.h, если она не была еще установлена. Данная библиотека не относится к стандартным библиотекам среды программирования Arduino IDE. Скачать библиотеку IRremote.h и готовый скетч можно одним архивом с Google Диск по ссылке .

Скетч для ИК приемника Arduino:

#include <IRremote.h> // подключаем библиотеку для IR приемника IRrecv irrecv(A0); // указываем пин, к которому подключен IR приемник decode_results results; void setup() // процедура setup { irrecv.enableIRIn(); // запускаем прием инфракрасного сигнала pinMode(13, OUTPUT); // пин 13 будет выходом (англ. «output») pinMode(12, OUTPUT); // пин 12 будет выходом (англ. «output») pinMode(A0, INPUT); // пин A0 будет входом (англ. «intput») Serial.begin(9600); // подключаем монитор порта } void loop() // процедура loop { if (irrecv.decode(&results)) // если данные пришли выполняем команды { Serial.println(results.value); // отправляем полученные данные на порт // включаем и выключаем светодиоды, в зависимости от полученного сигнала if (results.value == 16754775) { digitalWrite(13, HIGH); } if (results.value == 16769055) { digitalWrite(13, LOW); } if (results.value == 16718055) { digitalWrite(12, HIGH); } if (results.value == 16724175) { digitalWrite(12, LOW); } irrecv.resume(); // принимаем следующий сигнал на ИК приемнике } }

Пояснения к коду:

  1. Библиотека IRremote.h содержит набор команд и позволяет упростить скетч;
  2. Оператор decode_results присваивает получаемым сигналам от пульта дистанционного управления имя переменной results.

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