Лампа настроения на pic12f629: RGB светильник на PIC12F629/675. Схема многоцветного светильника на микроконтроллере.

Лампа настроения | RadioLaba.ru — программирование микроконтроллеров PIC


Увидел я как-то в сети интересную конструкцию, цветную лампу на основе трехцветного светодиода мощностью 3Вт, то есть каждый кристалл мощностью в один ватт, с виду лампа медленно переливалась всеми цветами радуги, что очень неплохо выглядело.

Повторять конструкцию не стал, а решил все сделать с нуля и по своему, первым делом я подумал, что 3-х ваттный светодиод это несерьезно, все-таки маловато света, поэтому заказал в одном интернет магазине 10-ти ваттный трехцветный светодиод. На нем видно, что каждый “цвет” составлен из трех последовательно соединенных светодиодов мощностью в один ватт, соответственно падение напряжения для каждого цвета увеличивается, и составляет для красного 6,2В, для зеленого и синего 9,4-9,5В при номинальном токе 0,35А.


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

В качестве микроконтроллера был выбран PIC16F676, так как мне нужен был модуль АЦП. Модуль ШИМ в данном микроконтроллере отсутствует, поэтому он реализован программно на обработчике прерываний, итого 3 канала разрядностью 8 бит и частотой 330Гц, чего достаточно, чтобы не было заметно мерцаний светодиодов. На операционных усилителях DA5, DA6 и транзисторах VT1-VT3 собраны стабилизаторы тока для светодиодов. Для примера рассмотрим стабилизатор тока на DA5. На неинвертирующий вход ОУ через делитель напряжения подано стабильное опорное напряжение от стабилизатора DA3 (TL431). Делитель напряжения собран на резисторе R13 и подстроечном резисторе R14, то есть опорное напряжение можно регулировать. Когда на инвертирующем входе ОУ напряжение больше опорного, то стабилизатор тока не работает, светодиод выключен, такое состояние устанавливается при высоком логическом уровне на линии порта RC0 (10-й вывод) микроконтроллера. При низком логическом уровне на этой линии, напряжение на инвертирующем выводе ОУ становится меньше опорного напряжения, в результате транзистор VT1 открывается и светодиод зажигается, тем самым начинается процесс стабилизации тока, ОУ начнет выравнивать напряжение на инвертирующем входе в соответствии с опорным напряжением. То есть имеем стабильное напряжение на резисторе R18, а отсюда и стабильный ток через светодиод, равный отношению опорного напряжения к сопротивлению этого резистора. Диод VD8 установлен для “отсечки” низкого логического уровня со стороны микроконтроллера, иначе стабилизатор тока не будет работать. Переменный резистор R11 установлен для регулировки параметров для разных режимов лампы. Его средний вывод подключен на вход АЦП микроконтроллера.


Устройство имеет 4 режима работы, переключение между которыми осуществляется кратковременным нажатием кнопки SB1. После подачи питания по умолчанию устанавливается пульсирующий режим, при котором лампа плавно зажигается и гаснет шестью основными цветами, это красный-голубой-фиолетовый-зеленый-желтый-синий. Следующий режим, это плавная смена цветов по всему спектру от красного до фиолетового. В обоих режимах переменным резистором R11 можно менять скорость пульсаций и скорость смены цветов. Крайнему нижнему по схеме положению движка переменного резистора соответствует высокая скорость, крайнему верхнему положению низкая скорость. В третьем режиме при помощи переменного резистора можно выбрать любой постоянный цвет свечения лампы. В четвертом режиме лампа светит белым светом, то есть интенсивность свечения всех трех светодиодов одинакова, насыщенность цвета нулевая. Переменным резистором в этом случае регулируют яркость свечения. При крайнем нижнем положении движка переменного резистора лампа погашена, крайнему верхнему положению соответствует максимальная яркость.

