Светодинамические устройства

Конечно,  идеи сопровождения музыки световыми эффектами не новы,  в радиолюбительской литературе есть множество публикаций.
Однако развитие технологии часто дает новый шанс старым идеям.
Светодиоды снимают массу технологических проблем при получении цвета – отпадает подбор красителей для окраски ламп или светофильтров,  нет проблемы с выгоранием красок со временем.  А  современные микроконтроллеры позволяют выполнить необходимые функции с минимальными затратами – самое время вернуться к забытому старому, но на новом уровне!  
Вашему вниманию предлагаются идеи по использованию современных материалов и полное описание цветомузыкального  устройства  на  сверхярких  светодиодах  с микроконтроллерным управлением, программные решения которого могут быть интересны  и  для  других  применений.  Есть и  технологические советы.На рисунке. 1. представлена принципиальная схема устройства.
 
 
 
Электретный микрофон BF1 служит источником сигнала  - для минимизации количества проводов. На D3A, D3B выполнен усилитель сигнала (АЧХ усилителя скорректирована с помощью C11 и C16, а также однозвенным RC фильтром R30, C12),  затем через фильтр нижних частот D3C  сигнал поступает на вход ADC микроконтроллера. Общая расчетная  АЧХ от X23 до выхода D3C (при замкнутом C14 и входном сигнале 1мВ) показана на рисунке 2 Завал АЧХ  на частотах ниже 300 Гц обусловлен  С10, С15. помощью D3D формируется половина питающего напряжения  для задания режима по постоянному току для D3A, D3B, D3C.
 
 
 
 
Транзистор VT2  и R30 образуют делитель схемы АРУ. D1 стабилизирует питающее напряжение +5В. На вход D1 необходимо подать около +9В при токе до 300мА от внешнего БП (трансформатор, 4 диода 1N4007, электролитический конденсатор 1000.0*16В, не помешает и выключатель для полного отключения от сети). Выходным устройством  служат светодиоды HL1- HL16 (по 4 желтых, красных, зеленых, синих).  Использованы широкоугольные - 140 градусов – светодиоды с яркостью в несколько кнд,  диаметр 5 мм при длине колбы примерно 4.5мм.  Для расширения функциональных возможностей есть и белые светодиоды HL17- HL20 (тоже 5мм   140 градусов) ,  включаемые VT1.  R3- R18,  R21-R24  ограничивают ток через светодиоды на уровне 20 мА (их разные значения  обусловлены различием падения напряжения на диодах разного цвета).
Все остальные необходимые функции выполняются микроконтроллером D2  ATMega8  программно:
-         сигнал с выхода D3C оцифровывается ADC  c частотой 19.2  кГц;
-         выполняется преобразование Фурье для разделения сигнала на частотные полосы;
-         выполняется логарифмирование сигнала отдельно в каждой полосе для расширения динамического диапазона;
-         сигналы полос преобразуются  в 16  каналов ШИМ  для регулировки яркости свечения     светодиодов HL1- HL16;.
-         формируется сигнал аппаратной ШИМ,  который через простейший RC фильтр R31,   C14 подается на базу VT2 для автоматической регулировки усиления.                          
 
Коротко о работе программы микроконтроллера. После старта происходит настройка периферийных устройств  в требуемые режимы,  затем управление передается  в основной цикл программы.
Запускается ADC, который  делает  128 замеров сигнала с частотой выборки около 19200 Гц,  затем выполняется преобразование Фурье и логарифмирование сигналов в каждой частотной полосе. Затем происходит преобразование полученных значений в 16 чисел для работы ШИМ, задающей яркость свечения каждого из 16 цветных светодиодов.
Проверяется состояние кнопки управления и цикл повторяется.  Работа ADC и формирование ШИМ происходят с использованием соответствующих прерываний, что позволило совместить часть процессов и уменьшить время цикла.
Еще одна особенность программы - АРУ работает не от уровня сигнала,  а от количества включенных каналов:  если их число падает ниже заданного порога, усиление увеличивается; если количество включенных каналов превышает порог, усиление уменьшается. В качестве пороговых значений выбраны разные числа и при нахождении количества включенных каналов в заданном интервале усиление не изменяется. Такой алгоритм АРУ позволяет устройству нормально работать в очень широком диапазоне громкости звука.
В первом  варианте преобразования, условно «абстракция»,  происходит сравнение значений сигнала с текущим значением яркости  в канале, и, если значение превысило текущее, происходит запись нового значения, причем с умножением на 8. Если же нет, то текущее значение уменьшается на 1,  что относительно медленно уменьшает яркость в канале. По частоте выбрана привязка красных светодиодов к четырем самым низкочастотным полосам, затем четыре желтых, зеленых, синих. Такое преобразование позволяет  избавиться от жесткой зависимости изображения от звука, в то же время сохраняя привязку.
Второй вариант преобразования, условно назовем его «спектр»,   начинается с умножения сигнала в каждом канале  на  8, затем происходит сравнение полученных значений с текущим значением яркости  в канале,  и, если значение превысило текущее, происходит запись нового. Скорость разряда увеличена вдвое по сравнению с первым  вариантом.  Еще одно отличие – светодиоды привязаны к полосам спектра «геометрически», а не цветом. 
 
