ШИМ-контроллер для RGB светодиодов с использованием PIC PIC12F629

Данный ШИМ-контроллер RGB светодиодов позволяет использовать 5 мм RGB светодиоды или квадратные светодиоды типа Superflux / Piranah. В схеме используются биполярные транзисторы, что делает ее более подходящей для начинающих конструкторов.

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

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

Резисторы R1, R 2 и R 3 ограничивают ток через светодиоды до безопасного значения (при использовании источника питания 12 В).

Hantek 2000 - осциллограф 3 в 1
Портативный USB осциллограф, 2 канала, 40 МГц....
Подробнее

ШИМ-контроллер для RGB светодиодов с использованием PIC PIC12F629

Катоды каждой цепочки светодиодов подключены к NPN транзисторам (BC547), которые используется для включения и выключения светодиодов. Эти транзисторы, в свою очередь, управляются PIC микроконтроллером. Управление транзисторами осуществляется посредством ШИМ. Кнопка S1 используется для выбора различных цветовых эффектов.

Каждый канал (цвет) управляется отдельно. Это позволяет эффективно генерировать любой цвет. Данные, используемые для установки и изменения цветов, хранятся в легко редактируемом файле. Если вам не нравятся последовательности, предоставленные в нем, вы можете самостоятельно изменить файл с помощью своих собственных настроек.

Управление

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

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

Двойное нажатие (с интервалом менее 0,5 секунды) позволяет выбрать следующую последовательность.
Каждое такое двойное нажатие кнопки отключает все светодиоды перед запуском следующей последовательности.

Примечание: последняя последовательность обозначается 3 короткими миганиями синих и зеленых светодиодов.

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

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

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

Светодиодный RGB-контроллер
ИК-пульт дистанционного управления, Ток на каждый канал: 2А....
Подробнее

Прошивка

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

Формат данных цветовой последовательности

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

Здесь находиться полезная онлайн-утилиту для имитации последовательностей: RGB LED Simulator

В приведенном выше скриншоте обратите внимание на маркеры end_of_sequence, обведенные красным, и маркер «end_of_all_data», обведенные фиолетовым.

У вас должна быть, по крайней мере, одна последовательность, максимум до 256 отдельных последовательностей.

  1. Каждая строка данных начинается с директивы ассемблера dt (таблица данных).
  2. Все данные указываются с использованием десятичных значений.
  3. Каждое значение данных должно быть разделено запятой.
  4. Данные последовательности в каждой строке имеют пять полей:
    1. Fade Rate: скорость перехода цветов от текущих значений к новым. Каждый шаг происходит с интервалом 5 мс x Fade Rate.
      • Значение скорости затухания 0 указывает, что значения RGB будут обновлены немедленно без затухания.
      • Значение Fade Rate не должно быть установлено на 255, кроме как для обозначения конца последовательности. (см. ниже)
    2. Время удержания: после завершения затухания задержка перед переходом к следующей строке данных. Интервал 50 мс x время удержания
      • Значение времени удержания 255 после скорости затухания 255 указывает на данные end_of_all_sequence.
    3. Красное значение ШИМ. От 0 = 0% (светодиод не горит) до 255 = 100% (светодиод полностью включен)
    4. Зеленое значение ШИМ. 0 = 0% (светодиод не горит) до 255 = 100% (светодиод полностью включен)
    5. Значение синего ШИМ. От 0 = 0% (светодиод не горит) до 255 = 100% (светодиод полностью включен)
      • Обычно изменения яркости светодиода более заметны в диапазоне от 0 до 128, чем от 128 до 255.
    6. Конец данных текущей последовательности обозначается значением поля Fade Rate «255». Когда приложение обнаруживает это, оно перезапускает последовательность с начала.
    7. В конце всех доступных данных последовательности оба поля Fade Rate и Hold Time должны быть установлены на «255».

После редактирования sequenceData.inc файл необходимо сохранить, а rgb101g3_main.asm скомпилировать заново. Далее полученный файл rgb101g3_main.hex может быть запрограммирован программатором для PIC микроконтроллеров.

Скачать файлы проекта (67,6 KiB, скачано: 55)

Источник

Блок питания 0...30 В / 3A
Набор для сборки регулируемого блока питания...
Подробнее

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

Ваш электронный адрес не будет опубликован.


*

68