Теперь несколько слов о блоке питания. Трансформаторный блок питания я исключил из-за громоздкости и тяжести. За основу взял импульсный блок питания на микросхеме Viper22a от DVD плеера. Мощность этой микросхемы составляет 20Вт, а для устройства нужен блок питания не менее 10Вт. Итак, я выпаял все детали из родной платы и впаял в плату, которую специально развел и изготовил под самодельный корпус лампы. Сильноточная обмотка импульсного трансформатора была рассчитана на 5В, так что мне пришлось домотать обмотку, и подрегулировать напряжение с помощью резисторов R7, R8. Выходное напряжение установил на 11,3В, сильно увеличивать не стал, так как это приведет только к увеличению нагрева транзисторов.

В устройстве применены постоянные резисторы МЛТ. Транзисторы КТ817А заменимы на КТ815А, их необходимо установить на теплоотвод, причем для транзистора VT1 потребуется теплоотвод с большей площадью поверхности, так как падение напряжения на нем больше чем на остальных транзисторах. Подстроечные резисторы СП3-38а, переменный резистор практически любого типа, с линейной характеристикой изменения сопротивления от угла поворота. Операционные усилители желательно заменять компараторами, так как не все ОУ могут работать в режиме компаратора. Светодиод также необходимо установить на теплоотвод площадью не менее 120 см2. Резисторы R18, R24, R30 должны иметь мощность не менее 0,25-0,5 Вт, так как при протекании через них тока в 0,35 А, на них будет рассеиваться мощность в 0,122 Вт.

Перед первым включением необходимо подрегулировать ток через светодиоды. Для этого исключаем из схемы микроконтроллер, устанавливаем движки подстроечных резисторов в нижнее по схеме положение, включаем последовательно со светодиодом амперметр, и подаем питание на устройство. Вращая движок подстроечного резистора, устанавливаем ток через светодиод в пределах 0,34 – 0,35 А. Такую же процедуру проделываем для остальных светодиодов. После чего, отключаем питание и устанавливаем микроконтроллер.

В качестве корпуса я использовал матовый шарообразный рассеиватель диаметром 20 см. Купил его в магазине светотехники, вместе с основанием для крепления на стену. Рассеиватель весьма добротный, пластиковый, имеет равномерную матовость, и очень легкий. Из крепежного основания я извлек патрон, и установил туда светодиод с теплоотводом. Далее нашел корпус в виде усеченного конуса, установил в него плату и крепежное основание. После чего вкрутил рассеиватель, и вот лампа готова.

Прошивка МК и исходник

RGB ЛАМПА НА МИКРОКОНТРОЛЛЕРЕ

   Светильник является полным аналогом лампы настроения, от известных фирм. Питание лампы осуществляется от импульсного источника питания работающего на ключе TNY245, на основе AC-DC преобразователя. Драйвер 3-х ватного светодиода RGB собран на микроконтроллере Attiny13, он имеет 3 режима работы и автоматический режим. Плавное изменение цвета основано на способности микроконтроллера генерировать ШИМ сигнал разной ширины, тем самым с помощью трех основных цветов можно воспроизводить миллионы цветовых комбинаций. А последние, перед выключением, настройки, сохраняются в энергонезависимой памяти EEPROM и поэтому после включения вы будете видеть тот режим, который был последним при предыдущем включении.

   Режимы работы лампы:

  1. плавное изменение цвета RGB
  2. постоянный цвет при остановленном режиме
  3. белый цвет при максимальной мощности

   Так как нет кнопки переключения режимов, чтобы его изменить, нужно произвести кратковременное  выключение устройства и режим смениться.

   Программа написана в компиляторе Bascom, файл прошивки и EEPROM, исходники и макеты печатных плат в формате Eagle.

   Fuse-биты: частота внутреннего генератора 4,8 МГц, делитель на 8 отключен, startup time 64 мс, brown-out detector 1,8 В.

   Схема контроля за питанием состоит и диода 1N4148 и резистора на 1 килоом. Резистор позволяет быстро обнаружить превышение мощности. И когда она обнаруживается, программа ждёт 1 секунду, после этого следует проверка, если всё правильно, то изменяется режим и происходит его сохранение в энергонезависимой памяти, если нет, тогда программа деактивируется.

   Так как был использован мощный светодиод, ток потребления каждого излучателя составляет около 700 мА,  и например в 3-м режиме расходуется 2,2 A.

   Не забудьте поставить подходящие токоограничивающие резисторы, и обратите внимание, что красные излучатели имеют одинаковый ток при низком напряжении. Транзисторы берутся NPN проводимости, биполярные с мощностью канала не менее 1 А.

   О том, каким должен быть импульсный блок питания, смотрите в приложении к описанию TNY245. Можно попробовать использовать 5 В трансформатор от ATX блока питания. Обязательно помните, что 3W RGB светодиод во время работы нуждается в охлаждении, поэтому необходимо установить радиатора и обязательно проверить температуру их нагрева – не должны быть горячими.

   Очень хотелось, чтобы лампа была мощной и пригодной для использования и при дневном освещении. Эта задача была выполнена благодаря 3-х Вт светодиодам, они дают необычайно яркую интенсивность света. Смешение цветов у таких светодиодов происходит плавно, так как кристаллы расположены близко  друг к другу. Убедится, в этом, можно посмотрев на фотографии.

   Схема, п/плата, монтажная плата, файл прошивки, исходники и другие необходимые для сборки вещи – в архиве для скачивания.

