на главную
Карта сайта
English version
Вы читаете:

Блок ИК управление реле, принципиальная схема устройства

Р/л технология
10 лет назад

Блок ИК управления реле


По ИК командам, подаваемым с помощью любого ПДУ от бытовой техники, работающего по распространённому протоколу NEC (или ему подобному), предлагаемый блок управляет десятью установленными в нём электромагнитными реле, которые, в свою очередь, могут включать и выключать различные электроприборы. Имеется возможность программно задать соответствие между нажимаемыми кнопками используемого пульта и реле, изменяющими состояния по этим нажатиям.

Поскольку в блоке установлены десять реле, в авторском варианте для управления ими выбраны цифровые кнопки ПДУ "0"-"9". При нажатии на такую кнопку соответствующее ей реле замыкает свои контакты, при повторном нажатии размыкает их, при ещё одном - вновь замыкает и так далее. Если нажать на кнопку "VOL-", контакты всех реле разомкнутся, а на "EQ" - замкнутся. Для контроля состояния реле предусмотрены светодиоды. Когда все реле сработали, от источника переменного напряжения 15...17 В (или постоянного 24 В) блок потребляет ток 200...250 мА. Это значение зависит от применённых реле.

Для изготовления и налаживания этого блока нет необходимости заранее знать коды команд, подаваемых используемым ПДУ при нажатиях на его кнопки. Нужно лишь убедиться, что пульт работает по протоколу, совпадающему с NEC по способу кодирования передаваемой информации и по её объёму (каждая команда - четыре байта). Учтите, что ПДУ от разных приборов, даже работающие по одному и тому же протоколу, при нажатиях на функционально одинаковые кнопки генерируют, как правило, команды с различными кодами. Чтобы определить эти коды, я разработал специальную программу PriemNEC_Eeprom, которую нужно загрузить в микроконтроллер собранного устройства и, проделав несложные операции, перенести полученные коды в рабочую программу микроконтроллера.

Рис. 1

 

Схема блока ИК управления изображена на рис. 1. Он не содержит необычных технических решений, а также дефицитных и слишком дорогих деталей. Посылаемые с помощью ПДУ команды принимает модуль ИК приёмника U1, сигналы которого поступают на вход PD3 микроконтроллера DD1. Напряжение питания микроконтроллера (5 В) получено из выпрямленного диодным мостом VD1 напряжения около 24 В с помощью интегрального стабилизатора DA1. Заменять здесь импортный стабилизатор 7805 отечественными КР142ЕН5А или КР142ЕН5В нельзя, поскольку допустимое входное напряжение у них всего 15 В (в отличие от 35 В у 7805).

Микросхемы DD2 и DD3 - наборы электронных ключей на составных транзисторах (максимальный коммутируемый ток 130 мА, напряжение - 50 В). Реле K1-K10 применены типа G2L-113P-V-US-24VDC (сопротивление обмотки 1200 Ом), контакты которых способны коммутировать ток до 5 А при переменном напряжении до 250 В.

Рис. 2

 

Плата размерами 120x110 мм, чертёж печатных проводников которой изображён на рис. 2, изготовлена из фольгированного с одной стороны текстолита. Детали на её противоположной печатным проводникам стороне расположены, как показано на рис. 3.

Рис. 3

Кроме них здесь имеются две перемычки из неизолированного провода. Штрихпунктирной линией изображён контур пластинчатого теплоотвода стабилизатора DA1. Высота теплоотвода - 25 мм (по высоте реле). Для микроконтроллера DD1 на плате должна быть предусмотрена панель, в которую его вставляют уже запрограммированным.

На стороне печатных проводников платы монтируют, как показано на рис. 4, две группы перемычек. Перемычки одной группы изображены чёрными линиями. Их делают из тонкого изолированного провода. Красными линиями показаны перемычки другой группы, соединяющие в нужном порядке контакты реле с контактной колодкой XT1. Сечение и изоляция провода, из которого они выполнены, должны соответствовать коммутируемому реле току и напряжению.

Рис. 4

 

Прежде чем приступать к изготовлению платы, необходимо убедиться, что пульт, с которым её предстоит использовать, работает по протоколу, подобному NEC. Для этого можно воспользоваться простым узлом, собранным по схеме, показанной на рис. 5, подключив его к микрофонному входу звуковой карты компьютера.

Рис. 5

Пульт направляют на чувствительное к ИК излучению окно модуля U1 и с помощью входящей в комплект Windows программы "Звукозапись" (или другой аналогичной) записывают в компьютерные wav-файлы сигналы, излучаемые пультом при нажатиях на его кнопки. Просмотреть осциллограммы записанных сигналов можно, например, запустив WAVE-редактор, встроенный в пакет программ NERO.

Пример осциллограммы сигнала пульта протокола NEC имеется в статье [1]. Разница лишь в том, что запись производилась с помощью цифрового осциллографа, а не компьютера. Если импульсы и паузы между ними в сигналах исследуемого пульта имеют такую же, как в примере, длительность и общий объём передаваемой в каждой команде информации (четыре байта) совпадает - пульт пригоден для использования с описываемым устройством. Подробное описание различных протоколов, используемых в ИК системах дистанционного управления, можно найти в [2]. Оттуда же взят прототип программы декодирования кодовых посылок.

