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 комментариев).

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

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

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


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



Комментарии
Статистика
Просмотров:
mod_vvisit_counterСегодня3156
mod_vvisit_counterВчера4277
mod_vvisit_counterНа этой неделе3156
mod_vvisit_counterНа прошлой неделе29120
mod_vvisit_counterВ этом месяце113256
mod_vvisit_counterЗа все время11338382

Ваш IP: 54.80.18.223
 , 
24 Апр. 2017