RGB_CMU

 
сделал светомузыку из светодиодной RGB ленты. Убрал вывод на LCD индикатор, вместо него 8 RGB каналов. 
 
Видео зесь, правда звук тихий получился. 
 

 
Аналоговую входную часть оставил как есть, только использовал входы ADC4 и ADC5. 
 
 
Входные цепи в отличии от оригинала немного изменены — конденсаторы на входе АЦП стоят, и сопротивления, чтобы при отсутствии сигнала не наводился фон. Без конденсаторов, со 
средней точкой 2,5в у меня не получилось нормальной работы, каналы засвечивались.
 
На видео не используется восьмой канал, так как изначально я собирался сделать анализ спектра на BA3834, она должна разделять звук на 7 полос по очереди, но результат был плохой, разделение спектра вообще видно не было. Потом я занялся поиском алгоритма Фурье, и начал осваивать для этих целей Bascom, так как только на нём и на ассемблере можно было такое сваять, да ещё к тому же тут был готовый исходник. Тем более asm тяжёл для больших программ, а Bascom мне понравился, всё доступно и просто! До этого я пользовался Flowcode. Но восьмой канал есть в исходнике (на самые верхние частоты), просто у меня светодиодная ленточка отрезана на 7. Когда буду монтировать дома основательно, подключу все 8. Да, ещё забыл сказать, у светодиодной ленточки я просто вырезал края где общая + шинка идёт, и от каждого канала припаял отводы.
 
Исходник хорошо откомментирован, чтобы было понятно что, для чего и откуда.
Основной код по получению замеров АЦП, расчёту Фурье и вычислению уровней каналов оставлен без изменений.
 
Автоматическая регулировка чувствительности программная (меняется множитель на выходе DFT преобразования). 
Прерывания таймера 0 работают на динамическую развёртку каналов светодиодной ленты (предделитель 8). Частота обработки сигнала получается около 200 гц. Цвета 
каналов фиксированые, не придумал ещё как их менять в зависимости от музыки… 
 
Обьясню алгоритм работы АРУ:
Идёт счёт количества каналов где уровень сигнала < 6, когда количество в счётчике превышает 20 идёт увеличение уровня на 0,1 (на 10%)
То же самое на уменьшение, только счёт идёт когда уровень >8.
 
Реализация ШИМ 3Х8:
Шим реализован на подпрограмме обработки прерывания Pwm, которая включается по таймеру TMR0.
Переменная Tik, по которой контролируется ширина импульса ШИМ начинается с 16 и убавляется по началу подпрограммы. Когда Tik = 0, она снова сбрасывается на 16, выключаются 
выхода R,G,B и в порт D передаётся значение переменной Razv (динамическая развёртка по каналам, каналы последовательно переключаются с 1 по 8). 
Когда значение текущей яркости цвета текущего канала (R_out, G_out, B_out) сравнивается с переменной Tik, цветовой выход(R,G,B) отключается.
Резонный вопрос, почему у меня переменная идёт на убывание? Ответ: Если переменную сделать на возрастание, то прийдётся включать выход, а по сравниванию значений выключать. И 
при значении мощности = 0 светодиод будет включен на время нескольких тактов микроконтроллера, а если учесть что используются ещё и другие прерывания то и на большее время. 
Визуально это выглядит как слабое хаотичное мерцание каналов, при уменьшении переменной и включении выхода по сравнению  — такого нет. Я правда подозреваю что мощность будет не 
100%, но визуально это в отличие от мерцания не заметно. Чтобы переключать управление каналами сперва делается развёртка по каналам. Самый простой способ — значение переменной Razv начинается с 1 и умножается на 2 при каждом цикле переменной Tik. По достижению 256 — сбрасывается на 1. в двоичном коде это и получается последовательное переключение каналов порта D. Значение переменной Razv и пересчёт мощности следующих цветовых каналов развёртки происходит при значении переменной Tik = 1. Чтобы когда прийдёт пора переключиться на другой канал (Tik =0) всё было уже посчитано и подпрограмма обработки прерывания Pwm прошла быстрее.
 
 
Как появятся изменения в программе (что нибудь добавлю или усовершенствую) исходник сразу выложу.
 
