RGB-светодиоды: адресуемая светодиодная лента. ШИМ управление RGB светодиодом на микроконтроллере PIC12F629

Светящиеся только красным - R , зеленым - G , синим - B или белым - CW цветом, как правило, подключаются непосредственно к источнику постоянного тока напряжением 12 В или 24 В. R G B светодиодную ленту, как и монохромные, тоже можно подключить к блоку питания постоянного тока, соединив выводы R , G и B между собой.

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

На фотографии изображена электрическая схема подключения R G B светодиодной ленты к сети 220 В. Блок питания (адаптер) преобразует переменное напряжение 220 В в напряжение постоянного тока 12 В, которое по двум проводам с соблюдением полярности подается на R G B контроллер. К контроллеру посредством четырех проводов в соответствии с маркировкой подключается светодиодная лента. Для удобства монтажа и ремонта светодиодного освещения узлы между собой соединяются с помощью разъемов.

Электрическая схема LED R G B светодиода SMD-5050

Для подключения, а тем более ремонта R G B светодиодной ленты на профессиональном уровне, необходимо представлять, как она устроена, и знать электрическую схему и распиновку применяемых в лентах светодиодов. На фотографии ниже представлен фрагмент R G B светодиодной ленты с нанесенной схемой распайки кристаллов светодиодов.

Как видно на схеме, кристаллы в светодиоде электрически не связаны между собой. Три разноцветных кристалла в одном корпусе светодиода образуют триаду. Благодаря такой конструкции, управляя яркостью свечения каждого кристалла индивидуально можно получить бесконечное количество цветов свечения светодиода. На таком принципе управления цветом построены дисплеи сотовых телефонов, навигаторов, фотоаппаратов, компьютерных мониторов, телевизоров и многих других изделий.

Технические характеристики светодиода SMD-5050 приведены на странице сайта «Справочник по SMD светодиодам» .

Электрическая схема LED R G B ленты на светодиодах SMD-5050

Разобравшись с устройством светодиода легко разобраться и с устройством светодиодной ленты. В верхней части картинки фотография работоспособного отрезка LED R G B ленты, а в нижней его электрическая схема.


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

Кристаллы светодиодов VD1, VD2 и VD3 одинакового цвета свечения соединены последовательно. Для ограничения тока в каждой из цветовых цепей установлены токоограничивающие резисторы. Два из них номиналом 150 Ом, а один 300 Ом, в цепи кристаллов красного цвета. Резистор большего номинала установлен для выравнивания яркости всех цветов с учетом интенсивности излучения кристаллом светодиода и не одинаковой цветовой чувствительности человеческого глаза к разным цветам.

Как разрезать светодиодную ленту на отрезки

Как Вы уже наверно поняли, R G B светодиодная лента любой длины (относиться и к монохромным лентам), состоит из коротких самостоятельных отрезков, представляющих собой законченное изделие. Достаточно подать на контактные площадки напряжение питания и лента будет излучать свет. Для получения отрезка ленты требуемой длины элементарные отрезки соединяют между собой в соответствии с буквенной маркировкой.

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

Способы управления цветом свечения
R G B светодиодных лент

Есть два способа управления цветовым режимом работы R G B светодиодной ленты, с помощью трех выключателей или электронного устройства.

Принцип работы простейшего контроллера на выключателях

Рассмотрим принцип работы самого простого контроллера, на механических выключателях. В качестве выключателя для ручного управления свечением R G B ленты можно применить трех клавишный настенный выключатель, предназначенный для включения люстр и светильников в бытовую сеть 220 В. Электрическая схема подключения тогда будет иметь следующий вид.


Резисторы R1-R3 служат для ограничения тока и их можно устанавливать в любом месте цепи питания кристаллов одного цвета. По этой схеме можно подключать R G B ленты, рассчитанные на напряжение питания как 12 В, так и 24 В.

Как видно из схемы, плюсовой вывод блока питания подключается непосредственно к плюсовому выводу светодиодной ленты, который является общий для светодиодов всех цветов, а минусовой вывод подключается к R , G и B контактам ленты через выключатель. Коммутатором из трех выключателей можно получить семь цветов свечения ленты. Это самый простой, надежный и дешевый способ управления цветами свечения R G B ленты.

