Простые устройства
Просто об устройствах

RGB-светильник с дистанционным управлением

lampХороша лампа настроения! Смотришь на нее, будто зачарованный. Но порой хочется воскликнуть: "Остановись, мгновенье!", потому как в какой-то миг цвет лампы ну уж больно красивый - ан нет, не остановить изменчивость, и спустя секунду цвет уже другой, и ждать его повторения может быть придется долго-долго... Для полного наслаждения всеми возможностями цветовой палитры лампы настроения необходимо иметь возможность самостоятельно устанавливать нужный оттенок, а так же, желательно и яркость изменять. Ну и конечно, делать это нужно не вставая с дивана, то есть при помощи пульта дистанционного управления.

{ads1}

Именно такой проект и предлагается вниманию благороднейшей публики: RGB-светильник с дистанционным управлением.

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

Речь же пойдет о пульте управления.

Немного общих рассуждений о пультах и вообще. Можно было бы попробовать управлять светильником с готового пульта управления от бытовой техники, например, от телевизора. Но в этом варианте есть ряд минусов: во-первых, пульт от телевизора довольно большой и тяжелый, во-вторых (и это главное), сложно придумать способ управлять лампой так, чтобы сам телевизор не реагировал на команды. Есть, конечно, в продаже готовые пульты управления RGB-светильниками, но раз уж мы решили сделать его (светильник) самостоятельно, то как-то не логично покупать для него пульт. Да и попробуй его еще купи... Тем более что для управления нашим светильником достаточно всего 5-и кнопок: одна для выключения, пара для управления яркостью и пара для управления цветом.

{ads2} Для пультов дистанционного управления производится довольно много специализированных микросхем, но для домашнего творчества лучше и проще использовать микроконтроллер. Я выбрал attiny13, как наиболее миниатюрный среди недорогих и дешевых микроконтроллеров. Так как каждый порт этого контроллера способен выдавать ток до 40 мА, то ИК-светодиод запросто можно подключать к микроконтроллеру без дополнительных ключевых транзисторов, тем более что можно соединить три порта для увеличения суммарной нагрузочной способности. А теперь внимание - вопрос знатокам: если у attiny13 всего 8 ножек, 2 из которых питающие, а одна - вход сброса, использовать который нежелательно (так как в этом случае повторная прошивка микроконтроллера будет сильно затруднена), сколько остается свободных выводов для подключения 5-и кнопок? Правильный ответ: две.

Интерсуетесь, как можно подключить 5 кнопок к двум выводам микроконтроллера? Да все очень просто! Ведь в выбранном нами микроконтроллере есть встроенное АЦП, а значит кнопками можно коммутировать напряжения с резисторного делителя, и тогда МК будет способен определить нажатую кнопку по входному напряжению.

Однако, не все так уж просто, потому как для пульта дистанционного управления очень важно минимальное потребление энергии в режиме ожидания, и именно поэтому основную часть времени микроконтроллер должен находиться в режиме сна, т.е. практически в полностью отключенном состоянии. Естественно нельзя использовать делитель напряжения, постоянно подключенный к батареи питания пульта, чтобы не разрядить ее быстро. Придется подключить делитель к одному из свободных выводов и подавать на него питание только в нужные моменты. И тут снова вопрос: нужный момент - это когда нажата кнопка, не так ли? И получается, что нажатие кнопки мы должны определить по напряжению, которое подается только после нажатия кнопки...

{ads1}

Однако, и тут решение очень простое! В выбранном микроконтроллере есть режим пробуждения ото сна по изменению уровня на любом выводе, использование которого решает все наши проблемы! Посмотрите на схему пульта:

Схема пульта
Перед тем, как уснуть, микроконтроллер включает на порту PB4 внутреннюю подтяжку, т.е. подключает через резистор порт к питанию, а в порт PB3 выводит логический ноль, т.е. как бы соединяет его с общим проводом схемы. Таким образом, делитель из резисторов R2...R5 оказывается с обеих сторон "заземленным". Очевидно, что пока кнопки не нажаты, на PB4 будет присутствовать высокий уровень, а как только будет нажата любая кнопка, на PB4 появится ноль (см. далее замечание о сопротивлении резисторов делителя). Мкироконтроллер настроен на пробуждение как раз по изменению уровня на PB4 с высокого на низкий, после чего на делитель подается питание, производится замер напряжения, попадающего на вход АЦП через нажатую кнопку, и затем микроконтроллер генерирует импульсы для управления светодиодом HL1. Отработав посылку команды, МК снова засыпает до очередного нажатия кнопки.

Главное, что надо учитывать, это то, что сопротивления в делителе могут быть совсем не любого номинала. Дело в том, что встроенная подтяжка - это резистор порядка 30-40 килоом, а значит для надежного появления низкого логического уровня при нажатии любой кнопки сопротивление резисторов в делителе (если они все одинаковые - это удобно) не должно быть больше 10-15 килоом. Я остановился на сопротивлении 10К.

Резистор R1 ограничивает максимальный ток через светодиод. Правильнее было бы его рассчитать, но для этого надо знать параметры светодиода HL1, а мой был неизвестно какого типа... Поэтому я на глазок прикинул, что резистор 5-10 Ом ограничит ток на уровне 100-150 мА, что в принципе безопасно как для светодиода, так и для потров МК. В наличии был 7,5 Ом - и именно его я и установил в схеме.

Конденсатор С1 должен иметь минимальный ток утечки, поэтому это должен быть танталовый электролит. Емкость его - чем больше, тем лучше, тут определяющими будут габариты, а рабочее нарпряжение - не менее 3,3 вольт.

Батарейки применены таблеточные, по 1,5 вольт каждая. Можно установить литиевую 3-вольтовую, хотя она дороже.