При повторении с этого исходника всё должно заработать абсолютно сразу. 
 
 
ВЕРСИЯ 2.
 
Выкладываю изменённую версию ЦМУ. 
В архиве схема, исходник и hex.
Видео.
 

 
Как всегда тихий звук, не пишет у меня телефон видео с нормальным звуком. sad(
Вернул на место 10-битные АЦП (ADC0 и ADC1), сделал среднюю точку и доработал польский алгоритм , помог очень MrShilov, спасибо ему! Частотный анализ стал намного лучше!
Место в программе освободил побольше.
 
 
Восьмой канал тоже убрал, не вижу в нём необходимости, под бегущие огни всё равно ресурсов не хватает…
Алгоритм работы АРУ немного поменялся (считается общая мощность по всем 7 каналам, затем сравнивается), исполнительное устройство — полевой транзистор с конденсатором на затворе. Экспериментальным путём подобрал такое время задержки, при котором на любой громкости нет плавания уровня (несколько секунд). Конденсатор либо заряжается (Pinb.4  =1) либо разряжается (Pinb.4 = 0), а если уровень в норме, то Pinb.4  работает как input. В паузе чувствительность повышается ( на Pinb.4. = 1). Полностью независимое от контроллера АРУ делать не стал, потому как сложнее и результат, я думаю, визуально хуже будет.
 
Цветовая гамма каждого канала зависит от переменной cvet, имеется 6 режимов:
1. примерно к-о-ж-з-г-с-ф и сдвиг цвета в каждом канале в зависимости от уровня канала
2. то же самое, только сдвиг больше
3. то же что п.1, только примерно ф-с-г-з-ж-о-к
4. то же что предыдущий, только сдвиг больше
5. все каналы одного цвета, цвет меняется в красную сторону в зависимости от НЧ, в зелёную от СЧ и в синюю от ВЧ, 
всего 4 канала: крайние 1 и 7 — НЧ, 2 и 6 СЧ, 3 и 5 — СЧ2, 4 — ВЧ.
6. Случайный цвет
При включении режим №1, при каждой паузе режим меняется, можно так же кнопкой. 
 
EEPROM пока не использовал. На данный момент занято в Atmega8 96%. Ещё есть небольшие но возможности.
 
В общем я чувствую, что чего то не хватает, и можно сделать покрасивее, но до середины января у меня времени больше не будет, так что пока выкладываю на чём остановился. Буду очень рад советам…
 
 
 
ВЕРСИЯ 2 strobo.
 
Выкладываю изменённую версию ЦМУ — исправлена схема входной части(там, где АРУ), добавлен режим стробоскопа — частота зависит от темпа НЧ. 
В архиве схема, исходник и hex.
 
ВЕРСИЯ 2а strobo+.
Новая прошивка — ШИМ с развёрткой  по цветам. Как я и предполагал, результат просто отличный. Мерцания не заметно вообще, яркость возросла ощутимо.
В архиве исходник и hex.
 
Равчев Николай.
 
От администрации сайта: 
Мы рады, что проект развивается и вы делитесь с обществом. Удачи вам в следующем году и новых успехов в цветомузыкостроении! 
В Новом году нужно Мегу 168 или 328 использовать, без изменения в схеме. Тогда будет где развернуться и можно многое добавить!
 
P.S.
 
Юрис cобрал и запустил RGB цму конструкцию и выслал фотки.
Выходного устройства пока никакого, пробовал по каналам одним RGB светодиодом. 
 
 
 
 
 
По выходным собрал линейку из таких диодов.
 
 
 
 
 
 
 
 
 
 
 
 
 
ВЕРСИЯ 2b strobo+ .
 
 
По просьбе Юриса  доработал немного программу и добавил ещё одну кнопку: в режиме музыки — вкл/выкл авто смены режимов ЦМУ, а в режиме паузы — вкл/выкл еффектов паузы.  Также устранил некорректный вывод красного первого канала. Схема с добавленной кнопкой, исходник и hex в архиве.
 
Появилась печатная плата(проверена!). 
 
 
Элементы подписаны — смотрите всплывающую подсказку. Часть элементов — СМД, просто так было удобнее. Но можно переделать полностью под ДИП, основа есть.
 
08.11.2015
Владислав Ракомин прислал свой вариант платы с мощными транзисторными ключами вместо сборки:
 
 
Схемку с идеально подобранными резисторами выслал, 100 ом на ней — 100% открытие, это максимум ,что можно выжать из ключа по току,но не без плясок с бубном!, базовый резистор рассеивает на себе мощность, короче резистор 1 Вт теплый ,но не критично! Всё работает — ну и слава расчётам! Также греется и стабилизатор, но всё в пределах характеристик! В общем, схема удалась: вешал 5 метров ленты RGB на каждый канал, работает уже сутки без проблем!
 
 
 
От администратора портала:
Как приятно видеть рядом с микроконтроллером транзисторы моей юности — оранжевенькие КТ315!
 
30.12.2015
Владислав Ракомин прислал исправленный исходник, говорит что лучше сделал НЧ и исправил цвета, убрал неудачный стробо режим, по его мнению стало намного лучше.
 

Автор публикации

не в сети 2 дня

Radan

0
Комментарии: 882Публикации: 168Регистрация: 30-11--0001
Опубликовано в
Поделиться

Отправить ответ

111 Комментарий на "RGB_CMU"

Войти с помощью: 
Подписаться на
Сортировать комментарии по:   новые | старые | рейтинг
ra9yvo
Участник

Доброго времени суток, подскажите еще вот что, нарыл 70 штук rgb led 5мм вопрос вот вчем нужно ли токоограничивающий резистор ставить и на сколько,если надо, и еще на видео цвета как бы так пояснить, вобщем я от кроны через резистор запитывал один и видны три точки крамная, синяя, и зелёная, на видео этого не видно, цвета красивые, или это из за моего наглого способа подключения и при вернособраном девайсе все будет гуд? И последнее, почему у светодиодов общий +?я считал что минус должен быть но по схеме тоже +, просто обычно минус общий

ra9yvo
Участник

Добрый день, подскажите, в этом девайсе я могу испольщоватт выводные rgb led 5 мм4 птна, или нужна лента с чипом управления , и можноли атмегу шить в плате или обвязка контролера не даст это сделать и шить надо отдельно?

Elektron76
Участник

Здравствуйте.
Атмегу шить можно с обвязкой, на печатной плате для этого не были предусмотрены штыри, будете подпаиваться сами.
Используйте любые RGB светодиоды (ленты с чипами для этой конструкции не подойдут).

ra9yvo
Участник

Спасибки за ответ и довольно быстрый)))