Принцип работы электронного контроллера

Для получения бесконечного количества цветов свечения R G B ленты и в автоматическом режиме динамическое изменение величины светового потока, вместо выключателей используют электрический блок, который называется R G B контроллер. Его включают в разрыв цепи между блоком питания и R G B лентой. Обычно в комплект контроллера входит пульт дистанционного управления, позволяющий на расстоянии управлять режимом его работы, и как следствие режимом свечения светодиодной ленты.

Так как для работы светодиодной ленты требуется, как правило, напряжение постоянного тока 12 В (реже 24 В), то для подключения ее к электросети переменного тока 220 В применяется блок питания или адаптер, преобразующий переменное напряжение в напряжение постоянного тока, которое через разъемное соединение подается на блок контроллера.


Рассмотрим принцип работы RGB контроллера на примере самого простого и широко применяемого контроллера модели LN-IR24. Он состоит из трех функциональных узлов – контроллера управления R G B , силовых ключей и микросхемы инфракрасного сенсора (ИК). Микросхема контроллера прошита на требуемый алгоритм работы светодиодной ленты. Управление микросхемой контроллера осуществляется сигналом, поступающим с микросхемы сенсора ИК. На ИК сенсор управляющий сигнал поступает при нажатии кнопок на пульте дистанционного управления.

Управление подачей питающего напряжения на светодиодную ленту осуществляется с помощью трех полевых транзисторов, работающих в ключевом режиме. При поступлении сигнала с микросхемы контроллера управления RGB на затвор транзистора, его переход сток-исток открывается, и через светодиоды начинает протекать ток, в результате чего они начинают излучать свет. Управление яркостью свечения светодиодов осуществляется за счет высокочастотного изменения ширины импульсов подаваемого питающего напряжения (широтно-импульсной модуляции).

Выбор блока питания и контроллера для R G B ленты

Блок питания для RGB светодиодной ленты, необходимо выбирать, исходя из напряжения ее питания и потребляемого тока. Наиболее популярны светодиодные ленты на напряжение постоянного тока 12 В. Ток потребления по цепям R, G и B можно узнать из этикетки или определить самостоятельно, воспользовавшись справочными данными на светодиоды, изложенными в таблице на странице сайта Справочная таблица параметров популярных SMD светодиодов . Принято мощность потребления ленты указывать на метр ее длины.

Рассмотрим на примере как определить мощность потребления RGB ленты неизвестного типа на напряжение питания 12 В. Например, нужно подобрать блок питания и контроллер для R G B ленты длиной 5 м. Первое что необходимо сделать, определить тип RGB светодиодов установленных на ленте. Для этого достаточно измерять размер боковых сторон светодиода. Допустим, получилось 5 мм×5 мм. По таблице определяем, что такой размер имеет светодиод типа LED-RGB-SMD5050. Далее нужно подсчитать количество корпусов светодиодов на метре длины. Допустим, получилось 30 штук.

Один кристалл светодиода потребляет ток 0,02 А, в одном корпусе размещено три кристалла, следовательно суммарный ток потребления одного светодиода составит 0,06 А. На одном метре длины 30 светодиодов, умножаем ток на количество 0,06 А×30=1,8 А. Но диоды включены по три последовательно, значит, реальный ток потребления метра ленты будет в три раза меньше, то есть 0,6 А. Длина нашей ленты пять метров, следовательно, суммарный ток потребления составит 0,6 А×5 м=3 А.

Расчеты показали, что для питания R G B ленты длиной пять метров нужен блок питания или сетевой адаптер с выходным напряжением постоянного тока 12 В и током нагрузки не менее 3 А. Блок питания должен иметь запас по току, поэтому был выбран, адаптер модели АРО12-5075UV, рассчитанный на ток нагрузки до 5 А. При выборе блока питания нужно учесть, что выходной его разъем должен подходить к разъему R G B контроллера.

При выборе контроллера надо учесть, что ток потребления по отдельно взятому каналу R , G или B будет в три раза меньше. Следовательно, для нашего случая нужно брать контроллер, рассчитанный на напряжение 12 В и максимально допустимым током нагрузки на канал не менее 3 А/3=1 А.

