Понедельник, 20.11.2017, 14:41
Приветствую Вас Гость

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

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

Онлайн всего: 5
Гостей: 5
Пользователей: 0
Форма входа
Главная » Статьи » Декоративные

Автомат световых эффектов 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
Просмотров: 14467 | Комментарии: 36
Всего комментариев: 361 2 »
36  
Всем привет, Я использую AVRDUDE PROG кто нибудь может сказать какие фьюзы пометить. Спасибо.

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-26 27-27
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
YOUTUBE LIGHTPORTAL
ALIEXPRESS
Поиск
Translation
Donate
QR
Часики
 
Облако тегов
Друзья сайта