Четверг, 08.12.2016, 12:50
Приветствую Вас Гость

Портал светоэффектов

Меню сайта
Категории раздела
Наш опрос
Оцените мой сайт
Всего ответов: 580
Статистика

Онлайн всего: 3
Гостей: 2
Пользователей: 1
ivan-bezh
Форма входа
Главная » Статьи » Декоративные

Автомат световых эффектов RGB 24 канала
Радиолюбитель сродни художнику - есть настроение творит, а если нет его, то и припой на паяльник даже не хочет липнуть… В такие моменты я, как и всегда прошу мою Музу, любимую Жену, подкинуть идею, сделать, так сказать, заказ какой-нибудь. "Слушай, - говорит, ведь у нас ночника нету. Хочу, чтоб светился моим любимым цветом – бирюзовым. И успокаивающими волнами-переливами разноцветными еще можно". Заказ принят!..  
И вот, в один из свободных вечеров в очередном порыве выискать на интернет-просторах чё-нибудь такое-эдакое мигающее и красивое, да чтоб еще и на контроллере, и конечно разноцветное, попал на http://lightportal.at.ua. Тут глаза и разбежались… Ну, конечно-же, моментально собрал "СОЮЗ-1". Затем пришелся по душе проект  "Светодиодный диммер".
Все собранные мною до сих пор схемы с применением микроконтроллеров Atmel (ну не люблю я PIC-и, и всё тут!) сводились к повторению уже существующих. Приходилось только немного подправлять имеющиеся исходники, которые были написаны на разных языках программирования. Но недавно я познакомился с простым языком, именуемым BASCOM.  Знакомство началось здесь со статьи  "Лабораторный блок питания с управлением от микроконтроллера". Немногим более 10 лет назад на мою долю приходилось прекрасное студенческое время, где на одном из курсов нам преподавали BASIC.  Поэтому В процессе решения поставленной мне задачки (мною же и поставленной :-)) оказалось, что BASCOM-AVR  для меня немного знаком. Так вот, от диммера хотелось большего. Сначала думал как обычно, там поправить, здесь что-то изменить. Но чем больше правил, тем больше запутывался. Поэтому решил начать сначала. Скелетом для написания первой собственной программы на языке BASCOM послужил исходник из вышеупомянутой статьи  "Светодиодный диммер".  Посидев месячишко вечерами с BASCOM-ом вырисовалось следующее устройство.

24 канальный автомат световых эффектов на RGB-светодиодах и микроконтроллере Atmega16.







Схема простая, я даже печатку не травил. Мозги устройства собраны на макетке "в дырочку". К выходам портов A, B и C подключены входы 3-х микросхем ULN2803, к которым, в свою очередь, подключены аноды светодиодов. Яркость свечения каждого из 24 каналов задается программным ШИМ-ом, 16 градаций яркости. Катоды каждого цвета соединены в 3 группы и получают питание от P-канальных полевиков, управляемых аппаратным ШИМ-ом с портов D.4, D.5 и D.6 через примитивные драйверы на КТ315 транзисторах, 32 градации яркости.





Для управления устройством поставил 4 кнопки, повесив их через диоды на порт D.3. По низкому порогу на нем, срабатывает прерывание и переход на программу обработки прерываний от кнопок. Это сделано для того, чтобы при нажатии на любую из кнопок наступала моментальная реакция, не ожидая в цикле конца массива с эффектом.
Управляется так: 

при зажатой S1, тремя остальными выбирается яркость цвета, т.е. производится управление аппаратным ШИМ,- (S2-красного, S3-зеленого, S4-синего). Интенсивность каждого цвета изменяется от нулевого значения до максимального, затем в обратную сторону, с паузами в точках экстремума. Так мне показалось удобней. Информация о яркости записывается в Eeprom для каждого цвета, каждого из эффектов;
удержанием S2 выбирается скорость каждого эффекта, которая также записывается в Eeprom тоже для каждого из эффектов. Для визуализации изменения скорости предусмотрен отдельный массив Speders1. При выборе скорости не всегда удавалось визуально наблюдать ее изменение, т.к. при этом приостанавливается основной цикл и может оказаться, что все каналы погашены. Поэтому я специально зажег три канала, по интенсивности свечения которых можно наблюдать изменение скорости. 
   While Pind.1 = 0                ' пока удерживается кнопка S2
   Portb = &B0000001 
   Porta = &B0001000
   Portc = &B0000001;
