Миграция проектов на ПЛИС новых производителей

Контроллер сверхяркого RGB светодиода

Hélio Pereira

Предисловие

Для генерации комбинаций цветов в этом проекте использован сверхяркий RGB светодиод с общим анодом в корпусе «Пиранья» и микроконтроллер PIC18F25K20. Контроллер работает в двух режимах: автоматическая смена цветов, в соответствии с таблицей, хранящейся в памяти, и режим, позволяющий выбрать один из семи цветов вручную.

Критерии выбора литиевых аккумуляторов и батареек: что необходимо учитывать разработчикам

Контроллер сверхяркого RGB светодиода

Принципиальная схема

Контроллер сверхяркого RGB светодиода
Кликните для увеличения

Программа микроконтроллера

Управление яркостью свечения светодиодов осуществляется с помощью ШИМ. Поскольку микроконтроллер PIC18F25K20 имеет лишь два аппаратных канала ШИМ, третий реализуется программно с использованием TIMER0. В ручном режиме используется прерывание по изменению состояния вывода (IOC – interrupt on change).

Антидребезг

Переключение режимов и выбор цветов выполняются кнопками. Вследствие механической природы кнопок, их нажатие и отпускание всегда сопровождается дребезгом, воспринимаемым микроконтроллером как многократное срабатывание кнопки. Решать проблему дребезга контактов можно как аппаратно, так и программно. Аппаратное решение связано с применением задерживающих RC цепей, или с использованием триггера Шмита, что, в любом варианте, усложняет конструкцию контроллера. Поэтому в нашей схеме дребезг подавляется программно.

Образец программной реализации антидребезга:

Push-Button = Btnl
Count = 0
If Btnl == 0 Then
   While Btnl = 0 : wend
      DelayMS 10
      Count+=l
      If count == 1 then
         Do stuff
      Else:
         Do stuff
         count = 0

Этот фрагмент программы работает совершенно надежно, но, при желании, его можно написать множеством других способов.

Питание схемы

Для питания светодиодов используется стабилизатор напряжения 7812, а для питания микроконтроллера – микросхема LM317. Для расчета выходного напряжения LM317 используется формула:

RGB светодиод

Резисторы, ограничивающие ток светодиодов, должны иметь разные величины сопротивлений, так как прямое падение напряжения для каждого светодиода индивидуально. Для расчета этих сопротивлений используйте формулу:

В этой формуле

VIN – напряжение питания светодиода,
VF – прямое падение напряжения на светодиоде,
IF – прямой ток через светодиод.

Загрузки

Перевод: AlexAAN по заказу РадиоЛоцман

На английском языке: Super Flux RGB LED Controller

Электронные компоненты. Бесплатная доставка по России
Для комментирования материалов с сайта и получения полного доступа к нашему форуму Вам необходимо зарегистрироваться.
Имя