Этим требованиям соответствует, например, R G B контроллер LN-IR24B. Он рассчитан на ток нагрузки до 2 А (можно подключить до 10 метров RGB ленты). Позволяет включать и выключать ленту, выбирать 16 статических цветов и 6 динамических режимов дистанционно, с расстояния до восьми метров, с помощью элегантного пульта ДУ. Питающее напряжение на контроллер подается с блока питания или сетевого адаптера с помощью коаксиального DC Jack. R G B -контроллер LN-IR24B имеет малый вес и габаритные размеры.


Внешний вид подготовленного по результатам расчета комплекта для освещения светодиодной лентой показан на фотографии. В комплект входит блок питания модели АРО12-5075UV, R G B контроллер LN-IR24B с пультом дистанционного управления и R G B светодиодная лента.


Если потребуется подключить несколько пятиметровых R G B лент, то потребуется более мощный контроллер, например, CT305R, позволяющий выдавать ток до 5 А на светодиоды одного цвета. Этим контроллером можно управлять не только с помощью пульта дистанционного управления, но и по сети с компьютера, превратив тем самым R G B освещение в цветомузыкальное сопровождение при прослушивании музыки.

Соединять последовательно светодиодные ленты длиной более пяти метров недопустимо, так как токоведущие дорожки самой ленты имеют малое сечение. Такое подключение приведет к снижению светового потока на участке ленты, превышающего длину пять метров. Если нужно подключить несколько пятиметровых светодиодных лент, то проводники каждой из них подключаются непосредственно к контроллеру.

В мощных моделях контроллеров для подключения внешних устройств используются клеммные колодки, в которых провода зажимаются с помощью винта. Рядом с клеммами обязательно нанесена маркировка. INPUT (IN) означает вход, к этим клеммам подключается внешний блок питания, с которого подается питающее напряжение для самого контроллера и светодиодных лент. Полярность обозначена дополнительными знаками «+» и «-». Несоблюдение полярности при подключении блока питания может вывести контроллер из строя.

Группа клемм для подключения R G B ленты обозначена надписью OUTPUT (OUT) и означает выход. Цвета обозначены буквами R (красный), G (зеленый), B (синий) и V+ (это общий провод любого другого цвета). От ленты обычно идут тоже цветные провода и достаточно просто присоединить их цвет в цвет.

Замечу, что к любому R G B контроллеру, соответствующему по току, можно с успехом подключить монохромную светодиодную ленту . Тогда появится возможность с помощью пульта дистанционного управления менять режим ее свечения – включать, выключать, менять яркость, устанавливать динамический режим изменения яркости.

Rgb светодиоды, которые иногда называют 3-хцветными, являются ничем иным, как красным, зеленым и синим диодом, совмещенными в едином корпусе. Зная об этом, несложно представить себе, как устроены rgb светодиоды. Для каждого из 3-х цветов существует своя ножка-катод, и ещё одна – общий анод. Вывод под анод является самым длинным, а катоды обычно располагаются в следующем порядке:

  • синий;
  • зеленый;
  • красный.

Чтобы заставить устройство светиться одним из указанных цветов, на соответствующий катод требуется подать сигнал. Если же нужен какой-то другой оттенок, его можно получить при использовании широтно-импульсной модуляции (ШИМ, PWM-сигнал). Количество получаемых в итоге цветов зависит от того, как реализовано управление и разрядности ШИМ. Белый цвет тоже довольно просто получить – для этого нужно лишь зажечь все светодиоды одновременно.

Rgb светодиоды могут иметь и другое строение, которое и определяет их основные характеристики (насколько они мощные и т.д.). В случае реализации устройства с общим катодом для каждого из цветов установлен собственный порог зажигания, отделенный от следующего парой вольт. Устройства с общим «+» включают нужный светодиод при значении «0» на выходе микроконтроллера, а с общим «-» - при «1».

Управление rgb светодиодами может быть реализована на 8-битных микроконтроллерах семейства Pic, AVR (ATtiny, ATmega) и более мощных моделях, программа для которых составляется на ассемблере.

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

Управление rgb светодиодами

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