RGB LED Mood Light Автономный ШИМ-контроллер для RGB-светодиодов с использованием PIC12F629

Этот проект является обновлением оригинального драйвера RGB LED PWM. Новая версия позволяет использовать либо 5-миллиметровые светодиоды, либо светодиоды Superflux / Piranah с квадратным корпусом. В схеме теперь используются биполярные транзисторы, а не полевые МОП-транзисторы, что делает ее более подходящей для начинающих конструкторов, и впервые этот проект доступен в виде набора со всеми деталями, необходимыми для сборки печатной платы, включая сверхпоточные светодиоды. (блок питания не входит в комплект)

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

Схема Описание

Сама схема довольно проста. Диод D1 обеспечивает защиту платы от обратной полярности при обратном подключении блока питания. C1/C2 и IC2 принимают входящее питание 12 В и обеспечивают регулируемое питание 5 В, требуемое микроконтроллером PIC.

Красный, зеленый и синий светодиоды расположены в виде трех параллельных рядов по три светодиода. Резисторы R1, 2 и 3 ограничивают ток через светодиоды до безопасного значения при использовании блока питания 12 вольт. Низкая сторона каждой цепочки светодиодов подключается к NPN-транзистору BC547, который используется для включения и выключения светодиодов. Эти транзисторы, в свою очередь, управляются микроконтроллером PIC, который управляет каждым из транзисторов красного, зеленого и синего каналов с помощью ШИМ-сигнала для управления средней яркостью светодиодов. Переключатель S1 используется для выбора различных последовательностей эффектов. Программа прошивки, работающая на микроконтроллере PIC, является интеллектуальной частью схемы и определяет, какие цвета генерируются и как они переходят от одного цвета к другому.

Три цвета светодиодов расположены на печатной плате в неравномерном порядке для улучшения эффекта смешивания цветов при размещении позади или внутри рассеивателя, такого как шар из матового стекла.

В контроллере используются (RGB) красные, зеленые и синие светодиоды высокой яркости с широтно-импульсной модуляцией (ШИМ) для изменения интенсивности каждого цветного светодиода. Это позволяет эффективно генерировать любой цвет с быстро меняющимися стробоскопическими эффектами, быстрым и медленным исчезновением цвета, а также статическими цветами. Данные, используемые для установки и изменения цветов, хранятся в легко редактируемом файле, поэтому, если вам не нравятся предоставленные с ним последовательности, вы можете самостоятельно изменить включаемый файл данных последовательности и перепрограммировать свои собственные последовательности.