superman
Участник

День добрый!
Нарисовал прототип платы.
Попытался развести AGND и DGND по феньшую biggrin
Но меня терзают смутные сомнения……
Стоит ли в месте отмеченном стрелкой делать разрыв ?

comment image

superman
Участник

Мне понравился ваш вариант, разрыв лучше сделайте. Ключи на RGB выходы у вас n-канальные, всё верно, а 7 других ключей на каналы у вас p-канальные? какие нибудь IRF93..?  Просто если такие же, то греться будут.
Ну как соберёте отпишитесь как работает, я думаю многим интересно будет.

superman
Участник

Спасибо за совет!
Ключи планировались IRF8788 и IRF9310.
Но возможно будут более высоковольтные.
Опытным путем выяснил что лента работающая на отражение
должна иметь 10Вт на цвет на канал. Думаю использовать
диоды 30Вт.
Вот предрелизный вариант платы для ленты smile

comment image

mihej2005
Участник

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

Александр
Гость

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

AkellaRu
Участник

и еще доработка таки на базе 7 каналов да? автор исходника решил не возвращать 8-й канал в прошивку?

AkellaRu
Участник
Добрый день. Сразу хочу сказать огромное пасибо за труд в реализации и чертеже платы для этого дивного девайса без TD62783AFG с использованием транзисторов, скажите теперь можно на каждый канал посадить 10 светодиодов каждый по 15-20 mA в сумме выходит 200 mA по даташиту кт 818, те что автор использовал вроде как с запасом позволяют такую нагрузку, ведь верно??? В общем вопросы такие могу ли я использовать указанные транзисторы выведя их проводами дабы закрепить на радиатор вещественно провода не по метру а как можно короче (речь о силовых транзисторах кт 818) это помех не даст в работу устройства и какая максимальная… Читать далее »
superman
Участник

