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

Рейтинг пользователей: / 20
ХудшийЛучший 
Проекты - Электроника

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

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

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

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

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

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

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

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

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

Схема пульта
Перед тем, как уснуть, микроконтроллер включает на порту 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). Надеюсь, вопросов не возникнет.

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

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

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

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

Комментарии  

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

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

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

Оу. Случайно увидел сообщение.
Стучите в скайп: VBMart.
Цитировать
 
 
0 #11 Клавдий 09.09.2012 09:40
Кто-нибудь начертите платку для ПДУ чтобы в маркер влезла!
Цитировать
 
 
0 #10 Дмитрий-Z 16.04.2012 01:14
а на атмеге16?!
Цитировать
 
 
0 #9 владик 11.01.2012 18:38
Цитирую VBMart:
Цитирую владик:
Здравствуйте возможно ли сделать такой же дивайс только на PIC контроллерах?

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

Здравствуйте а как это возможно? и сколько будет стоить ?
Цитировать
 
 
0 #8 VBMart 09.01.2012 08:26
Цитирую владик:
Здравствуйте возможно ли сделать такой же дивайс только на PIC контроллерах?

Без проблем. Обращайся - помогу.
Цитировать
 
 
0 #7 ARV 08.01.2012 17:07
Цитирую владик:
Здравствуйте возможно ли сделать такой же дивайс только на PIC контроллерах?
думаю, что это возможно, хотя лично я с PIC-ами совсем не дружу
Цитировать
 
 
0 #6 владик 08.01.2012 15:51
Здравствуйте возможно ли сделать такой же дивайс только на PIC контроллерах?
Цитировать
 
 
0 #5 ARV 13.11.2011 20:31
Цитирую alexomega:
Мне тоже не помешало бы :)))

на форуме я давал для понипрога. все на свете виды программаторов я изучить не в состоянии - научитесь сами ставить фьюзы по даташиту - это несложно.
Цитировать
 

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

Правила комментирования

Запрещается вводить оскорбительные тексты, использовать нецензурные выражения, публиковать экстремистские призывы, давать ссылки на сайты, не имеющие отношения к теме обсуждения. Все сообщения, нарушающие данные требования, будут удалены без уведомлений, а их авторы - заблокированы.
Незарегистрированные посетители не могут вводить ссылки, BB-коды и т.п., зарегистрированные - могут. Подробности о возможностях, доступных зарегистрированным посетителям, см. в разделе Помощь.


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



Темы форума
Комментарии
Статистика
Просмотров:
mod_vvisit_counterСегодня4312
mod_vvisit_counterВчера8222
mod_vvisit_counterНа этой неделе26246
mod_vvisit_counterНа прошлой неделе40507
mod_vvisit_counterВ этом месяце155057
mod_vvisit_counterЗа все время11517278

Ваш IP: 54.198.132.162
 , 
25 Май. 2017