(для этого вам понадобится программатор PIC и некоторые практические знания в области микроконтроллеров и программирования.)

Размеры печатной платы 50 мм x 50 мм.

Печатная плата, входящая в комплект, изготовлена ​​профессиональным производителем, покрыта паяльной маской сверху и снизу и наложена трафаретной печатью на ламинат FR4 с отделкой RoHS.

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

Готовая печатная плата, поставляемая в комплекте, имеет сквозные отверстия с покрытием, поэтому это не применимо.

Набор, который можно приобрести в интернет-магазине Picprojects, содержит все детали, необходимые для создания RGB LED Moodlight. Это включает в себя все компоненты, качественную двустороннюю печатную плату FR4, светодиоды Superflux и микроконтроллер PIC12F629, предварительно запрограммированный с прошивкой.

Блок питания на 12 В не входит в комплект

2,1-мм разъем питания постоянного тока для монтажа на шасси и 100-мм красно-черный провод доступны в качестве опции

 

Подробнее: RGB LED Mood Light Автономный ШИМ-контроллер для RGB-светодиодов с использованием PIC12F629

RGB LED Mood Light ~ SMNawaz

Автономный ШИМ-контроллер для RGB-светодиодов с использованием 12F6xx PIC

Хотите создать контроллер RGB-светодиодов, который можно запрограммировать с помощью собственных последовательностей и эффектов? Тогда читайте дальше.

Контроллер светодиодов RGB оказался очень популярным проектом и был наиболее часто загружаемым кодом на сайте с тех пор, как он стал доступен.

Описание схемы

Сама схема довольно проста. Диод D1 обеспечивает защиту платы от обратной полярности при обратном подключении блока питания. C1/C2 и IC2 принимают входящее питание 12 В и обеспечивают регулируемое питание 5 В, требуемое микроконтроллером PIC.

Красный, зеленый и синий светодиоды расположены в виде трех параллельных цепочек по три светодиода. Резисторы R1, 2 и 3 ограничивают ток через светодиоды до безопасного значения при использовании блока питания 12 вольт. Низкая сторона каждой цепочки светодиодов подключается к NPN-транзистору BC547, который используется для включения и выключения светодиодов. Эти транзисторы, в свою очередь, управляются микроконтроллером PIC, который управляет каждым из транзисторов красного, зеленого и синего каналов с помощью ШИМ-сигнала для управления средней яркостью светодиодов. Переключатель S1 используется для выбора различных последовательностей эффектов. Программа прошивки, работающая на микроконтроллере PIC, является интеллектуальной частью схемы и определяет, какие цвета генерируются и как они переходят от одного цвета к другому.

Три цвета светодиодов расположены на печатной плате в неравномерном порядке для улучшения эффекта смешивания цветов при размещении позади или внутри рассеивателя, такого как шар из матового стекла.

В контроллере используются (RGB) красные, зеленые и синие светодиоды высокой яркости с широтно-импульсной модуляцией (ШИМ) для изменения интенсивности каждого цветного светодиода. Это позволяет эффективно генерировать любой цвет с быстро меняющимися стробоскопическими эффектами, быстрым и медленным исчезновением цвета, а также статическими цветами. Данные, используемые для установки и изменения цветов, хранятся в легко редактируемом файле, поэтому, если вам не нравятся последовательности, поставляемые с ним, вы можете самостоятельно изменить включаемый файл данных последовательности и перепрограммировать свои собственные последовательности. (вам понадобится программатор PIC и некоторые практические знания микроконтроллеров и программирования, если вы хотите это сделать.)

Требования к источнику питания

Для RGB LED Moodlight требуется регулируемый источник питания постоянного тока 12 В, рассчитанный на 200 мА или выше. Это важно, нерегулируемый источник питания 12 вольт может фактически выдавать 14 или 15 вольт, и это со временем повредит светодиоды, если вы не замените токоограничивающие резисторы. Блок питания также должен выдавать постоянный ток, а не переменный.

