Найти в Дзене

Поделка для души - Индикатор уровня стерео-сигнала (аудио) с автоматической регулировкой усиления

В последнее время из-за недостатка реализации творческого потенциала все чаще хочется создавать простые модули или даже небольшие наборчики для самостоятельной сборки (DIY). Из-за больших затрат времени на основную работу, где все очень серьезно и шаг вправо-влево от стандартов смерти подобен, в сознании образуется зона незаполненного вакуума, требующая заполнения чем-то простым, радующим глаз или даже душу.

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

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

Для подогрева интереса читателя к повторению этого индикатора сразу добавлю вот такое демо-видео:

На данном видео питание индикатора подается от USB-порта ТВ-приставки.

Изначально не было цели создавать некий прецизионный измерительный индикатор, оценивающий фактический уровень сигнала. Хотелось создать максимально простой индикатор, не требующий каких-то входных предварительных усилителей и подстроечных элементов. Чтоб собрал - и сразу заработало. Но как без кондиционирования сырого сигнала добиться максимальной зрелищности и не прибегать к ручной подстройке при подключении к совершенно разным источникам сигнала с разным размахом амплитуды? Да и композиции зачастую попадаются с разной громкостью, что сильно заметно при прослушивании.

Ответ простой - применить некую систему автоматической подстройки. Внешняя схема АРУ добавила бы стоимости и мороки со сборкой. Поэтому было решено применить один единственный микроконтроллер, который будет отвечать за выполнение всех задач, включая измерение/кондиционирование сигнала и управление шкалами светодиодов. В моей кладовой есть горка AVR микроконтроллеров ATmega16A, вот его и было решено задействовать.

Принципиальная электрическая схема индикатора уровня получилась вот такой:

Электрическая схема индикатора уровня с двумя шкалами светодиодов (стерео)
Электрическая схема индикатора уровня с двумя шкалами светодиодов (стерео)

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

Разъемы Jack 3.5 добавлены для простоты "сквозного подключения" в цепь между источником сигнала и воспроизводящей аппаратурой с помощью стандартных аудио-кабелей типа вот таких:

Аудио-кабель стерео jack 3.5
Аудио-кабель стерео jack 3.5

Оба разъема X1 и X2 подключены параллельно (одинаково) и могут выполнять любую роль - как на вход, так и на выход. К тому же можно смело подключать гарнитуру, т.к. вывод микрофона также дублируется. Другими словами эти разъемы подключаются параллельно к сигнальным линиям, а не в разрыв цепей.

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

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

Если не считать светодиоды, то сама схема потребляет небольшой ток - единицы миллиампер. Более подробные характеристики указаны на сайте первоисточника, ссылка на который будет в конце статьи. А пока я дам более развернутое описание функции автоматического масштабирования сигнала на всю длину шкалы, которую выполняет микроконтроллер, а так же дам рекомендации по типам применяемых компонентов и возможных аналогов.

Микроконтроллер в процессе работы делает очень много измерений (сэмплов) сигнала с помощью встроенного аналого-цифрового преобразователя, при этом значения не только суммируются для вычисления средней амплитуды, но также отлавливаются максимальные всплески сигнала. Период и логика усреднения результатов подобраны таким образом, что в течении одной музыкальной композиции сигналы будут отображаться на всей шкале от 0 до максимума. Таким образом даже на малой громкости сигнал все равно будет "усиливаться" внутри микроконтроллера и масштабироваться на всю шкалу. Такая функция дает возможность быстрой адаптации индикатора при смене композиций или при отключении индикатора от одного источника и подключении его к другому источнику низкочастотного музыкального сигнала.

Внимательный читатель, возможно, задаст вопрос - если индикатор старается отмасштабировать даже маленькие амплитуды сигналов, то будет ли он усиливать помехи при интервалах тишины между композициями или перехода аппаратуры в состояние MUTE? Вопрос справедливый и ответ казалось бы - однозначное ДА. Но данный момент также учтен при написании управляющей программы для микроконтроллера - внутри МК сигналы кондиционируются в том числе с подавлением шумов. Но и внешние резисторы R1 и R2 играют в этом не последнюю роль, шунтируя высокоомные входы встроенного мультиплексора, не позволяя индикатору улавливать мелкие кратковременные помехи и снижая общий фоновый шум на этих входах.

Все резисторы и конденсаторы применил ЧИП типоразмера 0805 (емкости керамические). Конденсатор C6 поставил танталовый ЧИП типоразмера "A" (самый мелкий). Его емкость не должна быть менее 10 мкФ, в противном случае всплески сигнала вызовут импульсные помехи по шине питания за счет кратковременного зажигания большого количества светодиодов. На схеме указан оптимальный номинал этого конденсатора, гарантированно предохраняющий от импульсных просадок и пересброса микроконтроллера из-за них. Еще на этапе разработки я старался сделать супер-низкое энергопотребление и светодиоды поджигать током 0.5-1 мА, поэтому в исходной версии этот конденсатор был также керамическим емкостью всего 1 мкФ, но в итоге потребители единогласно пожелали больше яркости и емкость пришлось увеличить.

Перемычка J1 выполнена в виде ЧИП резистора 0805 сопротивлением 0 Ом, но можно ограничиться просто каплей припоя. Данный элемент я предусмотрел для возможной установки дополнительной индуктивности на случай внесения индикатором слышимых помех в аудиосигнал за счет работы МК и импульсной работы потребителей в виде шкал светодиодов. На мой слух так и не пришлось добавлять эту индуктивность, поэтому просто замыкаем этот элемент накоротко.

Транзисторы BCP56 используются в корпусах SOT223, но контактные площадки на печатной плате позволяют установить и другие транзисторы для поверхностного монтажа, даже в корпусе SOT23-3.

Индуктивность L1 выбрана CDRH2D18/LDNP-150NC, но по опыту можно спокойно ставить и чуть больший номинал, я ставлю из той же серии CDRH2D18/LDNP-470NC.

Семь резисторных сборок применены из серии YC164. Сопротивление 100 Ом выбрано для исключения превышения потребляемого светодиодами тока предела, установленного для маломощного LDO стабилизатора NCP698SQ33T1G.

Сами светодиоды с линзой 5 x 2 x 7 мм применены из серии FYL-25A3U (FORYARD). Запасы этих светодиодов на текущий момент у меня подошли к концу, заказывать для себя я их могу только тысячами, поэтому жду подходящий момент для их заказа. Для тех кто захочет самостоятельно напаять светодиоды разных цветов приведу маркировки:

FYL-25A3URC1B - красный

FYL-25A3UYC1B - желтый

FYL-25A3UGC1B - зеленый

Ну и в конце статьи обещанная ссылка на сайт первоисточника с техническими характеристиками и подробной схемой сборки этого индикатора.

Приятного прослушивания любимых композиций!