Пруф оф концепт - прием и передача ИК сигнала одним светодиодом

Just for fun...

Решил сделать девайс, записывающий сигналы с ПДУ (от ТВ, DVD, кофеварок… :)), а затем воспроизводящий их. Вообще ничего необычного в этом нету, но возможно кому-то понравится решение: устройство состоит из МК (STM8L), резистора и ИК-диода… ну и питание еще :) А никаких дополнительных фильтров и усилителей нету.

Сия заметка исключительно «proof of concept» и код который я к ней прицепил не умеет ничего кроме записи и воспроизведения одной команды. Но функционал легко можно расширить.


Если верить законам физики, то светодиод может работать «наоборот». Посветив на ИК-диод другим таким-же диодом (в нашем случае это пульт) мы увидим скачки напряжения на нем. Если катод первого светодиода подключен к земле, то на аноде появятся положительные импульсы. Их амплитуда зависит от мощности излучателя в пульте, направления излучения (точно в диод или немного в сторону) и кучи других факторов. Если светить вплотную мощным пультом, то можно получить выбросы в 1-2 Вольта.

Проблема в том, что емкость проводов, дорожек, монтажа, выводов МК вместе с очень высоким входным импедансом ножки, создают прикольную RC цепочку, которая сглаживает импульсы на диоде так, что несущую частоту уже не разглядеть. Пришлось усложнять схему в два раза — ставить шунтирующий резистор:

(там написано D0 — это пин, на котором удачно совпали выход таймера и вход компаратора)

Теперь в МК подаются импульсы амплитудой 100-500мВ. Их мы заводим на +вход компаратора. На -вход подаем напряжение со встроенного DAC (соединить DAC с компаратором можно прямо внутри МК, переключив пару бит в регистрах). Отлично! Можно выставить DAC на любое нужное напряжение, и оно будет использоваться как порог компаратора.

(красный — импульсы несущей частоты со светодиода, желтый — реакция компаратора).

Теперь мы можем посчитать несущую частоту и измерять длительность пачек импульсов и пауз между ними. Для измерительных целей заюзаны два таймера. В итоге выходит вот такая красота:

(красный — пачки импульсов с диода, желтый — реакция системы на это безобразие)

Информация о длительности импульсов и пауз закидывается в массив, откуда ее потом можно воспроизводить.

Для воспроизведения сигнала используется таймер TIM3 в ШИМ-режиме. Его второй канал очень удачно оказался на ножке D0.

А вот, для примера, копируем сигнал от пульта для Sony Alpha:

(дискавери питается от батареек)

Исходники(IAR 1.30)
  • +17
  • 13 февраля 2013, 21:23
  • dcoder
  • 1
Файлы в топике: IR_Sense_Test.zip

Комментарии (26)

RSS свернуть / развернуть
Молодец!
Нет, ну правда. В современную эпоху людей, которые только и умеют, что искать по каталогу нужную детальку, да запаять по схеме из ДШ такие статьи заставляют смотреть на мир немного подругому.
+3
  • avatar
  • dekar
  • 13 февраля 2013, 21:39
более того. вполне в рамках видения красоты Lifelover`ом.
решение прикольное.
0
Между прочим, идея этой штуки была навеяна книжкой-мемуарами Стива Возняка. Он там писал, как ушел из Apple ради того, чтобы создать новую компанию и разрабатывать первый универсальный пульт.
0
Коллега dcoder всегда поражал меня умением «нетрадиционно» применить стандартные компоненты. То температуру измеряет с помощью светодиода, то делает программатор из клавиатуры… ИМХО, это очень полезная черта для инженера – умение смотреть «под другим углом» на обыкновенные вещи. За это, однозначно, ему «респект и уважуха» :)
+6
Какой ик-диод использовали?
0
  • avatar
  • valio
  • 13 февраля 2013, 21:40
Честно? Понятия не имею :) Продавались у нас под названием «ИК-диод 5мм»
0
Сразу вот это вспомнил)
0
Проблема в том, что емкость проводов, дорожек, монтажа, выводов МК вместе с очень высоким входным импедансом ножки, создают прикольную RC цепочку, которая сглаживает импульсы на диоде так, что несущую частоту уже не разглядеть.
Зато и сигнал на выходе диода сразу демодулированный :) Алсо, ты про емкость самого диода забыл, а она, подозреваю, далеко не последний вклад вносит.

А с чем связан выбор включения светодиода как фотогенератора, а не фотодиода (т.е. анод на землю, катод подтянуть к питанию)? Теоретически, в этом режиме можно получить на высокоомной нагрузке амплитуду, достаточную чтобы даже без компаратора обойтись.
0
  • avatar
  • Vga
  • 13 февраля 2013, 22:14
Потому что так вообще ничего не надо делать, при переключении приемник/излучатель. И обходимся одним пином.

А если сигнал демодулированный, то как узнать частоту несущей? ;) А она потом пригодится при передаче
0
Ну там было бы два пина. Зато минус резистор.
Частота — это да. Хотя 95% пультов работают на 38кГц.
0
Вот та-же Sony Alpha на 40кГц
0
Ну, 40кГц по моему сигнал с несущей 38кГц примет, хотя дальность будет меньше. Вот филипсы с несущей 400кГц — они пролетают.
0
P.S. Или панасоники ли, не помню уже.
0
Раза в два хуже будет дальность — а у нас и так передатчик слабый
пруфпик
0
Нужен еще один подход к станку. Резистор лишний. Втыкаешь светик между выводов. Для детекта подаешь напругу встречно, заряжая емкость вывода, а фототок будет эту емкость разряжать. Время разряда зависит от интенсивности засветки. Но всяко больше естественной утечки. Код этой реализации был вроде бы у Элмчена.
+5
Гдето я уже это видел. Если я правильно помню, то оригинал был на английском. Был русский перевод со ссылкой на оригинал. Еще там была типа реклама — Теперь телефоны перемигиваясь диодами подсветки могут общаться
0
  • avatar
  • OlegG
  • 14 февраля 2013, 12:01
Обычные телефоны? Без вмешательства в железо? Не верю, например.
А так-то, данные при помощи монитора я уже передавал www.youtube.com/watch?v=g2XmBdOXa-U
0
Но с 2003 года ничего не изменилось
0
Это какой осциллограф с таким огромным разрешением?
0
OWON SDS7102, у него дисплей 8" :)
0
Применение ИК предусилителя было бы интересным.
0
Будучи школьником делал переговорное устройство (аналоговое) на ИК лучах, там тоже светодиод в качестве фотодиода использовался. Схема была из какого-то журнала.
+1
  • avatar
  • mChel
  • 15 февраля 2013, 16:04
Не читал, но плюсую.
0
) супер!
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.