При недостаточной частоте импульсов светодиоды будут мигать. Чтобы они светили постоянно, нижний порог частоты должен быть около 60-70 Гц (мониторы старых моделей), а в идеале – не меньше 100 Гц (более мощные и современные).

При простейшей реализации управление RGB-светодиодом потребует 3 ШИМ. Сама схема не так сложна в реализации, даже если устройства довольно мощные. Задача скорее в правильной реализации программной части.

Контроллеры младших серий, как правило, не имеют не только 3 ШИМ, но даже 3-х таймеров с прерываниями (на базе которых легко реализовать ШИМ). То, как будет реализована схема управления, следует рассматривать на конкретных примерах, в зависимости от архитектуры конкретного устройства.

Теоретическая база для реализации схемы управления rgb светодиодами

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

Для реализации канала ШИМ нужно знать:

  • алгоритм определения коэффициента заполнения (устанавливается пользователем);
  • отсчет времени для сигнала верхнего уровня;
  • время всего импульса.

При практической реализации для этого потребуются 2 счетчика, которые будут работать по следующему алгоритму:

  1. Запуск счетчиков, выход выставлен в «1».
  2. Прерывание счетчика №1 (время верхнего уровня), выход переключается на «0».
  3. Счетчик №1 выключается.
  4. Прерывание счетчика №2 – повтор всех операций с начала.

Получается, что схема управления rgb светодиодом, вне зависимости от того, насколько устройства мощные, должна включать в себя по 2 счетчика для канала ШИМ, то есть 6 в сумме.

Даже если сделать длительность импульса одинаковой для всех каналов, их количество сократится на 2. У простых контроллеров никак не наберется 4 счетчика, но не стоит забывать, что отчет времени дискретен.

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

T=1/(f*(2 n -1)),

n – значение разрядности ШИМ;

f – частота.

Схема может включать в себя 1 счетчик для отсчета интервала Т. Чтобы он выполнял требуемую функцию, следует задать 4 установки:

  1. Количество отсчетов верхнего уровня для 1 канала ШИМ.
  2. Количество отсчетов верхнего уровня для 2 канала ШИМ.
  3. Количество отсчетов верхнего уровня для 3 канала ШИМ.
  4. Общая длительность импульса.

Прочие операции для программного счетчика (переключение, обнуление и т.д.) совершаются по прерываниям аппаратного.

Данный алгоритм – всего лишь пример схемы управления, работа которой может существенно отличаться, в зависимости от используемого микроконтроллера а также от того, как именно планируется использовать светодиоды. Более мощные устройства могут работать также на светодиодных лентах.

Или подсветку с возможностью переключать разные цвета, поэтому тема LED драйверов очень актуальна. Предлагаемая схема такого устройства управляет RGB-светодиодами через Н-канальные МОП-транзисторы, которые позволяют контролировать светодиодные матрицы или лампы до 5 ампер на канал без применения теплоотводов.

Схема электрическая и описание

Во время тестирования контроллер подключался к 50 Вт на 12 В галогенным лампочкам, по одной на каждый канал. Температура МОСФЕТ транзисторов после 5 мин прогона составила чуть больше 50C. Теоретически общая нагрузка для всех трех каналов RGB не должна превышать 15 ампер.

Указанный транзистор STP36NF06L работает при низком напряжении на затворе. Вы можете использовать такие другие стандартные N-канальные полевые транзисторы, которые будут нормально работать при токах нагрузки до 5 ампер и не требовать слишком большого сигнала на входе для полного отпирания.

Подключение к печатной плате кабелей также должно соответствовать тому току, который они будут пропускать. Светодиоды, LED ленты и модули, подключенные к драйверу, должны иметь общий анод, как показано на схеме выше.

Вот один из вариантов реализации, который использует 20 светодиодов RGB типа Пиранья. Собрана лампа в коробе 25 х 50 х 1000 мм из алюминия. Позже она была приспособлена под настенную полку, чтобы осветить стол. Свет очень яркий и дает хорошее ровное освещение без какого-либо дополнительного рассеивателя.

Для управления этими устройствами используется RGB-контроллер. Но, кроме него, в последние годы применяется плата Arduino.

Ардуино – принцип действия

плата Arduino