Собрав описываемое устройство, необходимо, прежде всего, определить, какие коды команд соответствуют нажимаемым на выбранном ПДУ кнопкам. Скорее всего, они будут отличаться от кодов пульта, использовавшегося автором.

Чтобы сделать это, следует загрузить в программную память микроконтроллера ATtiny2313-20PI коды из файла PriemNEC_Eeprom.hex, установить микроконтроллер в предназначенную для него панель на плате и включить питание.

Направив пульт на ИК приёмник U1, нажимайте с интервалами 2...3 с на каждую из его кнопок по очереди. Подтверждая каждый удачный приём команды, на плате должен кратковременно вспыхнуть светодиод HL1, а состояние HL3 измениться на противоположное. Это признак того, что код принят и записан в EEPROM микроконтроллера. Максимальное число нажатий на кнопки, которые могут быть зафиксированы за один запуск программы, - 32. Их последовательность необходимо запомнить, а лучше - записать на бумаге.

Рис. 6

 

Далее устройство следует выключить, перенести микроконтроллер из его панели в панель программатора, с помощью которого прочитать содержимое EEPROM. На рис. 6 изображено окно программы IC-Prog с таким содержимым, полученным автором при исследовании применённого им ПДУ от автомобильного FM-модулятора. Этот пульт имеет 20 кнопок и небольшие размеры (85x40x6 мм).

Рис. 7

 

Каждой нажатой кнопке соответствуют четыре последовательные байтовые ячейки. Коды в первых двух из них (0x40, 0xBF) от кнопки к кнопке не меняются, а в третьей и четвёртой находятся собственно код подаваемой кнопкой команды и его инверсия. В рассматриваемом устройстве используются лишь коды из четвёртых ячеек. На рис. 7 они написаны справа от изображений кнопок пульта от FM-модулятора. Подобную схему вам предстоит составить для собственного пульта.

 

 

Остаётся внести в рабочую программу изменения, адаптирующие её к имеющемуся ПДУ. Для этого с помощью среды разработки программ AVRStudio необходимо открыть файл Plata_ИК_upravlenie_rele2.asm и найти в нём строки с метками one, mesg и Wataa. Они показаны в таблице, причём для удобства каждый из массивов mesg и Wataa здесь разбит на несколько частей, снабжённых комментариями.

Константа one содержит два первых байта команды. Как уже говорилось, для всех команд они одинаковы, но могут различаться от пульта к пульту. Те, которые передаёт ваш пульт, нужно внести сюда вместо имеющихся в программе. Третий байт команды программа не анализирует, поэтому указывать его значение нигде не требуется.

В байтовом массиве mesg перечислены коды (четвёртые байты) команд, подаваемых каждой из используемых кнопок ПДУ от FM-модулятора.

Их следует заменить кодами кнопок своего ПДУ. Их максимальное число - 15. Поскольку для управления реле задействованы всего 12 кнопок, байты с тринадцатого по пятнадцатый заполнены несуществующими кодами кнопок, вместо которых при желании можно написать существующие, и эти команды станут исполняться. Шестнадцатый байт содержит код 0xFF - признак конца массива, изменять его нельзя.

Массив 16-разрядных слов Wataa содержит коды, определяющие действия устройства при приёме той или иной команды. Слова в нём следуют в том же порядке, что и коды команд в массиве mesg. Первому коду (кнопке ПДУ) соответствует первое слово, второму - второе и так далее. Старший байт слова задаёт выполняемую операцию: 0x00 - выключить все реле, 0x01 - изменить состояние разрядов порта B и связанных с ними реле, 0x02 - изменить состояние разрядов порта D и связанных с ними реле, 0x03 - включить все реле. Единицами в двоичных разрядах (одном или нескольких) младшего слова отмечают те из разрядов указанного старшим байтом порта, состояние которых при приёме данной командой должно измениться на противоположное. Учтите, что состоянием разрядов PD3 и PD5 таким образом управлять нельзя. Уровень на выводах разрядов PD0-PD2 изменяться командами будет, но на описанной плате они никуда не подключены. Чтобы использовать их, потребуется доработка. При старших байтах, равных 0x00 или 0x03, младший байт не анализируется и может быть любым.

После внесения изменений программу необходимо ассемблировать. В результате будет получен HEX-файл рабочей программы, адаптированной к выбранному ПДУ Его содержимое следует загрузить в программную (FLASH) память микроконтроллера.

Если при нажатии на кнопку ПДУ сигнализирующий о приёме команды светодиод HL1 не мигает, необходимо подобрать значение константы Delay_1125us, отвечающей в программе за точное формирование необходимых для правильного приёма интервалов времени. В ассемблерном файле программы оператор .equ, присваивающий ей значение $B6, находится в самом начале раздела "основные константы". В ассемблере AVRASM знак $ и префикс 0x - равноправные признаки шестнадцатеричного числа. Константу следует подбирать очень осторожно, изменяя её значение по единице. После каждого изменения программу необходимо ассемблировать заново и перепрограммировать микроконтроллер.

Программу микроконтроллера можно скачать здесь.

Литература

1. Салимов Н. Приёмник команд, подаваемых ПДУ от телевизора. - Радио, 2012, № 3, с. 23-27.

2. Теория ИК ДУ - http://woodocat.ru/ ИК.php.

Автор: Ю. Святов, г. Челябинск