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

Для приема сигнала используется фотоприемник, состоящий из фотодиода, усилителя с полосовым фильтром, настроенным на определенную основную (несущую) частоту, и демодулятора который выделяет принимаемые данные. Обычно, микросхема имеет 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. И приступаем к написанию простого скэтча.
[PHP]#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(); // Ожидаем получение следующей переменной
}
}[/PHP]
Нажимаем кнопку Upload, прошиваем наш контроллер. Открываем SerialMonitor. Берем пульт управления от телевизора или другой пульт ИК. Подносим к нашему приемнику TSOP 4836 подключенному к LaunchPad и начинаем нажимать на кнопки пульта, в терминал будут выводиться значения кнопок пульта в десятичной системе исчисления. Для того что бы получить значения в двоичной системе необходимо изменить строчку добавив в каком виде вы хотите получить данные.
[PHP]Serial.println(results.value, BIN); // Выводим числовое значение нажатой клавиши на пульте ИК в двоичной системе[/PHP]

На ИК сигналах можно скажем передавать килог, тем самым сделать неперехватываемую штатку цз.