Плата Ардуино – это устройство, на котором установлен программируемый микроконтроллер. К нему подключены различные датчики, органы управления или encoder и, по заданному скетчу (программе), плата управляет моторами, светодиодами и прочими исполнительными механизмами, в том числе и другими платами Ардуино по протоколу SPI. Контроль устройства может осуществляться через дистанционный пульт, модуль Bluetooth, HC-06, Wi-Fi, ESP или internet, и кнопками. Одни из самых популярных плат – Arduino Nano и Arduino Uno, а также Arduino Pro Mini – устройство на базе микроконтроллера ATmega 328


Внешний вид Arduino Pro Mini
Внешний вид Arduino Uno
Внешний вид Arduino micro

Программирование осуществляется в среде Ардуино с открытым исходным кодом, установленным на обычном компьютере. Программы загружаются через USB.

Принцип управления нагрузкой через Ардуино


управление Arduino

На плате есть много выходов, как цифровых, имеющих два состояния — включено и выключено, так и аналоговых, управляемых через ШИМ-controller с частотой 500 Гц.

Но выходы рассчитаны на ток 20 – 40 мА с напряжением 5 В. Этого хватит для питания индикаторного RGB-светодиода или матричного светодиодного модуля 32×32 мм. Для более мощной нагрузки это недостаточно.

Для решения подобной проблемы во многих проектах нужно подключить дополнительные устройства:

  • Реле. Кроме отдельных реле с напряжением питания 5В есть целые сборки с разным количеством контактов, а также со встроенными пускателями.
  • Усилители на биполярных транзисторах. Мощность таких устройств ограничена током управления, но можно собрать схему из нескольких элементов или использовать транзисторную сборку.
  • Полевые или MOSFET-транзисторы. Они могут управлять нагрузкой с токами в несколько ампер и напряжением до 40 – 50 В. При подключении мосфета к ШИМ и электродвигателю или к другой индуктивной нагрузке, нужен защитный диод. При подключении к светодиодам или LED-лампам в этом нет необходимости.
  • Платы расширения.

Подключение светодиодной ленты к Ардуино


подключение светодиодной ленты к Arduino

Мнение эксперта

Алексей Бартош

Специалист по ремонту, обслуживанию электрооборудования и промышленной электроники.

Задать вопрос эксперту

Arduino Nano могут управлять не только электродвигателями. Они используются также для светодиодных лент. Но так как выходные ток и напряжение платы недостаточны для прямого подключения к ней полосы со светодиодами, то между контроллером и светодиодной лентой необходимо устанавливать дополнительные приспособления.

Через реле


Подключение через реле

Реле подключается к устройству на цифровой выход. Полоса, управляемая с его помощью имеет только два состояния — включенная и выключенная. Для управления red-blue-green ленточкой необходимы три реле. Ток, который может контролировать такое устройство, ограничен мощностью катушки (маломощная катушка не в состоянии замыкать большие контакты). Для подсоединения большей мощности используются релейные сборки.

С помощью биполярного транзистора


Подключение с помощью транзистора

Для усиления выходного тока и напряжения можно использовать биполярный транзистор. Он выбирается по току и напряжению нагрузки. Ток управления не должен быть выше 20 мА, поэтому подается через токоограничивающее сопротивление 1 – 10 кОм.

Транзистор лучше применять n-p-n с общим эмиттером. Для большего коэффициента усиления используется схема с несколькими элементами или транзисторная сборка (микросхема-усилитель).

С помощью полевого транзистора

Кроме биполярных, для управления полосами используются полевые транзисторы. Другое название этих приборов – МОП или MOSFET-transistor.

Такой элемент, в отличие от биполярного, управляется не током, а напряжением на затворе. Это позволяет малому току затвора управлять большими токами нагрузки – до десятков ампер.

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

С помощью плат расширения


Подключение Arduino с помощью плат расширения

Кроме реле и транзисторов используются готовые блоки и платы расширения.

Это может быть Wi-Fi или Bluetooth, драйвер управления электродвигателем, например, модуль L298N или эквалайзер. Они предназначены для управления нагрузками разной мощности и напряжения. Такие устройства бывают одноканальными – могут управлять только монохромной лентой, и многоканальными – предназначены для устройств RGB и RGBW, а также лент со светодиодами WS 2812.