S3 переключает эффекты по кругу, а ее длительное удержание включает автоматический перебор эффектов в цикле от первого до последнего. Последний выбранный номер эффекта записывается в EEPROM, если же был выбран режим «авто», то при включении устройство стартует с режима «авто»;
S4 –переключает цветовые режимы по кругу:
1.Цвет, установленный пользователем. 
2.Плавная смена цвета в пределах спектра, выбранного в 1-м режиме. Допустим, если был выбран малиновый (R-100%, G-0%, B-100%), то цвет меняется от синего к красному со всеми возможными их совместными комбинациями без участия зеленого.
3.Быстрая смена цвета в пределах спектра, выбранного в 1-м режиме.   
4.Плавная смена цвета по кругу (полный непрерывный спектр). 
6.Быстрая смена цвета по кругу (полный непрерывный спектр). 
7.Возврат к п.1
Выбранный цвет или цветовой режим также записывается в EEPROM.

В принципе, исходник постарался прокомментировать более-мение детально, так что должно быть все понятно. Но немного поясню.
В основном цикле программы можно было бы для красивого структурирования использовать переходы в отдельный массив для каждого из эффектов, но так программа занимала больше памяти. Поэтому я использовал общий массив для всех эффектов с вычислением начальной ячейки чтения яркостей эффекта как у автора диммера:
     Eff = Effect - 3      ' здесь -3 это 3 программных эффекта
     N = Eff * 24
     N = N - 24
Для построения интересного эффекта "набегающие волны", также использовал исходник "Светодиодной снежинки"
При таком расположении яркостей в массиве Pwm_rnd, получается плавный псевдо-случайный перелив всех 24 светодиодов.
При построении эффекта «Мерцающие звезды» использована функция Rnd( ), благодаря которой получен эффект случайных вспышек всех 24 каналов. А если еще и активирован режим непрерывного спектра, то выглядит это очень красиво. 
В память контроллера удалось поместить 16 табличных эффектов. EEPROM для хранения эффектов не подходила, ввиду малого объема, а для записи режимов – в самый раз. Разобраться с командами для работы с EEPROM было удивительно просто. Из нескольких вариантов команд подошел такой:
Writeeeprom S , Effect
В программе это работает так. Допустим, если сейчас мы изменяем скорость S для 5-го эффекта (Effect=5), то после отпускания кнопки S2 значение S запишится в 5-й байт EEPROM.
Readeeprom S , Effect
- Считать значение скорости для 5-го еффекта.
Вообще в BASCOM-AVR очень обширный HELP со множеством примеров
Прошивать контроллер нужно файлом final.hex, установив фъюзы на тактирование от внешнего кварца на 16МГц. Я поставил кварцевый резонатор на 20МГц специально, так мерцание диодов при работе ШИМ-ов не заметно вовсе.
При первом запуске все будет работать, но в EEPROM будут нули. После перебора и настройки параметров скорости и цветового оформления всех эффектов, эти параметры сохранятся в память контроллера.   
Сначала написания программы усиленно использовался PROTEUS, но когда количество каналов возросло до 24, он начал сильно тормозить. В момент, когда я задействовал аппаратный ШИМ, PROTEUS вообще помер… Пришлось сваять макет, и отлаживать дальше на нем. Поэтому за время написания программы счетчик количества программирований моей Atmega16 перевалил за 1000…






Видео с интересным эффектом при съёмке. Видна работа ШИМ в развёртке.


Да прибудет ваша Муза с Вами!
Творческих успехов!

Автор: vitalkalm - Дёгтев Виталий 
vitalkalm@mail.ru 

Категория: Декоративные | Добавил: defaultNick (20.04.2012) | Автор: Radan
Просмотров: 13265 | Комментарии: 35
Всего комментариев: 35
31  
Кто собрал этот автомат,схема рабочая?.А то я не могу понять в статье написано К выходам портов A, B и C подключены входы 3-х микросхем ULN2803, к которым, в свою очередь, подключены аноды светодиодов.ULN2803 управляет катодами а не анодами значит светики должны бить с общим катодом а по схеме они с общим анодом. Катоды каждого цвета соединены в 3 группы и получают питание от P-канальных полевиков, управляемых аппаратным ШИМ-ом с портов D.4, D.5 и D.6 через примитивные драйверы на КТ315 транзисторах, значит на каналы RGB приходит +12в.Мне кажется здесь что то напутано,я согласен если светодиод с общим катодом тогда да.Может я ошибаюсь,поправте если неправ

0
32  
Естественно, светодиоды должны быть с общим катодом.

33  
тогда в схеме исправить ошибку тут светодиоды с общим анодом.Я вытравил плату собрал все,сорвал с ленты светодиоды и на тебе .есть такой вопрос,что править в исходниках чтобы все не переделывать и сделать на светики с общим анодом sad

0
34  
Для светиков с общим анодом придётся менять 2803 на верхние драйверы, полевики тоже на обратные... Ну и код нужно смотреть...
з.ы. я не автор.