Подводя итог, вам нужен регулируемый источник питания постоянного тока на 12 В, способный обеспечить выходной ток не менее 200 мА (более высокий номинальный ток допустим, но он должен быть на 12 В постоянного тока)

Компонент Описание
Р_КРАСНЫЙ ПК 100 120R 0,25 Вт CF РЕЗИСТОР (RC)
Р_ЗЕЛЕНЫЙ. R_BLUE УПАКОВКА 100 68R 0,25 Вт CF РЕЗИСТОР (RC)
С1 100 Н ДИЭЛЕКТРИЧЕСКАЯ КЕРАМИКА X7R 2,5 ММ (RC)
С2 5 мм МИКРОМИН. 47UF 16V ЭЛЕКТРОЛИТИЧЕСКИЙ (RC)
С3 220Н 5MM Y5V ДИЭЛЕКТ.КЕРАМИКА (RC)
гнездо для U1 8 РАЗЪЕМ ДЛЯ ШТЫРЬКА 0,3 ДЮЙМА (RC)
У1 ПИК12Ф629-И/П (RC) (Требуется программирование)
У2 ДА78Л05 V REG +5V 100MA TO-92 TRU (RC)
Д1 1N4148 СИГНАЛЬНЫЙ ДИОД 75V 150MA (TRU) RC
Q1,2,3  2N7000 N-КАНАЛЬНЫЙ МОП-транзистор (RC)
С1 ТАКТИЛЬНЫЙ ВЫКЛЮЧАТЕЛЬ 6X6MM ВЫСОТА 7MM (RC)
Красный светодиод светодиод 5MM HB КРАСНЫЙ 20000MCD (RC)
Зеленый светодиод светодиод 5MM HB ЗЕЛЕНЫЙ 30000MCD (RC)
Синий светодиод светодиод 5MM HB СИНИЙ 12000MCD (RC)
Не показано на схеме, но вы также можете купить
Разъем питания постоянного тока НИКЕЛЬ РАЗЪЕМ ПИТАНИЯ ПОСТОЯННОГО ТОКА 2,1 ММ (RC)
Блок питания 5 Вт РЕЖИМ ПЕРЕКЛЮЧАТЕЛЯ PLUGTOP PSU 12V 400MA RC
Программатор PIC ПИКИТ2 НАЧАЛЬНЫЙ КОМПЛЕКТ (RC)

Эксплуатация

При первом включении PIC после программирования он должен запустить первую найденную последовательность RGB. Если вы используете исходные последовательности, поставляемые с кодом здесь, он будет запускать последовательность повторения затухания красного, синего и зеленого.

Пользовательское управление драйвером RGB осуществляется с помощью переключателя S1, который выполняет несколько функций, как описано в следующем разделе.

Однократное нажатие для удержания/запуска текущей последовательности

Вы можете нажать S1 в любое время, чтобы остановить выполнение последовательности и удерживать цвет, отображаемый в данный момент времени. Повторное нажатие S1 запустит последовательность.

Если питание контроллера выключено, когда он находится в состоянии удержания, при следующем включении он останется в состоянии удержания, отображая тот же цвет.

Дважды нажмите, чтобы выбрать следующую последовательность

(нажмите S1 дважды с интервалом менее 0,5 секунды; представьте себе «двойной щелчок» по кнопке компьютерной мыши)

Пролистайте все доступные последовательности. Когда последняя последовательность будет достигнута, она вернется к первой доступной последовательности. Каждый раз при двойном щелчке переключателя S1 значения ШИМ RGB-светодиода возвращаются к 0 (светодиоды выключены), и начинает работать новая последовательность.

При пошаговом прохождении последовательностей каждая новая последовательность всегда запускается в состоянии Run, даже если ранее она находилась в состоянии Hold

(последние последовательности обозначаются 3 короткими повторениями синего и зеленого светодиодов)