Пример программы


Arduino и светодиодная лента

Платы Ардуино способны управлять светодиодными конструкциями по заранее заданным программам. Их библиотеки можно скачать с официально сайта , найти в интернете или написать новый sketch (code) самому. Собрать такое устройство можно своими руками.

Вот некоторые варианты использования подобных систем:

  • Управление освещением. С помощью датчика освещения включается свет в комнате как сразу, так и с постепенным нарастанием яркости по мере захода солнца. Включение может также производиться через wi-fi, с интеграцией в систему «умный дом» или соединением по телефону.
  • Включение света на лестнице или в длинном коридоре. Очень красиво смотрится диодная подсветка каждой ступеньки в отдельность. При подключении к плате датчика движения, его срабатывание вызовет последовательное, с задержкой времени включение подсветки ступеней или коридора, а отключение этого элемента приведет к обратному процессу.
  • Цветомузыка. Подав на аналоговые входы звуковой сигнал через фильтры, на выходе получится цветомузыкальная установка.
  • Моддинг компьютера. С помощью соответствующих датчиков и программ цвет светодиодов может зависеть от температуры или загрузки процессора или оперативной памяти. Работает такое устройство по протоколу dmx 512.
  • Управление скоростью бегущих огней при помощи энкодера. Подобные установки собираются на микросхемах WS 2811, WS 2812 и WS 2812B.

Видеоинструкция

Продолжаем осваивать ШИМ, на этот раз для управления цветом RGB светодиода.

По сути, RGB светодиод совмещает в себе три обычных светодиода — красный, зеленый и синий.

Соответственно у RGB светодиода 4 ножки: для управления каждым из цветов используется по одной ножке и одна общая (обычно самая длинная). Общим может быть как катод(-), так и анод(+). На схеме приведен пример, для схемы с общим анодом.

Примечательно то, что смешивая эти 3 цвета можно получить практически любой другой цвет. Если зажечь все 3 светодиода одновременно, получится белый цвет.

Теперь о реализации, мне достался светодиод с общим катодом, номинальный ток, которого по даташиту составлял 20мА. Однако, есть небольшой нюанс, у каждого цвета свой порог зажигания. Например, у красного светодиода, 20мА соответствовало напряжению 2.1В, зеленому и синему — напряжение 3.2В. В целом ножка микроконтроллера должна выдерживать такой ток, поэтому можно смело подключать через токоограничивающие резисторы к микроконтроллеру.
Я же использовал pnp транзисторы, однако эту идею никому не навязываю.

У Atmega8 есть 3 канала ШИМ: два канала на таймере1(ножки PB.1 — OCR1A, PB.2 — OCR1B) и один таймере2(ножка PB.3 — OCR2). Регулируя заполнение ШИМ, мы регулируем напряжение на светодиоде, соответственно его яркость.

Создаем новый проект, настраиваем таймер2.

Так как OCR2 8-битный, а OCR1 10-битный, то максимальное значение OCR2=0хFF(255), а OCR1A/B=0х3FF(1023), т.е. в 4 раза больше. Учитываем эту особенность, поэтому чтобы каналы регулировались одинаково, настраиваем частоту таймера в 4 раза больше. Соответственно, максимальная яркость для OCR2 будет при 0xFF, а для OCR1 при 0x3FF.

Настраиваем ножки PB1-PB3 как выход. В основной цикл программы дописываем код, который плавно зажигает красный от 0 до 255, а затем плавно тушит его от 255 до 0.

while(OCR1A<0x3FF) { OCR1A++; delay_ms(2); } while(OCR1A>0x00) { OCR1A--; delay_ms(2); }

Результат:

Если нужно получить, некоторый определенный цвет, например пурпурный, открываем какой нибудь графический редактор, например Paint.net заходим в палитру нажимаем на понравившийся цвет, справа, где написано RGB отобразятся его числовые значения R=255, B=220.

Канал R у меня на OCR2, поэтому смело в OCR2 записываем 0xFF(255), канал B на OCR1A, но т.к. максимальное значение 1023, то по пропорции пересчитываем:

(220*1023)/255=882 вот его смело пихаем в OCR1A, результат довольно таки похож.