Схема и программа модуля приема ИК-команд

Первый вопрос — зачем нам нужно что-либо, имеющее отно­шение к инфракрасным кодам?

Домашняя аппаратура — телевизоры, музыкальные цент­ры и т. п. — управляется с помощью пультов дистанционного управления, излучающих команды в ИК-диапазоне Чтобы управлять аппаратурой с компьютера (программно), нам по­требуется излучатель ИК-кодов — модуль, который по коман­де компьютера будет излучать необходимые ИК-команды. Для работы этого модуля нам потребуется еще и считыватель ИК-кодов. Кроме того, пора подумать об устройствах управ­ления в системе, причем хотелось бы иметь нечто достаточ­но дешевое.

Одним из устройств управления, как мы решили, станет компьютер. Можно подумать о создании устройства управле­ния с использованием клавиатуры: нажатие клавиши отправ­ляет в системную сеть команду управления.

Но и у компьютера, и у клавишного модуля есть небольшой недостаток: их удобно держать на стене или на столе, но не на кресле, где мы проводим достаточно много времени. Воп­рос о клавишном модуле управления пока отложим и рассмот­рим возможность управления с помощью старого пульта от видеомагнитофона или телевизора, которые давно отправи­лись бы на свалку, если бы не завалялись на полке. В этом слу­чае нам нужен модуль приема инфракрасных кодов.

Что собой представляют инфракрасные коды, излучаемые пультами управления?

Не вдаваясь в теоретические тонкости, можно сказать так: когда на пульте управления, положим, телевизором нажима­ется клавиша, установленный в нем светодиод (ИК-диапазо — на) начинает мигать. При этом он воспроизводит последова­тельность вспышек с некоторой частотой (от 20 до 400 кГц) и пауз, которые в совокупности и есть код управления. Каж­дая клавиша имеет свой набор вспышек и пауз. Клавиши раз­ных пультов излучают разные коды управления, частота

(несущая частота) вспышек также может различаться. В каче­стве примера приведу структуру кодов управления фирмы Sony:

Technical Info

Code length (длина кода): 12 bits (15 bits для некоторых функций видеокамеры) Carrier (несущая): 40kHz

Header (Заголовок): I + +—+..

TOC o "1-3" h z _ 4Т_____ Т

+——- +

1 кодируется: I I + +—+..

_ 2T_____ T

+—+

О кодируется: I.. I +..+—+.. _Т_Т

T = 55Ous приблизительно Пауза между данными: 25ms data: hhhhxxxxxxyyyyyy

А А

MSB LSB

Хххххх command (команда) уууууу address (номер аппарата)

Таким образом, сначала идет заголовок длиной в 2,75 мс (инфракрасный свет мигает с частотой 40 кГц), затем пауза в 0,55 мс и код, в качестве которого для простоты рассмотрим последовательность 1001. Он будет соответствовать вспышке в 1,1 мс, паузе в 0,55 мс, вспышке в 0,55 мс, паузе в 0,55 мс, вспышке в 0,55 мс, паузе в 0,55 мс, вспышке в 1,1 мс, паузе в 0,55 мс, паузе в 25 мс. Уф!

Как будут выглядеть коды других производителей? Скорее всего, иначе. Есть несколько рекомендаций по применению

ИК-кодов, а производители вольны придерживаться их или нет. Кодирование логической единицы может производиться переходом (фронтом) от паузы к вспышке, логического нуля обратным переходом. Заголовок может отсутствовать и т. д.

Многие универсальные пульты управления, запоминаю­щие ИК-коды, фиксируют длительность посылок и пауз, ждут длинной паузы между посылками, означающей завершение команды, а затем сохраняют значения в формате собственно­го времени, которое зависит от тактовой частоты синхроге­нератора. Если при воспроизведении кода они могут менять несущую частоту, то записывают служебную информацию, ее определяющую.

Как и в предыдущем проекте, вначале приведу схему (рис. 1.45) и программу.

В табл. 1.4 перечислены все необходимые элементы.

Таблица 1.4. Спецификация модуля приема инфракрасных кодов

N2

Обозна­чение

Изделие

Количество

Цена (р.)

Примечания

1

DDI

МАХ1483

1

96

2

DD2

PIC16F628A

1

100

Установить на панельку

3

DD3

LM2936-Z5

1

68

4

DD4

TSOP17 (16)

1

10

5

VD1

АЛ307

1

3

7

R1

1 кОм 0,25

1

1

8

R2

12 кОм 0,25 Вт

1

1

9

R3

100 Ом 0,25 Вт

1

1

10

R4-R7

10 кОм 0,25 Вт

4

4

11

С1, С2

0,1 мкФ

2

6

12

СЗ

100,0 мкФ 16 В

1

5

13

С4

4,7 мкФ 5В

1

3

14

XI

Клеммник 4 к

1

3

15

S1

Перекл. 2 пол., 4 н

1

5

16

Socket

DIP18

1

21

Панелька

Для обращения к модулю с запросом принята новая ИК — команда — Cxx$0S (аналогично команде запроса статуса релей­ного модуля).

Х1 "7

DD1

8

СTJT

1І7

7

МАХ 1483

6

4 8

2

3 6

І

DD2

IE

PIC16F628A

+12 В

■х

R1-R3 С2

R4-R7

14

■ СЗ

DD4

17

TSOP1737

С4 RB4

S1

Ю-

Х

11

RB5

12

RB6

13

VO

RB7

•г

Рис. 1.45. Принципиальная схема модуля приема инфракрасных кодов

Ответ модуля — Сххккк, если команда пришла, и Cxx#ff, если новая ИК-команда не приходила.

Здесь хх, как и ранее, — двухбайтовый адрес модуля, kkk — три байта символов номера команды от 001 до 255, f f под­тверждает отсутствие изменений за время опроса.

Updated: 21.01.2012 — 19:29