Передача ИК сигналов

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

Для приема сигнала используется фотоприемник, состоящий из фотодиода, усилителя с полосовым фильтром, настроенным на определенную основную (несущую) частоту, и демодулятора который выделяет принимаемые данные. Обычно, микросхема имеет 3 вывода Vo — ножка выхода ИК-приёмника. GND — общий вывод (минус источника питания). Vs — вывод плюса напряжения питания, обычно от 4,5 до 5,5 вольт. Этот фотоприемник имеет маркировку TSOP.

Упрощённая блок-схема TSOP-приёмника приведена на рисунке. В качестве выходного элемента внутри TSOP используется обычный N-P-N транзистор. В неактивном состоянии транзистор закрыт, и на ножке Vo присутствует слабый уровень высокого напряжения (лог. «1»). При появлении в чувствительной зоне TSOP инфракрасного излучения с «основной» частотой этот транзистор открывается, и выходная ножка Vo принимает низкий уровень сигнала (лог. «0»). 

 

«Основная» частота — это частота импульсов инфра-красного излучения (света), которую отфильтровывает внутренний демодулятор TSOP. Эта частота обычно равна 36, 38, 40 кГц, но может быть и другой, об этом необходимо справиться в даташите на конкретный тип TSOP-приёмника. Для повышения помехоустойчивости ИК-канала связи, применяется модулированная передача ИК-света. Временные характеристики модуляции для помехозащитной передачи приведены в даташите на конкретный TSOP-приёмник. Но в большинстве случаев достаточно придерживаться простых правил:

1) минимальное количество импульсов в пачке — 15

2) максимальное количество импульсов в пачке — 50

3) минимальное время между пачками — 15хT *

4) частота импульсов в пачке должна соответствовать основной частоте TSOP-приёмника

5) светодиод должен быть с длиной волны = 950 nm.

*T — период «основной» частоты TSOP-приёмника.

Регулируя в некоторых пределах длину пачки импульсов, можно передавать двоичные сигналы. Длинный импульс на выходе TSOP-приёмника может означать «единицу», а короткий — «нуль». Таким образом, при соблюдении правил модуляции дальность передачи цифровых сигналов на прямой видимости между светодиодом и TSOP-приёмником может достигать 10-20 метров. Скорость передачи не большая, около 1200 бит в секунду, в зависимости от применённого TSOP-приёмника.

 

Принцип передачи сигнала:

Модулируя сигнал на входе передатчика последовательным кодом, мы получаем на выходе передатчика модулированный сигнал который состоит из несущей (основной) частоты и последовательного кода, в виде пачек импульсов. Длинный импульс это единица, короткий ноль. В итоге мы можем передавать двоичный код и принимать его.

Теперь перейдем к небольшому примеру приема сигналов ИК с помощью отладочной платы LaunchPad MSP-EXP430G2 от компании Texas Instruments. Нам необходимо подключить наш приемник ИК (я использовал TSOP4836) к нашей отладочной плате. 

 

Как мы уже говорили микросхема приемника TSOPимеет 3 вывода OUT — ножка выхода ИК-приёмника. GND — общий вывод (минус источника питания). VCC — вывод плюса напряжения питания. Как видно из схемы подключения выход приемника подключен к пину №11.

Приступаем к программированию нашего LaunchPad. Для начала запускаем среду программирования LaunchPad — Energia.

 

Выбираем тип используемого контроллера, совместимого с LaunchPad msp430g2553. И приступаем к написанию простого скэтча.

#include <IRremote.h>//Подключаем библиотеку для работы с ИК приемником

int RECV_PIN = 11; // Определяем с какого контакта будем принимать сигнал отИКприёмника TSOP4836

IRrecvirrecv(RECV_PIN); //Создаем класс ИК приемника

decode_resultsresults; // Результат декодирования помещаем в переменную

void setup()

{

Serial.begin(9600); // Инициируем порт для наблюдения результатов (Serial monitor)

irrecv.enableIRIn(); // Запускаем прием ИК

}

void loop() {

if (irrecv.decode(&results)) { // Если получен какой либо код с ИК приемника

Serial.println(results.value); // Выводим числовое значение нажатой клавиши на пульте ИК

irrecv.resume(); // Ожидаем получение следующей переменной

}

}

Нажимаем кнопку Upload, прошиваем наш контроллер. Открываем SerialMonitor. Берем пульт управления от телевизора или другой пульт ИК. Подносим к нашему приемнику TSOP 4836 подключенному к LaunchPad и начинаем нажимать на кнопки пульта, в терминал будут выводиться значения кнопок пульта в десятичной системе исчисления. Для того что бы получить значения в двоичной системе необходимо изменить строчку добавив в каком виде вы хотите получить данные.

Serial.println(results.value, BIN); // Выводим числовое значение нажатой клавиши на пульте ИК

 

Обсуждаем тут https://phreaker.ru/forum/showthread.php?t=1048  

(C) mbqart

www.phreakerclub.com

Related Post

Анализатор пакетов автосигнализации на MINI STM32 v3.0Анализатор пакетов автосигнализации на MINI STM32 v3.0

Давно приобрел эту платку на STM32F103RBT6 микроконтролере. Привлекла она меня наличием 2.8 дюймового дисплея 320*240 точек с контролером ILI9325.  В качестве приемника в схеме используется приемник RR-40. Он работает в

USB кодграббер: Кодграббер для ноутбука под StarLine и KeeLoqUSB кодграббер: Кодграббер для ноутбука под StarLine и KeeLoq

Предлагаю вашему вниманию новый проект, который в первую очередь является универсальным USB программатором для микроконтроллеров серии AVR, небольшой макетной платой, к которой вы сможете подключить любые устройства, включая датчики, приемопередатчики