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

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

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

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

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

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

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

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

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

Управление

При первом включении (после программирования микроконтроллера), начнется выполнение первой найденной 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, скачано: 150)

Источник

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

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


*