Здравствуйте уважаемые пользователи этого замечательного портала!
Хочу повторить эту ЦМУ. Но поскольку я начинающий, возник вопрос по программатору.
Нашел на Али комплект. Может программировать ATMega8 и ATMega32.
Но меня терзают смутные сомнения относительно ATMega8.
К сожалению я не могу вставить картинку. Поэтому оставлю ссылку.
Не сочтите за рекламу.
https://goo.gl/LQFTHN

vinserg40688
Участник

Здравствуйте! Нужна помощь: напруга на светодиод максимум 8.5 вольта, соответственно через резистор максимум 1.2-1.5 вольта из нужных 2.6-3.2вольта??? Установка собрана с иловыми ключами…

Juris_3D
Участник

Доброе всем! smile Тута старый фанатик Юрис. Долгое время после финализации эпопеи с модифицированным "Lichtorgel" и изготовлением комбо (Lichtorgel/Аврора-1) устройства "D.E.C.O.R.", но вот опять потянуло wink
Короткий отчёт по последнеи модификации данной RGB светомузыки: работает 😉
Взял со шкафа, перешил новой прошивкой — мигает не плохо. Правда, после достигнутого перфекционизма в модифицированном "Lichtorgel" (спасибо Сергею Овечкину) другим частотно-канальным цветомузыкам не прото казатся достойными. Но, цветомузыка описанная сдесь у меня всегда была в категории "временами отложу в сторонку, но разбирать не буду". Спасибо Автору и теперь также со-авторам.

volkidze_2008
Участник

Добрый день! Собрал я данный девайс, установил последнюю прошивку! И у меня проблема все каналы мигают сами по себе без музыки. Менял микросхемы, пробовал другую прошивку, эффект тот же, каналы моргают без музыки… Моргают даже при отсутствии микросхемы LM324 в гнезде. Фьюзы поставил такие же как на авроре-RGB
(LOW-FF, HIGH-C1, LOCK-FF) прошивал myAVR ProgTool V1.39 Без лмки просто переливается всеми цветами радуги.
Прошивка самая последняя от Александра Ракомина. Люди помогите!!! я уже голову сломал!!!!
surprised surprised surprised surprised surprised surprised surprised surprised surprised

w-rakomin
Участник

Шьёте Mega8?

volkidze_2008
Участник

Шью atmega8-16pu. Программатор Usbasp s51

w-rakomin
Участник

Приобретайте Mega 328P.Будете приятно удивлены! smile

vinserg40688
Участник

Здравствуйте, подскажите какой блок питания нужен под етот контроллер, если оставить 6 активных каналов, и на каждый поставить по 6 светодиодов (rgb 3Вт 750mA 12Вт)…имеется ввиду сколько Ампер и сколько Ват? Заранее благодарен..

w-rakomin
Участник

Приобретайте блок питания в соответствии с реальными данным по нагрузке ,всегда нужно измерять ,что подключаете, не верьте паспортам на RGB ленты они не совпадают с реалью.А лучше не мучится и приобрести БП 12 вольт 10 ампер,дорого но оно того стоит!

w-rakomin
Участник

