Каталог статей


Выбранная схема!!!


5119
Контроллер RGB на PIC12F675 (пилотный вариант)

Для начала напомню как работает ШИМ в устройствах управления: есть определённый промежуток времени, который называется периодом, в течение этого времени включается и отключается нагрузка, чем больше время включения, тем ярче светится диод (быстрее вращается вентилятор, больше напряжение и тд.), это врямя в процентном отношении к периоду называется скважностью, допустим если скважность =10%, а напряжение 12 вольт, то нагрузка будет работать как при подаче 1,2 вольт.

Как это всё работает в RGB: период одинаковый для всех каналов, диоды включаются одновременно, а отключаются в зависимости от требуемого цвета, например если нужен чисто зелёный, то включаем канал G на весь период, остальные каналы не включаем, если нужен оранжевый, то включаем каналы RG, B-канал не включаем и тд.

Теперь о моём алгоритме в микроконтроллере.

Для упрощения программы я пошёл немного иным путём, так как в программе кроме контроля RGB больше ничего нет, я решил по очереди включать-отключать каналы, текущий цвет будет зависеть от времени включения каждого канала как и в обычном ШИМ, сразу задаёмся периодом, пусть это будет 128 (чем меньше период, тем выше частота, но уменьшится количество цветов), далее нужно определиться с цветами, у меня их получилось 94, в это количество нужно вместить весь спектр, у меня получилось с шагом 16, (больше шаг-меньше цветов, и наоборот), далее складываем значения цветов, допустим для стандартного голубого это будет R(0)+G(255)+B(255) = 510-это число принимаем за 100% и далее пропорцией вычисляем значения константы задержки (в данном случае не трудно догадаться что это будет 0-64-64), так как величина константы не может быть равной нулю (кто хоть раз программировал задержку в МК поймёт о чём я говорю) принимаем нулевые значения за 1, так делаем для каждого цвета. Сразу оговорюсь: это не обязательно делать, но если просто так наставить числа, то частота будет постоянно плавать от цвета к цвету в пределах примерно 500-1000 Гц. 

Существенный недостаток предложенного способа: невозможность добиться 100% скважности для каждого цвета, максимум 50, поэтому для увеличения яркости придётся подбирать резистор в цепь светодиода с вдвое меньшим сопротивлением (я на своей макетке подключил светодиод вообще без резистора: полёт нормальный).

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

Далее на свободную ножку я повесил кнопку ВКЛ-ВЫКЛ, это не полное отключение энергии, а просто гашение всех диодов, при этом устройство работает и при следующем нажатии оно оживает.

прошивку и схему в протеусе можно скачать тут: http://cxema.my1.ru/load/0-0-0-1943-20 (запись в EPROM пока не реализована, поэтому при включении устройства будет выбрано начальное значение цвета)

Теперь по схеме: 2 ножка-вкл-выкл, 3 ножка- яркость (перебор от максимума к минимуму), 4 ножка - цвет (односторонний перебор всего спектра), 5-7 ножка  RGB каналы, 1 ножка - 5 вольт, 8 ножка -масса 

Фото работы устройства на макетке, (так как 3-х цветного светодиода под рукой не оказалось, проверял работу на 2-х цветном красно-зелёном)

ДОПОЛНЕНИЕ: 

купил кусок RGB ленты для проверки, фото и видео ниже:

http://video.mail.ru/mail/billiardisst/_myvideo/58.html


Категория: Управление освещением | Добавил: sanyaav (08.12.2012)
Просмотров: 9605 | Комментарии: 4 | Теги: контроллер, RGB, PIC12f675, НА | Рейтинг: 0.0/0


Всего комментариев: 4
0
4 sanyaav   (14.01.2013 18:39)
Erist, уже всё задумано, осталось реализовать, представь заходишь ты в ванну провёл сверху вниз вдоль стены: свет включился, провёл снизу вверх: свет выключился, а сдругой стороны ткой же датчик, только управляет цветами вверх-вниз- изменение цветов (а может всё с одной стороны будет,на одном датчике... есть у меня одна совершенно безумная идея biggrin ), всё будет реализовано на 1 МК, но уже с большим количеством ножек, поэтому статья и называется пилотный вариант, и создана лишь для обмена опытом

0
3 Erist   (27.12.2012 17:02)
Попробуйте развить идею и сделать управление светом в помещении. Затем можно провести интеграцию с умными домами, например Home Sapiens. Ребята из России, поэтому пойдут на встречу, думаю)

0
2 sanyaav   (20.12.2012 22:46)
andy, прикол в том, что ссылка на видео внизу под фотографиями, и написано там вот так: "......фото и видео ниже:"

0
1 andy   (15.12.2012 18:16)
а в чём сабственно прикол? хотелось-бы увиделть как работает устройство. выложите видео.

Все ссылки на книги и журналы, представлены на этом сайте, исключительно для ознакомления, авторские права на эти публикации принадлежат авторам книг и издательствам журналов! Подробно тут!
Жалоба

Пожалуйста оставьте свои комментарии !!!!

Имя *:
Email:
Код *:


ElectroTOP - Рейтинг сайтов
Copyright Zloy Soft (Company) © 2008 - 2016