Реклама ⓘ
Главная » Световые эффекты
Призовой фонд
на апрель 2024 г.
1. 100 руб.
От пользователей

Похожие статьи:


Реклама ⓘ

RGB индикатор

Приветствую всех. При разработке данного устройства не стояло целей создать что-то конкретное, просто идея и просто ее реализация. Спектр применения ограничивает лишь фантазия. Итак, единственной задачей было создание управления тремя каналами ШИМ и их различными комбинациями при помощи одной переменной. За переменную был взят АЦП (значение аналого цифрового преобразователя). 10 битный АЦП микроконтроллеров AVR способен дать 1024 значения (2 в 10 степени). Достаточно для количества градаций цветовой палитры, чтобы плавно изменять оттенки. Основа конструкции микроконтроллер AVR attiny13. Он имеет всего 2 канала аппаратного ШИМа, поэтому реализовался программный ШИМ.

От идеи к реализации:

Для программной реализации необходимо задействовать два прерывания - для реализации программной ШИМ прерывания по таймеру (таймер 0) и прерывания по завершению преобразования АЦП (ADC_vect). Это первая часть. Вторая - инициализация порта, таймера и АЦП и алгоритм смены цветов. Для этого не мало важно знать правило, по которому происходит смена оттенков цветов. Будем использовать порядок как в радуге. Между прочим, чтобы посмотреть как смешиваются цвета, далеко лезть не нужно, в том же пэйнте или другом редакторе, содержащем инструменты с палитрой цветовой гаммы можно посмотреть это. Источником опорного напряжения для АЦП выбираем напряжение питания (5 вольт). При старте в программе заложено что-то типа инициализации - на полсекунды загорается каждый цвет RGB светодиода, чтобы было видно, что все исправно технически, а также все три цвета вместе - если белый цвет, то с балансом белого все в порядке. Мало ли. Теперь это же в программном коде.

#define LED1 PB0
#define LED2 PB1
#define LED3 PB2
#define LED_PORT PORTB
#define LED_DDR DDRB

#define BUTTON1 PB3
#define B_PORT PORTB
#define B_DDR DDRB

// прерывание по переполнению таймера 0
ISR (TIM0_OVF_vect) 
{
if (count++ > pwm)
        {  
        count=0;

        red_b   = red;                      //сохранием значения в буфер
        green_b = green; 
        blue_b  = blue;                             
                 
        LED_PORT |=(1<0) {B=1;}
if (ADC>2) {B=2;}
if (ADC>254) {B=3;}
if (ADC>508) {B=4;}
if (ADC>762) {B=5;}
if (ADC>1016) {B=6;}


if (B==1) {green=pwm;blue=0;red=0;}
if (B==2) {blue=A; green=pwm; red=0;}
if (B==3) {green=(pwm-(A-254)); blue=pwm; red=0;}
if (B==4) {red=(A-508); blue=pwm; green=0;}
if (B==5) {blue=(pwm-(A-762)); red=pwm; green=0;}
if (B==6) {red=pwm;blue=0;green=0;}

} // конец while(1)

} // конец main

Работа ШИМ человеческим глазом не заметна, то есть мерцаний нет. Если глаз вооружить камерой, то немного заметно, ну оно и понятно, камера по своим параметрам может много чего незаметного глазу человека усмотреть.

В итоге вышло такое устройство:

Схема  RGB индикатора

В качестве RGB светодиода использовался кусочек светодиодной ленты на RGB светодиодах (1 юнит, это 3 светодиода). Лента требует питания 12 вольт, поэтому был собран DC-DC повышающий преобразователь 5 вольт - 12 вольт на микросхеме MC34063 для питания либо от USB порта, либо от нескольких батареек 1,5 вольта для возможности использовать портативно устройство. Если планируется использовать это, например от бортовой сети автомобиля 12 вольт, то MC34063 нужно заменить на понижающий стабилизатор (либо схемно с MC34063, либо заменить на LM7805 и соответственно расключить источники +12 и +5 вольт). Также стоит отметить, что светодиодная лента у себя на борту уже содержит токоограничительные резисторы, подобранные в соответствии с балансом белого цвета.

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

Стабилитрон VD1 используется для защиты порта микроконтроллера от высокого напряжения (естественно, это относительное сравнение, так как для микроконтроллера 12 вольт уже высокое напряжение) и его номинал составляет 5,1 вольта. Можно применить 5,6 или в крайнем случае другой номинал близкий к значению в 5 вольт. Стабилитрон обязательно стоит применять только в случае, если напряжение, подаваемое на АЦП будет превышать 5 вольт. Конденсатор C6 можно не применять, поставил его просто для надежности. Дроссель в обвязке MC34063 можно использовать другого номинала в разумных пределах. R1, при подключении к источнику напряжения является делителем напряжения, им можно как настраивать цвет по умолчанию от зеленого до красного, так и подстраивать диапазоны напряжения при измерении.