35  
спасибо за совет,попытаюсь покопаться в коде.Опять танцы с бубном, говорили мне сначала посмотри по схеме будет работать или нет опять поспешил и все коту под хвост и текстолит и фоторезист и время.Или же покупать светодиоды sad

30  
Если у кого есть подправленная прошивка выложите ,пожалуйста.

29  
какие полевики?

28  
Наконец-то довел до состояния идеальной работыю Автору спасибо за прекрасный автомат световых эффектов. Прекрасная штука. Пришлось правда поменять пару параметров в исходнике и перекомпилировать исходник. Все работает прекрасно. Так же как на демо. Спасибо за проект.

27  
В Hex файле мне кажется что-то не то. По крайней мере в исходнике значения задержки для регулировки скоростей Speeders есть два значения 180 и 256, которым в Hex-файле соответствуют значения В5 и 00, а 180 это B4h, а 256 это уже 100h. Перебор цветов спектра тоже не получается. Получается малиново-бирюзовый. Зеленый и синий полностью не убираются. Что-то с константами в Hex файле.

26  
Виталий, при выставлении цветов при нажатой S1 красный убыраеься до нуля, синий и зеленый не до конца. С выходов 18,19 кнтроллера все-таки ШИМ проходит. По исходнику подпрограммы выставления цветов одинаковы. Почему так?

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

24  
Повторил схему, проект интересный. С выставлением скоростей проблема. Скорость регулирется только вперед. И непонятно, когда нужно остановиться при выставлении скорости. Цвета -в основном оттенки бирюзово-малиновые. Чистых нет. Я взял RGB входа на светодиоды и подсоединил к выходу RGB диммера (схема Носова). Получилось очень эффектно. Действительно полный спектр всех цветов радуги.

22  
Почему использованы стабилитроны D1-D4 (1N4115) именно на 22 вольта
Можно ли заменить обычными диодами, например 1N4148 ?

23  

Цитата
Можно ли заменить обычными диодами, например 1N4148 ?
Именно!

20  
Скажите ,а прошивка для 32 меги подойдёт? Если нет ,то можете выложить . Спасибо !

21  
Исходник перекомпилировать можно и под 32 мегу. Все выложено.

19  
Вылезла надпись, что это сайт атакует компьютеры. Не буду туда заходить. Но за помощь в любом случае благодарю!

17  
Спасибо! Ну, может, еще кто-либо сможет помочь.

18  
Попробуйте http://fusecalc.mirmk.net/
Там только последовательное программирование нужно сделать активным.
Старший байт должен быть DF, а младший - FF

15  
Спасибо! А про фьюзы скажите, пожалуйста!

16  
У меня нет CodeVisionAVR sad

13  
И еще пара уточнений, пожалуйста!
С1, С2 - это 20 пф?
С3, С4, С5 - это 0.1мкф? Неполярные?

Спасибо!

14  
Да, всё верно.

12  
Подскажите, пожалуйста, начинающему! Как нужно выставить фьюзы для этого приборчика в программе CodeVisionAVR? Никак толком не могу разобраться. Спасибо заранее!

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

10  
12 в стабилизированное надо? а можно без него обойтись?

9  
Решил собрать схемку, но переделав плату. И появился вопрос: на светодиодны какое напряжение идет, 12-5=7В?

8  
Пожалуй, себя процитирую, в статье полное описание.
"...Прошивать контроллер нужно файлом final.hex, установив фъюзы на тактирование от внешнего кварца на 16МГц. Я поставил кварцевый резонатор на 20МГц специально, так мерцание диодов при работе ШИМ-ов не заметно вовсе..."

7  
8 МГЦ, в исходниках смотри

6  
Кварц на сколько мегагерц ???

5  
А что за трек играет в видеоролике???
раскошелюсь куплю ленточку и мегу !!!
Зачетно!!!

4  
А зачем переписывать? Используй любой один цветовой канал.

3  
А можно перепистать программу просто под белые светодиоды?
Если не трудно

2  
В статье о полярности подключения светодиодов написано правильно , подключены входы 3-х микросхем ULN2803, к которым, в свою очередь, подключены аноды светодиодов.Большие Спасибы Автору.

1  
Пока не собирал, но выглядит достойно проработанная вещь, отличная статья! Большие Спасибы Автору. Я, конечно, как неизлечимо преданный поклонник Цветомузык, попытался бы добавить реакцию от звука, изменение скорости от уровня сигнала или как-то ещё. Если бы умел smile

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
YOUTUBE LIGHTPORTAL
ALIEXPRESS
Поиск
Translation
Donate
QR
Часики
 
Облако тегов
Друзья сайта
Портал светоэффектов
Catcatcat Electronics
Color Music Beniamina Grinberg