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

6 марта 2013

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

Для приема сигнала используется фотоприемник, состоящий из фотодиода, усилителя с полосовым фильтром, настроенным на определенную основную (несущую) частоту, и демодулятора который выделяет принимаемые данные. Обычно, микросхема имеет 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); // Выводим числовое значение нажатой клавиши на пульте ИК

 

Обсуждаем тут http://phreakerclub.com/forum/showthread.php?t=1048  

(C) mbqart

www.phreakerclub.com

Комментирование отключено.
Яндекс.Метрика