Функционал не большой, но можно найти широкий диапазон применения от декоративного до информативного или просто побаловаться с RGB светодиодами. В зависимости от настроения всегда можно покрутить ручку потенциометра и сменить подсветку по вкусу или приделать к схеме делитель напряжения (или без него) и получится этакий вольтметр, имеющий вместо цифровых показаний цвет, соответствующий определенному напряжению. Ясное дело, такой вольтметр не сгодится для точных измерений, а вот как индикатор нескольких уровней напряжения с плавным изменением цвета между ними вполне не плохо. В конце концов, подавая выпрямленный усиленный звуковой сигнал с микрофона или аудиосистемы, можно получить одноканальную простейшую цветомузыку или индикатор громкости, соответствующей определенному цвету, в конце концов ночник. Схема не имеет сложностей и проста в повторении, отлично подойдет для обучающих целей начинающих радиолюбителей, позволяет проявить фантазию при изготовлении.

Стоит отметить, что в палитре цветов нет желтого и оранжевого. Так сделано, потому, что задумкой было сделать зеленый низкий уровень напряжения на АЦП, а красный - высокий, желтый и оранжевый - это смешение зеленого и красного (это единственная комбинация, не задействованная в устройстве).

Устройство собиралось на макетной плате. Потенциометр соединен с напряжением питания 5 вольт.

К статье прилагается проект протеус (для симуляции может потребоваться мощный ресурс компьютера, иначе будет притормаживать), прошивка для микроконтроллера, макетная печатная плата для attiny13 (15 и так далее с аналогичной распиновкой), на которой собиралось устройство, исходный код (AS4), а также небольшое видео (к сожалению, не удалось передать в нем всю цветовую палитру изменения цвет из-за ограниченности возможностей матрицы камеры, в реальности выглядит более эффектно).

Конфигурация фьюз битов для микроконтроллера attiny13:

Список радиоэлементов

Обозначение Тип Номинал Количество ПримечаниеМагазинМой блокнот
IC1 МК AVR 8-бит
ATtiny13A
1 Поиск в магазине ОтронВ блокнот
IC2 Составной транзистор
ULN2003
1 Поиск в магазине ОтронВ блокнот
IC3 DC/DC импульсный конвертер
MC34063A
1 Поиск в магазине ОтронВ блокнот
VD1 Стабилитрон
BZX55C5V1
1 Поиск в магазине ОтронВ блокнот
VD2 Диод Шоттки
1N5819
1 Поиск в магазине ОтронВ блокнот
R1 Потенциометр10 кОм1 Переменный или подстроечный резисторПоиск в магазине ОтронВ блокнот
R2, R9 Резистор
1.5 кОм
2 Поиск в магазине ОтронВ блокнот
R3 Резистор
10 кОм
1 Поиск в магазине ОтронВ блокнот
R4-R6 Резистор
240 Ом
3 Поиск в магазине ОтронВ блокнот
R7 Резистор
12 кОм
1 Поиск в магазине ОтронВ блокнот
R8 Резистор
1 кОм
1 Поиск в магазине ОтронВ блокнот
R10 Резистор
180 Ом
1 Поиск в магазине ОтронВ блокнот
R11 Резистор
0.25 Ом
1 0.2 - 0.3 Ом, можно подбором нескольких в параллельПоиск в магазине ОтронВ блокнот
C1, C3, C8 Конденсатор100 нФ3 Поиск в магазине ОтронВ блокнот
С2 Конденсатор10 мкФ1 Поиск в магазине ОтронВ блокнот
С4 Конденсатор590 пФ1 Поиск в магазине ОтронВ блокнот
C5, C6 Электролитический конденсатор1000 мкФ2 1 можно не использоватьПоиск в магазине ОтронВ блокнот
С8 Конденсатор100 мкФ1 Поиск в магазине ОтронВ блокнот
L1 Дроссель100 мкГн1 Поиск в магазине ОтронВ блокнот
S1 Тактовая кнопкаTC-A1091 Поиск в магазине ОтронВ блокнот
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

Теги:

Опубликована: 0 4
Я собрал 0 3
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 4.9 Проголосовало: 3 чел.

Комментарии (4) | Я собрал (0) | Подписаться

0

[Автор]
Gauss #
Предлагайте свои варианты применения, как будете использовать
Ответить
0
CRImier #
Спасибо большое за проект!
Я лично возьму этот проект как пример кода для себя. Вполне возможно, что поменяю МК на что-то типа ATtiny 84, сделаю приём данных для ШИМ по последовательному порту и буду использовать как фонарик, контролируемый каким-либо другим устройством.
Ответить
0

[Автор]
Gauss #
Рад, что получилось полезно хоть для одного человека. Получится RGB фонарик? А что, тоже не плохо под настроение или цвет в зависимости от физического процесса - для проявки пленки, например.
Ответить
0
Kamikadze666 #
Приклею РГБ ленту к ресоре своих джамперов, и каким то датчиком (еще не придумал каким) будет отображать её работу (прогиб).
Отредактирован 08.06.2017 17:36
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется сила тока?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Набор для сборки - LED лампа
Набор для сборки - LED лампа
Сатфайндер FM-модуль RDA5807M
вверх