Сразу после включения устанавливается первый режим,  устройство работает как цветомузыка по первому варианту преобразования. При нажатии на кнопку происходит переход в следующий режим, всего режимов  десять:  
1) цветомузыка «абстракция»; 
2)свечение белых светодиодов;
3) цветомузыка «спектр»;
4) свечение белых светодиодов;
5)свечение всех цветных светодиодов в половину яркости;
6) свечение всех цветных светодиодов  на максимуме яркости;
7) свечение красных светодиодов;  
8) свечение желтых  светодиодов;
9) свечение зеленых  светодиодов;
10) свечение синих светодиодов
После 10 режима по нажатию кнопки переходим в режим 1.
 
Теперь о недостатках,  которые конечно же есть - пока было принято решение  с ними не бороться, а  использовать. Это о  засветке  самых  низкочастотных  каналов, которая использована как фоновый свет.
Предположив, что  явление может быть обусловлено или наводками 50Гц или смещением уровня на выходе D3C относительно среднего значения,  которое в программе фиксировано  как число 32768, провел  эксперимент по подстройке среднего уровня. Для этого перемычка X31, X32  была заменена на конденсатор 0.1мкф, подключенный между X32 и «землей», средний уровень подавался на  вход ADC (X33)  через резистор 62К с  движка переменного резистора, включенного между «+5V»  и «землей». Оказалось, что достаточно сместить уровень на 30 мВ от среднего и уже идет засветка.
Тогда для устранения явления надо бы подать напряжение с выхода D3D на другой вход ADC  и измерять его для получения значения реальной средней точки, но пока это в проекте, к тому же наводки 50Гц при максимальном усилении, которое выставит АРУ в отсутствии засветки в каналах,  все равно засветят  самый низкочастотный канал…  А пока на плате оставлены точки X33, X34,  куда можно впаять резистор 62К  (в   точки X31, X32  при этом впаивается конденсатор 0.1 мкФ вместо перемычки), чтобы  можно было уменьшить постоянное смещение относительно середины питания при необходимости. 
Для любителей экспериментов выложен исходный текст,  где оставлены (закомментированы) строки еще двух вариантов преобразования,
которые  проверялись в начале экспериментов. Следует иметь в виду, что при увеличении числа используемых полос (сейчас используется 16 из 64 при частоте дискретизации 19200Гц, что соответсвует частотам 0 – 9600Гц, а используемый диапазон 150*16 = 2400Гц) или частоты выборок следует изменять и частоту среза фильтра,  однако получить нормальное подавление  при данной схеме  будет проблематично,  и это приведет к засветке одного и того же светодиода от разных частот  сигнала.  Конечно,  можно усложнить фильтр, или применить MAX293,  но пока остановимся на том, что предлагаемое устройство – не измерительный анализатор спектра, а всего лишь декоративный светильник.
Еще одно примечание по исходному тексту – закомментирован вариант включения всех светодиодов (и белых и цветных) одновременно – по причине большого тока потребления.
При программировании следует правильно вписать Fuse bits,  которые указаны в начале исходного текста, иначе - можно не сомневаться – как надо работать не будет. 
На  программаторах и программах для них  также не останавливаюсь подробно, но думаю уместно вспомнить об AVReal и AVR Studio. 
Печатная плата  размером 73.3мм * 43.2 мм  изготовлена из одностороннего стеклотекстолита  лазерно-утюжным методом. О тонкостях метода информации достаточно,  поэтому  сразу к делу. На рисунках представлены монтажные схемы нижней и верхней сторон платы.
 
 
 
MD компоненты  типоразмера 0805,  электролиты обычные, ИМС в DIP корпусах. Большинство отверстий платы диаметром 0.8 мм, для D1 и  X35 – X38 диаметр 1.2мм ,  Mh1 – Mh4  диаметром 2.7 мм или 3.2 мм.
Монтажные точки X35 –X38 могут использоваться для экспериментов с размещением светодиодов, возле X1- X20  для удобства нанесены также подключения к светодиодам  (W – белые, В – синие, G – зеленые, R –  красные, Y – желтые).
Место под кварц ZQ1 и C7, C8 оставлено для возможных экспериментов, хотя для текущей версии программы они не требуются. D2 ставить в панельку не желательно, так как при этом возрастет высота монтажа.  Для смены программы  при  запайке D2 в плату предусмотрены точки X25 – X30. В них  впаивается  «гребешок» для подключения программатора по SPI интерфейсу, однако имейте ввиду, что после пайки светодиодов программатору придется «проглотить» дополнительно по 20мА тока от  HL14 и HL16.
Узкое место на плате – R37,  через который пришлось провести шину. Как поступить - подробно описано в технологии.
 
HEX файл +исходный текс
 
Автор: Александр Попель
E-mail :