Нажмите и удерживайте, чтобы войти/выйти из спящего режима

Нажмите и удерживайте переключатель S1 в течение примерно 1,2 секунды, чтобы перевести PIC в спящий режим. Находясь в спящем режиме, нажмите переключатель S1 примерно на 2 секунды, затем отпустите его, чтобы вывести PIC из спящего режима. Если кнопку S1 не удерживать в течение двух секунд, PIC возвращается в спящий режим.

Примерно через 10 секунд после последнего нажатия переключателя S1 текущий выбранный порядковый номер, значения цвета RGB и состояние удержания сохраняются в энергонезависимой памяти EEPROM. При следующем включении питания драйвера RGB-светодиодов сохраненный порядковый номер считывается и автоматически запускается последовательность. Если он находился в состоянии удержания при отключении питания, он включится и останется в состоянии удержания до тех пор, пока снова не будет нажата кнопка S1.

Каждый раз, когда PIC переводится в спящий режим, удерживая переключатель S1 нажатым, текущая выбранная последовательность, отображаемый цвет и состояние удержания будут сохранены в EEPROM.

Прошивка
Файл HEX готов для программирования непосредственно в PIC 12F629. ZIP-файл содержит исходный код, который вы можете изменить или просто просмотреть, чтобы увидеть, как он работает. Если вы собираетесь модифицировать код, я рекомендую вам загрузить и установить Microchip MPLAB IDE, которая позволит вам беспрепятственно редактировать, модифицировать и программировать PIC.

Описание Имя файла Ссылка Ссылка
исходный код RGB101G3. zip, v3.0.3, 14/09/2010 Скачать
Hex File Ready
для программы на
Pic Rgb101g3_main.Hex, V3.0.3,
14/10/2010 Dulw

.Hex, V3.0.3,
14/10/2010

.hex, v3.0.3,
14/10/2010

.hex.

Если вам нужен программатор PIC, мы настоятельно рекомендуем Microchip PICKit 2, его можно приобрести у поставщиков по всему миру или напрямую у Microchip. Это достаточно дешево купить и надежно.

Формат данных последовательности
Данные, используемые приложением для последовательностей RGB, хранятся в файле ‘sequenceData.inc’. Вы можете редактировать этот файл, добавляя, удаляя или изменяя предоставленные данные. Вы должны убедиться, что он соответствует описанному формату. В частности, обратите внимание на маркеры «конец последовательности» и «конец всех данных», а также убедитесь, что каждая строка данных последовательности содержит пять записей, разделенных запятыми. (см. дамп экрана ниже)

Действительно полезную онлайн-утилиту для имитации последовательностей можно найти здесь: RGB LED Simulator
(спасибо Marek ‘Marki’ Podmaka  за создание и распространение этого симулятора)

В приведенном выше дампе экрана обратите внимание на маркеры end_of_sequence, обведенные красным, и маркер end_of_all_data, обведенные фиолетовым.
У вас должна быть по крайней мере одна последовательность, максимум 256 отдельных последовательностей, хотя у вас может закончиться доступная память на PIC, прежде чем вы достигнете этого предела.
Каждая строка данных начинается с директивы ассемблера ‘dt’ (таблица данных).
Все данные указываются в десятичном формате.
Каждое значение данных должно быть разделено запятой.
Данные последовательности в каждой строке имеют пять полей:
Скорость перехода: скорость перехода цветов от текущих значений к новым значениям. Каждый шаг происходит с интервалом 5 мс x Fade Rate.
Значение скорости затухания, равное 0, указывает, что значения RGB будут обновляться немедленно без затухания.
Значение Fade Rate не должно быть установлено равным 255, кроме как для указания конца последовательности.
Hold Time: после завершения перехода задержка перед переходом к следующей строке данных. Интервал составляет 50 мс x Время удержания
Значение Hold Time, равное 255, после Fade Rate, равное 255, указывает на данные end_of_all_sequence.

Author:

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *