Датчик используется для приема инфракрасного излучения и используется в системах совместно с пультом дистанционного управления, например, в автомагнитолах, телевизорах и так далее.
Внутри датчика находится специализированная интегральная схема, предназначенная для приёма инфракрасного сигнала от пультов дистанционного управления (ДУ). Как правило, ИК-приёмник имеет не менее 3-х выводов. Один вывод является общим и подключается к минусу «-» питания (GND), другой служит плюсовым «+» выводом (Vs), а третий цифровым выходом принимаемого сигнала (Out). В отличие от обычного фотодиода, этот датчик способен принимать сигнал пачками, что исключает случайное срабатывание от помех, например, от осветительных приборов.
TSOP сенсором может использоваться в паре с любым ИК-пультом, в том числе от телевизора, магнитолы и других, самое главное - соблюдать совместимость по несущей частоте. Если использовать пульт с частотой, отличной от 36 кГц, то приемник не воспримет этот сигнал.
Для удобства и простоты использования мы разместили всю схему с необходимой обвязкой на одной плате, к модулю необходимо подключить только питание и выводы контроллера при помощи четырехконтактного разъема.
Подключение модуля осуществляется с помощью разъема XH-2.54-4P, выводы которого имеют следующие назначения:
VCC - питание
DO - цифровой выход
AO - NC (не задействован)
GND - земля (общий)
Чтобы начать работу с датчиком его необходимо подключить к микроконтроллеру по схеме ниже. Для быстрого и надежного подключения используйте QuatroPort A050.
Обычно для работы с модулем используется пульт дистанционного управления следующего вида.
Пульт имеет 17 кнопок, на каждой из которой нанесена маркировка.
Дальность передачи сигнала до 8 м. Работает пульт от батарейки 3В типа CR2025.
Каждой кнопке на пульте соответствует свой код, который должен распознаваться микроконтроллером. Поэтому для начала необходимо выяснить какой код соответствует той или иной кнопке. Для этого необходимо загрузить в микроконтроллер следующую программу, предварительно скачав и установив библиотеку для работы с инфракрасным датчиком отсюда: https://github.com/z3t0/Arduino-IRremote (папку с библиотекой необходимо переименовать в "IRremote".)
#include "IRremote.h" IRrecv irrecv(10); // указываем вывод, к которому подключен приемник decode_results results; void setup() { Serial.begin(9600); // выставляем скорость COM порта irrecv.enableIRIn(); // запускаем прием } void loop() { if ( irrecv.decode( &results )) { // если данные пришли Serial.println( results.value, HEX ); // печатаем данные irrecv.resume(); // принимаем следующую команду } }
После того, как программа загружена в микроконтроллер, можно направить пульт ДУ на ИК-приемник и нажать какую-нибудь кнопку. В монитор порта будет передаваться шестнадцатеричный код нажатой кнопки, например, для клавиши "1" для этого пульта придет код "FFA25D". Если кнопку держать долго нажатой, придет код "FFFFFFFF", он одинаков для всех кнопок. В последующих разработках если необходимо по нажатию на конкретную кнопку совершить определенное действие, необходимо запомнить или скопировать код, соответствующей нужной кнопке, и далее использовать его для распознавания нажатий, дописав "0x" перед кодом кнопки. Для этой операции удобно использовать оператор сравнения switch-case:
if ( irrecv.decode( &results )) { // если данные пришли switch ( results.value ) { case 0xFF18E7: // кнопка вверх digitalWrite (13, HIGH); break; case 0xFF4AB5: // кнопка вниз digitalWrite (13, LOW); break; }