И ещё вопрос!Может не заморачиваться с транзисторной заменой,а ограничить ток в ленте поставив мощные резисторы в цепи RGB?Ну сократить ток в два раза?Сильно скажется на свечении светодиодов?

w-rakomin
Участник

Начал ковырять даташит ULN2981A и понял,что много на неё не повесить! Т.е. 21 светодиод на канал не получится!500mA ,я понял, можно используя всего один канал! При семи( учитывая скважность 37% ) получается 185mA на канал .Правильно ли я понял?Если правильно,то пожалуйста дайте схему замены драйвера с номиналами транзисторов…Обидно,но уже всё спаял.Можно ли оставить драйвер в схеме,а от него сигнал отправить на более мощные транзисторные ключи?

w-rakomin
Участник

Вопрос по RGB ленте….Как лучше подключить RGB ленту при использовании драйвера UDN2981A.Лента SMD 5050 60 LED. Принял решение по длине 2450 мм ,так получилось ,-необходимо сделать.(на канал 350 мм или 21 светодиод ,режим STROBO использовать не буду),получается 420 mA на канал,в даташите рекомендуют максимальный ток 350 mA, а пиковый указан как 500 mA?.Стоит ли поставить дополнительные сопротивления по 20 Ом 0,5 Вт на аноды светодиодов?Или в режиме светомузыки драйвер выдержит?Не перестраховываюсь ли я?

AkellaRu
Участник
Добрый день. Уважаемый 21 defaultNick, не сочтите за наглость, а Вы не могли бы подсказать а лучше помочь с моей мыслью вот в то что есть добавить индикацию столбиком? и таким образом получится что не просто цвета шкалы которых будет 8, переливаются разными цветами а и так что чем интенсивней трек, и те или инные частоты в треке тем выше столбец как в индикаторах уровня звука а и при ток как столбей с 1- 8 выше плавно меняется цвет столбца. матрица из RGB LED плпнирую 8х8 или в высоту взять 10 а в ширену (по горизонту ) уже готовые 8… Читать далее »
Александр
Гость

Да вот еще не спросил у меня оказалось не просто достать по магазинам микруху IC1 TD6278AFG а через нет заказать дороговатенько получается, вопрос чем можно заменить этот 8-ми канальный драйвер? можноли вместо него поставить теже ключи из полевиков? да больше деталей получится ну а что делать, и главное если ставить то работоспособность не ухудшится? спрашиваю так как не спроста выбор пал на тдшку?!

Александр
Гость
доброго времени суток. сперва хочу обратится к 2 Elektron76 — если Вы обратитесь к хирургу чтоб тот вырезал опендекс а он скажет в нете вся инфа есть, в этом нет ничего сложного заодно будите сильны в хирургии, то Вам как такой ответ? раз обратился человек к специалистам то наверно не просто так, и сам уже пробовал. Вобщем люди вопрос актуален кто может помочь скомбинировать те эффекты что есть и при этом добавитьзагорание шкалой тоже поставив зависимость от уровня звука и интенсивности трека, то прошу помочь. Еще к автору обращаюсь — при всем уважении к Вам спрошу — то в схеме… Читать далее »
superman
Участник
Извините если обидел, виноват, обьясню подробнее. В своё время я тоже коснулся того, что под мои нужды оказывается нет готовых устройств, а в программировании был так же "не силён". Начал пробовать, понял сколько это занимает времени и понял что никто на меня его столько не потратит (хотя затраченное время конечно зависит от опыта), вот и научился потихоньку. Исходник я специально прикладываю чтобы не было у желающих что то изменить зависимости от автора. Но если у вас нет желания или времени осваивать эту область то это другое дело. Тогда давайте действовать по другому: Опишите подробно желаемую вами конструкцию по режимам работы,… Читать далее »
Александр
Гость

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

superman
Участник

