ШИМ управление RGB светодиодом на микроконтроллере PIC12F629
MBS Electronics >> Схемы и Статьи >> Цифровая электроника >> Микроконтроллеры
Скачать файлы прошивки микроконтроллера PIC12F629. В Zip архиве готовый Hex - файл, исходники и файл проекта для Proteus 8
 
Недавно я получил небольшую посылку с радиодеталями из Китая, с Алиэкспресс. Среди прочих деталек в посылке пришел вот такой пакетик с интересными трехцветными RGB светодиодами.
Название RGB Led происходит от аббревиатуры  трех основных цветов - R  (Red, красный), G (Green, зеленый) и B (Blue, синий). Таким образот, RGB Led это комбинированный трехцветный светодиод, в корпусе которого в действительности размещены три светодиода разных цветов. Яркостью каждого цвета можно управлять отдельно, изменяя ток через соответствующий диод. теориетически, изменяя соотношение яркостей мы можем получить любой цвет, в том числе и белый.
Обычно трёхцветный светодиод имеет четыре вывода. Один вывод - общий для всех трех цветовых компонент, и три отдельных вывода для раздельного управления цветами. В зависимости от того, какие из электродов светодиодов соединены вместе внутри общего корпуса, RGB светодиод может быть с общим катодом (ОК) или с общим анодом (ОА).  Это нужно иметь в виду при подключении светодиода к источнику тока.  Мне приехали светодиоды с общим катодом.
распиновка RGB светодиода с общим катодом.
RGB светодиод
На рисунке показана распиновка RGB светодиода с общим катодом.
Для использования такого светодиода достаточно подключить его к источнику постоянного тока через три токоограничивающих резистора. Изменяя сопротивление резисторов можно менять яркость цветовых составляющих и подбирать нужный оттенок свечения диода. нужно следить за тем, чтобы ток через светодиод не превысил максимально допустимого, иначе светодиод попросту сгорит.

RGB светодиод удобно использовать в качестве многофункционального индикатора. Один такой диод может отображать несколько состояний или режимов работы какого-либо устройства, таким образом мы экономим пространство на панели прибора.  Например, при использовании такого индикатора в зарядном устройстве, красным цветом можно показывать процесс заряда, зеленым - окончание заряда а синим - неисправность аккумулятора.
Наибольший интерес представляет управление таким светодиодом от микроконтроллера с использованием широтно-импульсной модуляции (ШИМ или PWM). ШИМ - это способ управления мощностью нагрузки посредством изменения скважность (ширины) электрических импульсов при постоянной частоте.  С помощью ШИМ микроконтроллер может динамически изменять яркость свечения компонентов RGB диода, создавая различные световые эффекты по заданной программе. Можно динамически менять как общую яркость свечения, так и получать любые цветовые оттенки. Все зависит только от вашей фантазии и поставленной задачи. Например, используя фильтры и аналогово - цифровой преобразователь микроконтроллера, очень легко создать цветомузыкальную индикацию для усилителя звуковой частоты.
Для иллюстрации работы RGB светодиода с управлением посредством ШИМ я собрал вот такую простую схему на основе маленького дешевого микроконтроллера Microchip PIC12F629.
LED1, LED2 и LED3 это соответственно красный, зеленый и синий компоненты нашего RGB светодиода. Вывод общего катода соединяется с минусом питания. Светодиоды подключены в выводам микроконтроллера через токоограничивающие резисторы R1..R3 сопротивлением 240 Ом. резистор R4 сопротивлением 1...10 килоом подтягивает вывод MCLR контроллера к плюсу питания. Это необходимо для правильной работы программы. Кнопкой S1 можно мерять последовательности световых эффектов. (См. далее)
Прошивку я залил в микроконтроллер с помощью моего самодельного программатора - клона фирменного PicKit2. Эта простая конструкция была собрана на китайской макетной беспаечной плате типа Breadboard. вот так это выглядит:
Купить макетную плату с блоком питания
Купить макетную плату с блоком питания
Эту схему можно использовать для управления большим количеством светодиодов, как RGB, так и дискретных, одиночных разноцветных светодиодов. Например можно красиво подсвечивать рекламные панно. В таком случае светодиодные цепочки нужно подключать через ключи на мощных биполярных или MOSFET транзисторах примерно вот так:
Программная часть проекта была позаимствована на англоязычном британском сайте, посвященном радиоэлектронике. Вот ссылка на источник. Прошивка для PIC12F629 написана на ассемблере в среде MPLAB IDE v7.31. скачать прошивку и ее исходные коды можно по ссылке в конце статьи. Кроме того, я вложил в архив проект для симулятора Proteus 8.6
Управление светодиодом.

Управление осуществляется с помощью кнопки S1 (см. схему), подключенной к порту GP5 микроконтроллера (вывод 2 микросхемы).

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

Двойное нажатие - выбор следующей последовательности.
дважды нажмите кнопку с промежутком менее 0,5 секунды. так как вы делаете "двойной щелчок" компьютерной мышкой. такое действие позволяет переключать имеющиеся в прошивке последовательности. При этом все значения ШИМ сбрасываются в 0, то есть светодиод гаснет, и начинается следующая последовательность. Когда вы переберете все последовательности, вы вернетесь на самую первую. Достижение последней секвенции индицируется тремя короткими вспышками синего и зеленого светодиодов

Нажатие и удерживание более 1.2 сек. - переход в режим сна. Текущее состояние светодиода и программы записывается в энергонезависимую память EEPROM и схема переходит в состояние "сна". Последующее длительное нажатие снова включает схему и последовательность продолжается.
Формат данных последовательности световых эффектов.
Поскольку к проекту прилагаются исходные коды прошивки, вы можете изменить существующие последовательности или создать новые. На скриншоте показан формат данных последовательностей. Коды последовательностей находятся в файле SequenceData.inc

Красным обведен маркер окончания секвенции. Это байт со значением 255 (FF).

Fade Rate - скорость изменения цвета

Hold Time - время задержки

Red - Красный цвет

Green - Зеленый цвет

Blue - Синий цвет


Посмотреть видео об использовании этих светодиодов и о посылке с радиодеталями с Алиэкспресс
Исходный проект: http://picprojects.org.uk/projects/rgb/index.htm
Заказать RGB светодиоды в Китае >>
Besucherzahler
счетчик посещений
         
 
 
 
 
 
НАШ МАГАЗИН - SHOP.MUSBENCH.COM
Карта Сайта