Hélio Pereira
Предисловие
Для генерации комбинаций цветов в этом проекте использован сверхяркий RGB светодиод с общим анодом в корпусе «Пиранья» и микроконтроллер PIC18F25K20. Контроллер работает в двух режимах: автоматическая смена цветов, в соответствии с таблицей, хранящейся в памяти, и режим, позволяющий выбрать один из семи цветов вручную.
Принципиальная схема
Программа микроконтроллера
Управление яркостью свечения светодиодов осуществляется с помощью ШИМ. Поскольку микроконтроллер 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 – прямой ток через светодиод.
Загрузки