В одной из предыдущих статей я рассказывал о способе считывания кода с ИК-пульта при помощи компьютера и звукового редактора. В этой статье речь пойдет об использовании полученной таким образом информации для создания клона ИК пульта управления.
Передо мной стояла задача построить некий клон пульта для управления кондиционером. Поскольку «родной» пульт был утерян, то пришлось искать аналогичную модель и считывать с нее коды управления. Поскольку особых требований к клону не предъявлялось, то я решил заложить в него всего две команды – включить кондиционер и выключить его. В жаркое лето этого вполне было достаточно.
Итак, мне удалось получить следующие осциллограммы команд пульта. Поскольку пакеты получились «длинные», то для наглядности привожу лишь их фрагменты:
Необходимо было учесть тот факт, что пульт излучает данные команды в инверсной форме, поскольку в отсутствии ИК-сигнала ИК-приемник выдает лог. «1», а при появлении лог. «0». Кроме того для того, что бы ИК-сигнал (по активному фронту) стал излучаться его необходимо промодулировать на частоте порядка 10 – 16 кГц.
Это можно описать следующей схемой:
Таким образом имея осциллограмму команд со всеми временными характеристиками, учитывая то, что команды должны быть инвертированы и их верхний фронт должен быть промодулирован несущей частотой, я решил собрать устройство:
В основу я заложил пик-контроллер младшего семейства Microchip – PIC12F629. Он вполне мог справиться с поставленной задачей при пониженном напряжении в 3 В .
В процессе анализа пакетов и привязки к ним «0» и «1» битов по их длине, я получил следующие двоичные коды команд:
«Включить» |
«Выключить» |
00010001 |
00000001 |
01000100 |
01000100 |
10000000 |
10000000 |
01001000 |
01110000 |
11011100 |
00000000 |
11100000 |
00010000 |
00000000 |
00000000 |
00000000 |
00000000 |
00110000 |
00110000 |
Байты следовали друг за другом без интервалов (начиная со старшего разряда), предварялись стартовым кодом – 9 mS высокий фронт- 4,5 mS низкий фронт.
Первой подавалась команда «Включить» затем следовала пауза в 1 S и далее команда «Выключить».
Для простоты реализации устройства я использовал всего одну кнопку – включение питания. Если кондиционер был выключен, первая команда включала его. Если он был включен, первая команда игнорировалась , а следующая выключала его.
Программа для устройства написана без использования прерываний. Обработка байтов команд происходит путем последовательного считывания битов и по результатам вызова подпрограмм соответствующих временных интервалов.
В качестве корпуса для устройства я использовал китайский пульт . Немного доработав его – вырезал в корпусе отверстие для возможности извлечения контроллера :
Изменил схему монтажа, подогнав его под пик:
В сборке он выглядел так:
Программа в MPLAB и саундтреки команд, записанных в звуковом редакторе:
Список радиоэлементов
Обозначение | Тип | Номинал | Количество | Примечание | Магазин | Мой блокнот |
---|---|---|---|---|---|---|
МК PIC 8-бит | PIC12F629 | 1 | Поиск в магазине Отрон | |||
Биполярный транзистор | S9013-I | 1 | Поиск в магазине Отрон | |||
ИК-излучатель | BL-L314IRBC | 1 | Поиск в магазине Отрон | |||
Конденсатор | 1 нФ | 2 | Поиск в магазине Отрон | |||
Конденсатор | 10 нФ | 1 | Поиск в магазине Отрон | |||
Резистор | 470 Ом | 1 | Поиск в магазине Отрон | |||
Кварц | 455 кГц | 1 | Поиск в магазине Отрон | |||
Батарея АА | 1.5 В | 2 | Поиск в магазине Отрон | |||
Скачать список элементов (PDF)
Прикрепленные файлы:
- roison.asm (5 Кб)
- Roison.rar (13 Кб)
Комментарии (4) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация
1. Параллельно батарейке поставьте конденсатор электролитический на 470-1000 мкф -- повысите дальность работы пульта (советую смотреть типовые решения)
2. Светодиод подключить через резистор в 4-10 Ом. Сейчас от его сгорания спасает отсутствие конденсатора по питанию и внутреннее сопротивление батарей питания...
3. Вроде это МК имеет встренный RC-генератор. Кварц вообще тут не нужен - требования по приёму IR-сигналов для пульта: +/- 10% в лёгкую
4. Почитать в Сети теорию протоколов пультов. Начать с NEC - тогда не придётся мучаться со скалыванием протокола аж-но звуковухой (как я лет 10 назад. ДА, советую прикупить за 8 долларов логгер. На АлиЭкспресс искать как USB Logic Analyze 24M 8CH
а вот как я когда-то делал (написано на версии Бейсика и для АВР, но, надеюсь, алгоритм из комментариев поймёте) http://bascomavr.3bb.ru/viewtopic.php?id=287
Да, забыл: не 10-16 КГц, как Вы пишите, а 36, иначе дальность будет ну вообще низкой: менее 2= метров!
http://www.radiohlam.ru/teory/nec.htm
http://radioparty.ru/prog-avr/program-c/392-lesson-rc5
http://chipmk.ru/index.php/10-raznoe/170-pp-priema-koda-rc-5-s-ik-pulta
[Автор]
Представьте себе такую ситуацию: у вас нет ни интернета, ни других источников информации, и уж тем более цифровых анализаторов спектра...
Только паяльник, пик-контроллер, нерабочий пульт и старенький компьютер. Вот и пришлось выкручиваться что бы собрать устройство за двое суток.
Что касается конструкции: первоначально резистор был, но поскольку дальность излучения была не велика, я его удалил. В каком пульте вы встречали электролит на 1000 мкФ? Я видел максимум 100 мкФ. Не уверен, что при питании пульта от батареек он вообще там нужен. Емкость установленная после кнопки служит для подавления дребезга самой кнопки и помех по цепи питания. Теперь по внутреннему генератору 4 МГц - его частота не стабильна, поэтому я решил использовать "родной" кварц от пульта. На такой частоте производить модуляцию 36 КГц проблематично, поэтому я снизил ее до приемлемого значения.
встречал, ибо опыт ремонта с 14 лет. Сейчас - 37.
Не уверены, так как не знаете теории. я тоже многое не знаю, вот сижу, читаю теорию ОУ, так как я в электронику пришел как "цифровик", аналоговой вообще не занимался. Не стыдно учиться, поверьте!
я дал вам ссылки на ИК-пульты. Стабильности в 30% хватает. Говорю как автор множества конструкций с ИК-управлением.
Сделать 36 КГц на этом ПИК - не проблема, я же делал? я как раз с PIC и начинал в конце 90х...
посчитайте сами: частота - 4 МГц, 1 команда (однобайтная) - 4 такта.
Надо выдать меандр:
ножка на выход
Цикл Х раз
Ножка=1
пауза Х ms
Ножка=0
пауза
цикл_закончить
грубо, но сойдёт для общей теории.
Если интересно - чем смогу-помогу в МК.
почту мою знаете, сайт- тоже. Так есть введение в МК, читайте - не жалко :)
по поводу "был резистор - с ним недалеко", Вы напомнили мне случай.
Заказчик из Крыма, год этак 2006...
Надо сделать для спутникового ТВ железку. Делаю у себя макет. Хочу выслать ему. Он: не, я телемастер, электронику знаю, дай схему, все детали и МК у меня есть. Сам спаяю и сам прошью
пишу прогу, у себя тестирую - всё классно!
отправляю - у него не работает. ХМ!
добавляю защиты, высчитываю чуть-ли не каждый такт... отправляю - не работает!......
Тут меня осеняет: А вышлите-ка мне фото своей платы. Высылает
Смотрю, плачу над телемастером: в цепи светодиодов нет резисторов!
КАК?
а он: А без них ЯРЧЕ светит
Вот не подобляйтесь оному... Учите теорию, посмотрите о режимах работы транзистора, потере напряжения на светодиоде, посчитайте ток в этой цепи...
потом почитайте о внутреннем сопротивлении химических источников тока... Узнаете много интересного, честно :)