Цветомузыка на микроконтроллере. «Привет паяльник!» или «светодинамическая установка на микроконтроллере AVR»

Cветомузыка на контроллере atmega8, привлекла внимание своей простотой в изготовлении. При повторении схемы не было необходимости рассчитывать фильтры, настраивать их. Зависимости в громкости почти нет, и самое главное - плавное включение ламп (LED диодов), это было немаловажно, так как простое мигание быстро надоедает.

Схема светомузыки на микроконтроллере достаточно простая, входной сигнал с обоих каналов смешивается и усиливается операционным усилителем LM358, далее он поступает на контроллер семейства AVR "Atmega8", где програмно делится на каналы.

Как видно по схеме, светомузыка имеет 6 каналов (по два кананал на три основных (сч, вч, нч), к ним идут ключи на BC639, которые позволяют подключить на каждый канал до 20 ультраярких светодиодов.


В хорошем качестве (в формате sPlan), находится в архиве. Питанием служит небольшой трансформатор на ток, который зависит от типа используемых светодиодов.


Вполне допустимо взять отдельные мощные светодиоды или даже целые куски свтодиодных RGB лент. Тогда эффект станет ещё интереснее. Только не забываем увеличивать площадь радиаторов транзисторов выходных ключей, ведь 1 метр светодиодной ленты может потреблять ток до 3А!

Для микроконтроллера качаем тут. А фьюз-биты при прошивке показаны на картинке:

Устройство собранно в небольшом металлическом корпусе от спутникового тюнера. На передней панели кнопка включения сети и контрольные светодиоды, а на задней части корпуса размещены гнёзда для подключения светодиодов, регулятор чувствительности на звук и аудиовходы. Автор статьи: MAXIMUS.

Дополнительно

  • В: Купил ленту, на ней контакты G, R, B, 12. Как подключить?
    О: Это не та лента, можешь выкинуть

    В: Прошивка загружается, но выползает рыжими буквами ошибка “Pragma message….”
    О: Это не ошибка, а информация о версии библиотеки

    В: Что делать, чтобы подключить ленту своей длины?
    О: Посчитать количество светодиодов, перед загрузкой прошивки изменить самую первую в скетче настройку NUM_LEDS (по умолчанию стоит 120, заменить на своё). Да, просто заменить и всё!!!

    В: Сколько светодиодов поддерживает система?
    О: Версия 1.1: максимум 450 штук, версия 2.0: 350 штук

    В: Как увеличить это количество?
    О: Варианта два: оптимизировать код, взять другую библиотеку для ленты (но придётся переписать часть). Либо взять Arduino MEGA, у неё больше памяти.

    В: Какой конденсатор ставить на питание ленты?
    О: Электролитический. Напряжение 6.3 Вольт минимум (можно больше, но сам кондер будет крупнее). Ёмкость – минимум 1000 мкФ, а так чем больше тем лучше.

    В: Как проверить ленту без Arduino? Горит ли лента без Arduino?
    О: Адресная лента управляется по спец протоколу и работает ТОЛЬКО при подключении к драйверу (микроконтроллеру)

  • МОЖНО СОБРАТЬ СХЕМУ БЕЗ ПОТЕНЦИОМЕТРА! Для этого параметру POTENT (в скетче в блоке настроек в настройках сигнала) присваиваем 0. Будет задействован внутренний опорный источник опорного напряжения 1.1 Вольт. Но он будет работать не с любой громкостью! Для корректной работы системы нужно будет подобрать громкость входящего аудио сигнала так, чтобы всё было красиво, используя предыдущие два пункта по настройке.

  • Версию 2.0 и выше можно использовать БЕЗ ИК ПУЛЬТА, режимы переключаются кнопкой, всё остальное настраивается вручную перед загрузкой прошивки.

  • Как настроить другой пульт?
    У других пультов кнопки имеют другой код, для определения кода кнопок используйте скетч IR_test (версии 2.0-2.4) или IRtest_2.0 (для версий 2.5+), есть в архиве проекта. Скетч шлёт в монитор порта коды нажатых кнопок. Далее в основном скетче в секции для разработчиков есть блок дефайнов для кнопок пульта, просто измените коды на свои. Можно сделать калибровку пульта, но честно уже совсем лень.

  • Как сделать два столбика громкости по каналам?
    Для этого вовсе необязательно переписывать прошивку, достаточно разрезать длинный кусок ленты на два коротких и восстановить нарушенные электрические связи тремя проводами (GND, 5V, DO-DI). Лента продолжит работать, как одно целое, но теперь у вас есть два куска. Само собой, аудио-штекер должен быть подключен тремя проводами, а в настройках отключен моно режим (MONO 0), а количество светодиодов должно быть равно суммарному количеству на двух отрезках.
    P.S. Посмотри первую схему в схемах!

  • Как сбросить настройки, которые хранятся в памяти?
    Если вы доигрались с настройками и что то пошло не так, можно сбросить настройки на “заводские”. Начиная с версии 2.4 есть настройка RESET_SETTINGS , ставите её 1, прошиваетесь, ставите 0 и снова прошиваетесь. В память будут записаны настройки из скетча. Если вы на 2.3, то смело обновляйте до 2.4, версии отличаются только новой настройкой, которая никак не повлияет на работу системы. В версии 2.9 появилась настройка SETTINGS_LOG , которая выводит в порт значения хранящихся в памяти настроек. Так, для отладки и понимания.

Схема цветомузыки на 6 каналов на микроконтроллере Atmega8 довольно простая, и содержит минимальный набор радиодеталей. Данное устройство можно подключить к линейному выходу компьютера, плеера, радио. Усиление входного сигнала происходит за счет операционного усилителя LM358, далее сигнал обрабатывает микроконтроллер и поступает на транзисторные ключи.
Уровень входящего сигнала регулируется потенциометром на входе в устройство. Для самостоятельного изготовления можно использовать микросхему в DIP корпусе ATmega8-16PU PDIP28

Cхема цветомузыки на Atmega8

Рисунок печатной платы - цветомузыка на микроконтроллере Atmega8

Фото готового устройства - цветомузыка на микроконтроллере Atmega8

Разъемы на плате:
J1 - При использовании источника питания с напряжением выше 5 вольт (5-30 вольт). Имеет защиту от неправильной полярности питания. Необходимо использовать только один из разъемов питания в зависимости от вашего источника питания!
J2 - При использовании источника питания с напряжением =5 вольт (4.5-5.5v), используется к примеру для питания цветомузыки от трех батареек 1.5v. Имеет защиту от неправильной полярности питания.
J3 - Линейный вход сигнала, источником может быть любое устройство с линейным выходом (mp3 плеер, компьютер, радио и т.п.), возможность использовать как моно так и стерео источники.
J4 - Разъем для подключения потенциометра (номиналом 10-100 КоМ). Используется в качестве регулировки уровня входящего сигнала. При необходимости заменяется перемычкой.
J5 - Разъемы для подключения оптосимисторов или мощных транзисторных ключей, для связи цветомузыки с более мощными лампами или светодиодами.
Для изготовления устройства цветомузыка на микроконтроллере вы можете скачать

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

Первая схема цветомузыкальной установки настолько проста, что ее можно спаять начинающему радиолюбителю за 5 минут. Конструкция позволяет получать цветные вспышки в такт с звучащей музыкой. Нам потребуется транзистор, резистор, и светодиод, а также источник питания на 9В.

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


Схема состоит из трех каналов и предусилителя. Звук идет с линейного выхода на трансформатор, который необходим для усиления и гальванической развязки. Можно обойтись и без трансформатора, если уровня входного сигнала достаточно для мигания светодиодов. Сопротивлениями R4-R6 регулируется длительность вспышек светодиодов. Фильтры настроены на свою полосу пропускания звуковых частот. Низкочастотный - пропускает частоту до 300Гц, среднечастотный - 300-6000Гц, высокочастотный – от 6000Гц. Транзисторы можно взять практически любые, с коэффициентом передачи тока от 50, например КТ3102.

Основа конструкции МК PIC12F629. Он управляет тремя биполярными транзисторами BC547(NPN 45в 100mA), по принципу включения /отключения, т.е работают в ключевом режиме. А уж эти ключи управляют RGB светодиодной лентой на 12в в легковом автомобиле, причем каждый только своим цветом.

МК запрограммирован на смену цвета при поступлении логической единицы на входе PIN_A5. Микрофон усиливает сигнал через транзисторы VT1 и VT5 и соединяется с PIN_A5. Микрофон располагают в близи источника звука. RGB ленту крепят в светильниках салона. PIC стартует с белого цвета и варьирует 7 цветовых оттенков. Если необходимо управлять значительно более мощной нагрузкой, то можно использовать транзисторы IRF44Z (50в 55А) или IRF1407(75в 130А). При сборке не забывайте, что у разных микрофонов, абсолютно разная чувствительность


Архив с прошивкой и исходником программы для МК можете взять по ссылке выше.

Схема данной конструкции с оригинальными световыми эффектами достаточно проста и надежна. Основным элементом устройства является микроконтроллер PIC12F629. Управление изменение уровня яркости светодиодов радиолюбительской разработки происходит за счет широтной импульсной модуляции. Управляющие коды с микроконтроллера PIC12f629 попадают на транзисторы VT1 – VT3.

Эти транзисторы в случае дефицита, можно заменить на КТ3102А, КТ373. сопротивления R1-R3 предназначены для токоограничения и защиты светодиодов. Стабилизатор выполненный на микросхеме 78L05 и емкости С1, C2 выдают стабилизированные 5В напряжение для питания микроконтроллера PIC12f629, а питание светодиодов происходит от .


Так как в конструкции использованы RGB светодиоды, свечение каждого из них контролируется при помощи ШИМ. Это дает возможность увидеть множество различных цветовых эффектов: получение разнообразных цветовых оттенков, вариирование интенсивности свечения, скорости изменения и т.п.

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

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

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

Архив с прошивкой микроконтроллера можно скачать по зеленой стрелочке чуть выше.

Рассмотрена схема программатора и его ПО

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

Прошивка микроконтроллера считает входные импульсы за определённые временные интервалы и в зависимости от их частоты повторения задает высокие логические уровни на соответствующих выходах МК: 100...300 Гц - РВ1 (красные светодиоды), 300...700 Гц - PB0 (жёлтые), 700...1500 Гц - РВ4 (зелёные), 1500...10000 Гц - РВЗ (синие).

Питающее напряжение от 7 до 12 В поступает на контакты 1 (+) и 2 (-) винтовой колодки ХТ1. До уровня 5 В, требуемых для питания МК и ОУ, его понижает интегральный стабилизатор на микросхеме DA2. Сопротивления R9 - R12 ограничивают нагрузочный ток выходов МК.


Прошивка МК, подробности сборки и чертеж печатной платы в архиве по ссылке выше.

В детстве и трава зеленее
и солнце ярче и воздух чище

Народная мудрость

Помню, когда я был подростком и ходил в радиокружок, то пацаны с придыханием произносили: «вот бы цветомузыку собрать…». Мой дядя, тоже радиолюбитель, показывал мне схему цветомузыки. Тогда она казалось чем-то совершенно невероятно сложным.
Вообще, в советской радиолюбительской среде, цветомузыка была символом. Если ты молодой радиолюбитель и собрал цветомузыку, то начинаешь ходить, задрав нос и безосновательно считать себя профессионалом (а если еще понимаешь, почему и как она работает, то вообще ни с кем не здороваешься). Каждый уважающий себя радиолюбитель должен был ее собрать, иначе он - лошара.

Прошло много лет. Паяльник покрылся черным, несмываемым налетом. Радиодетали уныло лежали в столе кверху ножками. Университетский курс электроники и схемотехники прошел как-то мимо меня (что-то сдавал, что-то делал, а как - сам не понимаю).
Однажды, придя в квартиру родителей, я увидел на полке свою старую книжку: «Начинающему радиолюбителю». И тут вся жизнь пронеслась перед глазами: обожженные паяльником пальцы; тошнотворная вонь дымящегося аспирина; резисторы; диоды; транзисторы; друг Леха, орущий в собранное нами переговорное устройство: «Работает!!! Юрик! Оно работает!!!».
Так я снова открыл для себя чудный мир радиоэлектроники.

Начал с самого начала. Разбирался как работают приемники, усилители, супергеттеродины… Ради тренировки спаял пару «мультивибраторов» (жене понравилось). И вот дошел до цветомузыки. Пытался собрать сначала на LC фильтрах, но хватило меня намотать только одну катушку, и то я ее запорол. Вторую собрал на RC фильтрах. Она уже работала и весело мигала под музыку тремя светодиодами, правда собирал я ее «навесным монтажом» и схема напоминала жуткого паука размером с тарелку.
Но на дворе 21-ый век. И сейчас, куда ни плюнь, попадешь в микроконтроллер. Плюй в стиральную машинку - попал, в микроволновку - попал, посудомойка - тоже, скоро и в чайник плюнуть нельзя будет.

Дабы изучить работу с микроконтроллерами и спаять наконец, что-то, что можно потрогать руками и оно не развалится, я решил сделать «светодинамическую установку». Все! Вступление окончено! Впереди самое интересное.

Цель

Ставь цель и добивайся!
м\ф «В поисках немо»

Собрать устройство, которое при поступлении на вход звукового сигнала, будет зажигать один из 8-ми светодиодов, в зависимости от частоты звукового сигнала. При отсутствии звукового сигнала на входе, устройство должно мигать всяческими красивыми эффектами. Получается не просто цветомузыка, а «светодинамическая установка».

Теория

Теоретически, мы миллионеры,
а практически - у нас две бл..ди и один пид..рас

Анекдот

Цветомузыка - это устройство, включающее лампочку определенного цвета, в зависимости от частоты входящего звукового сигнала. Т.е. устройство должно определить какой частоты звук на входе и зажечь лампочку, которая соответствует данной частоте.
Среднее человеческое ухо воспринимает от 20Гц до 20 кГц. В проектируемом устройстве мы имеем 8 световых каналов (светодиодов).
В простейшем случае можно было бы поступить так:
20000 (Гц) / 8 = 2500 Гц на один канал. Т.е. при частоте от 0 до 2500 Гц горит один светодиод от 2500 Гц до 5000 Гц второй и т.д.
Но тут возникает очень интересная ситуация. Если взять «генератор звуковой частоты » и послушать звук частотой 2500 Гц, то можно услышать, что 2,5 кГц это очень высокий звук. При таком распределении каналов мы получим только 1-2-3 горящие лампочки, остальные будут погашены, т.к. очень высоких частот в музыке мало.
Я пустился в поиски. Каково же распределение звуковых частот в средней музыкальной композиции? Оказалось, что таких исследований в интернете нет. Зато я узнал, что при сжатии в mp3 формат, тупо режутся частоты выше 15 кГц. Ибо их можно услышать только на профессиональном оборудовании, а ни один профессионал mp3 слушать не станет. Значит верхний порог опускаем до 15 кГц.
Но потом я чудным образом нашел .
Прочитав ее, я сделал для себя такую таблицу распределения каналов по частотам:

Диапазон частот (Гц) Номер канала
20-80 1,8
80-160 2
160-300 3
300-500 4
500-1000 5
1000-4000 6
> 4000 7


Разработка принципиальной схемы

Не мешайте мне грабить!!!
Бендер. Футурама

Схему с нуля я разрабатывать не стал. Зачем? В интернете полно схем цветомузыки. Надо только их выкрасть, выбрать наиболее подходящую и модифицировать под себя. Что я и сделал. Взал схему которая так и называлась «ЦМУ/СДУ на микроконтроллере (8 каналов)».
Только она была на микроконтроллере семейства PIC. А я, начитавшись умных форумов, сделал вывод, что самые адекватные микроконтроллеры для обучения и вообще - AVR. Но никто схему «с листа» драть и не собирался. Значит вносим изменения:
1. Меняем микроконтроллер с PIC на ATmega16 (я очень хотел сделать на ATmega8, но оббегав пол города, их не нашел).
2. Источник питания меняем с 12V на 19V. Это не от крутости - это от бедности. У меня такой блок питания от ноутбука.
3. Меняем все отечественные детали на импортные. Ибо когда тычешь в морду продавцу списком отечественных элементов, то он смотрит на тебя как на барана. Заменить придется только транзисторы: КТ315 на BC847B, КТ817 на TIP31.
4. Убираем внешний «кварц» Qz1 и вместе с ним конденсаторы C6 и C7. Т.к. в ATmega16 есть встроенный кварц.
5. Убираем клавиши S1-S4. Никакого интерактива! Все автоматом!
6. В исходной схеме на выходе использовался следующий механизм. Транзисторы КТ315 выступали в качестве ключа для включения светодиодов на плате. Как описал автор, это типа нужно, чтобы видеть, что там работает, конечному пользователю они не видны… Лишнее! Убираем эти транзисторы и светодиоды с платы. Оставляем только транзисторы КТ817, которые будут включать лампочки, видимые конечному пользователю.
7. Т.к. мы поменяли источник питания с 12 до 19 Вольт, то дабы не спалить светодиоды, увеличим сопротивление резисторов идущих от транзисторов КТ817 к светодиодам.
8. Я напрочь не понял назначение конденсатора C4. Он только мешался. Убрал.
Вот что из этого вышло:


Как это работает


в основу работы синхрофазотрона,
положен принцип ускорения заряженных частиц магнитным полем,
по-ле-м, пойдем дальше
к\ф «Операция Ы и другие приключения Шурика»

В схеме имеется однокаскадный усилитель на транзисторе Q1. На разъем J9 подается звуковой сигнал (напряжением, примерно 2.5V). Конденсаторы C1 и C2 служат фильтрами, пропускающими только переменную составляющую с источника звукового сигнала. Транзистор Q1 работает в режиме усиления сигнала: когда через его переход ЭБ идет переменный ток, то с такой же частотой, через переход ЭК идет ток от источника питания, через стабилизатор напряжения U1.
Стабилизатор напряжения U1 преобразует напряжение от источника питания в напряжение 5V и вместе с подключенными к нему конденсаторами, позволяет формировать импульсы прямоугольной формы. Эти импульсы подаются на INT0 микроконтроллера.


На осциллографе видно, как звуковой синусоидальный сигнал преобразуется в сигнал прямоугольной формы.
Теперь все в руках микроконтроллера. Ему необходимо определить частоту импульсов и в зависимости от частоты (по табличке выше) подать логическую единичку (5V) на один из своих выводов (PB0-PB7). Напряжение с ножки микроконтроллера попадает на базу соответствующего транзистора (Q2-Q9), которые работают в режиме ключа. При возникновении напряжения на переходе ЭБ транзистора, открывается переход ЭК, через который течет ток на светодиод от источника питания.

Внутренний мир микроконтроллера

У меня очень богатый внутренний мир,
а они только на мои сиськи смотрят!
Цитата с женского форума

Рассмотрим теперь, что твориться внутри микроконтроллера. Микроконтроллер работает на частоте 1МГц (я не стал менять частоту, установленную по умолчанию).
Нам необходимо подсчитать количество импульсов, пришедших на вход микроконтроллера от источника звукового сигнала, за определенный промежуток времени. Нехитрой формулой из этих данных вычисляется частота сигнала.

Тут есть одна проблема с низкими частотами: нельзя делать этот период очень большим или очень маленьким. В стандартной музыкальной композиции частота звука меняется постоянно. Если сделать время замера большим (например 1 сек), то если 0,8 сек звучал звук 80 Гц, а 0,2 сек 12кГц - мы получим звук высокой частоты и потеряем всю низкую. Если сделать время замера маленьким, то мы банально можем не успеть замерять звук низкой частоты, т.к. время замера будет меньше чем частота звукового сигнала.
Посидев 5 минут со счетами, я вычислил, что вполне приемлемое время замера - 0,065536 сек.
Получил такую табличку.

Похожие публикации