То, что вы хотите однозначно не будет маленькой схемой с одним микроконтроллером. Но если уж делать столько каналов, то и режимов должно быть много. Я пока не готов поддержать. Да и насчёт управления с компа это больше к Василию. А в перспективе я сам такие цветные столбики хотел как один из режимов.

Александр
Гость

нус будим надеятся хоть без управления с компа выйдет реализовать, может и я все же что то дополнительно освою, хотя сложно это когда спросить то особо неукого и посоветоватся нескем, но Вы вот отвечаете и за это Вам спасибо smile просьба если можно в финальную версию прошивки добавить обратно 8 канал будет на каждом канале по 8 светодиодов, повешу самые малые что найду чтоб микруха потянула smile

AkellaRu
Участник

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

superman
Участник

Смысл в том что изначально рассчитано под ленту и ключи должны выдать по каналам 12 вольт, атмега может выдать только 5. Если поставите самые обычные светодиоды (15 mA) то можно напрямую на атмегу, надеюсь понимаете что через резисторы…

tplspecial
Участник

Большое спасибо Автору и админу за помощь в изготовлении данной конструкции. Общими усилиями удалось запустить эту "Красоту". Мне очень нравиться работа этого девайса. Надеюсь на продолжении проекта..

Juris_3D
Участник

Я рад за Вашу радость! smile Успехов Вам в дальнейшем творчестве!

tplspecial
Участник

Здравствуйте Николай! Сделал твою RGB ЦМУ, но вот только мигают все каналы одинаково и в такт и по цветам.Пересмотрел плату вроде все правильно.Думаю что это связано с программированием контроллера,не знаю какие выставлять фюзы. Где то подсмотрел в других цму и не уверен что правильно. Помогите запустить ваше детище, очень хочу созерцать красоту… Благодарю .

superman
Участник

Попробуйте так.А напрямую ULN2803 не подходит.

Nikolay2305
Участник

Здравствуйте, уважаемые автор и радиолюбители! Нужна Ваша помощь. Спаяли цветомузыку, по последней схеме. Когда я прошивал Atmega8, то фьюзы оставил заводские. Когда подключили, то цветомузыка мигает с заторможенностью. Возможно, это из-за фьюзов (скорее всего внутренний генератор с маленькой частотой, на кварце нет генерации вообще). Покажите, пожалуйста, какие должны быть фьюзы для последней схемы.

koka45565
Участник

А в последней версии исходника возможно вернуть назад 8 канал?

AkellaRu
Участник

Кто нить откликнитесь пожалуйста, оч хочу данную конструкцию повторить но чтоб был режим обычного анализатора спектра, чтоб тоже столбики RGB диодов светились разными цветами , но как реализовать незнаю подскажите. думал на выходе LM-ку повесить, подумал еще раз, не вариант а в программировании не силен. моя почта xxl85@list.ru зарание огромное спасибо

Elektron76
Участник

Исходники есть на bascom, вам осталось только приложить немного усилий по доработке под ваши цели, Бейсик лёгкий язык. Заодно будете "в программировании сильны" smile

tplspecial
Участник

Здравствуйте! Подскажите как подключить RGB ленту к ULN2803.Я правильно делал + каждой ленты на выводы 11-18 микросхемы. Почему то сгорела. Спасибо.

ra9yvo
Участник

А еще, на плате в лайауте в ключах все резисторы 10 колоОм, на схеме выше на базе 315 1 килоОм на коллектор-315база818 100Ом и Змитер-база 818 1 килоОм, какие всеже номиналы нужны? Из всей переписки я, если все верно, понял что 100 Омовый резистор в ключе стоит и как было сказано, подобран эксперементальным путем….

Elektron76
Участник

Ориентируйтесь по номиналам на схему. У RGB светодиодов как правило общий +. Токоограничивающие резисторы нужны обязательно, номинал подбирайте из расчёта чтобы ток одного цвета светодиода был 15-20 mA. В вашем случае лучше питать светодиоды от 5в (вместо 12 как на схеме), то есть на микросхемы ключей будет подключено питание 5 вольт.