Пульт собран на такой односторонней печатной плате, большинство компонентов - SMD. Плата демонстрационно-отладочная, то есть сделана без оглядки на корпус, так как вопрос с корпусом пока открыт. Для экспериментов я прижимал батарейки к плате при помощи канцелярского зажима-бабочки:

Плата пульта
Если убрать зажим, то соединив таблетки щупами микроамперметра, можно измерить ток покоя схемы - в моем случае он составил 1 мкА, что я считаю очень неплохим результатом. При нажатии любой кнопки ток возрастает примерно до 2 мА, однако это средний ток, а импульсную величину я не определял.

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

Исходник программы пульта содержит подробные комментарии, там все просто, надеюсь, проблем разобраться у желающих не возникнет. Ну а для непрограммистов я предлагаю готовую прошивку для МК. Следует отметить, что SMD-микроконтроллер нужно программировать или в специальном адаптере, или прямо в схеме, припаяв к нему проводки. В последнем случае надо после программирования соединить между собой припоем выводы 7-6-5, а вывод 1 соединить с питанием. Если потребуется повторная перепрошивка - надо соответственно освободить выводы.

ФьюзыПри прошивке важно установить правильно фьюзы. Картинку фьюзов выкладываю для плагина Eclipse (программатор avrdude). Надеюсь, вопросов не возникнет.

Вот видео с демонстрацией основных возможностей пульта:

{plusone lang=ru}Надеюсь, проект вам понравится, жду ваших отзывов в комментах, а вопросов - на форуме.

Обратите внимание на улучшенную прошивку для лампы: она добавлена позже, в ней кардинально улучшено качество приема и немного изменен алгоритм работы - теперь лампа и включается и отключается одной кнопкой (на пульте размещена обособленно в правом верхнем углу). Так же в этой прошивке число градаций яркости и количество оттенков уменьшено, так как в первоначальном варианте для перебора всех оттенков требовалось держать нажатой кнопку пульта больше минуты.

{ads1}

Вложения:
ФайлОписаниеРазмер файла:
Скачать этот файл (LAMP.rar)LAMP.rarПрошивка лампы с ДУ1 Кб
Скачать этот файл (pcb_remote_control.pdf)pcb_remote_control.pdfЧертеж платы пульта, готов для ЛУТ62 Кб
Скачать этот файл (RC.rar)RC.rarПрошивка пульта управления (36 кГц)0.7 Кб
Скачать этот файл (RC_source.rar)RC_source.rarИсходники программ пульта для WinAVR22 Кб
Скачать этот файл (LAMP_v2.rar)LAMP_v2.rarУлучшенная прошивка лампы с ДУ1 Кб
Скачать этот файл (RC38.rar)RC38.rarПрошивка пульта управления (38 кГц)0.7 Кб

Комментарии   

#1 vladislav 26.09.2011 00:15
Круто буду собирать :-)
#2 ARV 26.09.2011 00:46
Цитирую vladislav:
Круто буду собирать :-)
не забудьте отписаться на форуме о результатах :) фото-видео приветствуются :)
+2 #3 Александр76 06.11.2011 17:58
Очень нужен скрин фузов в CodeVision.
Может есть у кого?
#4 alexomega 14.11.2011 00:47
Цитирую Александр76:
Очень нужен скрин фузов в CodeVision.
Может есть у кого?


Мне тоже не помешало бы :)))
#5 ARV 14.11.2011 01:31
Цитирую alexomega:
Мне тоже не помешало бы :)))

на форуме я давал для понипрога. все на свете виды программаторов я изучить не в состоянии - научитесь сами ставить фьюзы по даташиту - это несложно.
#6 владик 08.01.2012 20:51
Здравствуйте возможно ли сделать такой же дивайс только на PIC контроллерах?
#7 ARV 08.01.2012 22:07
Цитирую владик:
Здравствуйте возможно ли сделать такой же дивайс только на PIC контроллерах?
думаю, что это возможно, хотя лично я с PIC-ами совсем не дружу
#8 VBMart 09.01.2012 13:26
Цитирую владик:
Здравствуйте возможно ли сделать такой же дивайс только на PIC контроллерах?

Без проблем. Обращайся - помогу.
#9 владик 11.01.2012 23:38
Цитирую VBMart:
Цитирую владик:
Здравствуйте возможно ли сделать такой же дивайс только на PIC контроллерах?

Без проблем. Обращайся - помогу.

Здравствуйте а как это возможно? и сколько будет стоить ?
#10 Дмитрий-Z 16.04.2012 06:14
а на атмеге16?!
#11 Клавдий 09.09.2012 14:40
Кто-нибудь начертите платку для ПДУ чтобы в маркер влезла!
#12 VBMart 24.09.2012 22:54
Цитирую владик:
Цитирую VBMart:
Цитирую владик:
Здравствуйте возможно ли сделать такой же дивайс только на PIC контроллерах?

Без проблем. Обращайся - помогу.

Здравствуйте а как это возможно? и сколько будет стоить ?

Оу. Случайно увидел сообщение.
Стучите в скайп: VBMart.
#13 LanGHosT 30.05.2013 13:54
Собрал вроде работает. Есть ли в лампе режим автоматической смены цвета(что бы переливалась как первая?) если есть то как включить. еще вопрос по фьюзам, где какие ставить, может в них у меня косяк
#14 ARV 31.05.2013 00:08
если собрали и работает, значит, с фьюзами все правильно. автоматического режима нет

Добавить комментарий

Защитный код
Обновить

Обсудить эту статью на форуме (160 ответов).

Copyright 2019 © simple-devices.ru.
При использовании материалов ссылка на simple-devices.ru обязательна.