Вспоминается беззаботное детство — в гостях у одноклассника слушаем музыку. Усилитель «Радиотехника-001-стерео», индикаторы мягко колышутся в такт музыке... Тогда это был предел мечтаний. И кощунством показалось, когда отец одноклассника (мужик увлекался радиолюбительством) заменил штатные стрелочные индикаторы на люминесцентный гадко-зеленого цвета. И усилитель потерял часть шарма, и слушать больше не хотелось...
Содержание статьи / Table Of Contents
↑ Хочу стрелочный!
И прошло много лет. И вот я неспешно (иногда кажется, что слишком неспешно) собираю усилитель на лампах. И всем давно уже понятно, что индикатор уровня на усилителе — плюшка. Тем более сейчас, когда каналы в источнике практически никогда не отличаются по уровню, и понятие «регулятор стереобаланса» кануло в лету. И тем не менее — хочу стрелочный «показометр» на переднюю панель, и все тут! Аскетичного дизайна, с желтой подсветкой.Так как индикатор-показометр не является важной частью усилителя (на скорость и стабильность не влияет), то его постройка-настройка велась уже на звучащем агрегате. Сама головка индикатора была выбрана и приобретена давно:
Удалось найти сдвоенную, с желтоватой панелью. Подсветка от производителя была сделана коаксиальной лампой накаливания на 12 Вольт. Которая была успешно заменена на 4 желтых светодиода. Но это случилось позже.
А пока что пришлось задуматься, как же микроамперметры подключать к выходу усилителя? А подключать надо через специальный логарифмический усилитель, т. к. динамический диапазон звука намного больше, чем диапазон работы микроамперметра. Теоретически это все знают, кто сталкивался с самодельными стрелочными индикаторами.
↑ Преданье старины глубокой... К157ДА1
В СССР была выпущена специальная микросхема для этого - К157ДА1. Микросхема не имеет аналогов за рубежом. Схема подключения проста, хоть по даташиту и необходимо двуполярное питание (неудобно). Но микросхема успешно работает и от однополярного питания. Мало того, применение транзисторов вместо диодов в схеме позволяет расширить диапазон показываемых значений аж до 40 Дб:Различных вариаций этой схемы в сети пруд пруди. Ну что сказать... Не пошла она у меня.
Первый экземпляр благополучно сгорел от неправильно поданного питания. В течение месяца мне достали еще две штучки, но было уже поздно, я переключился на другую схему (на LM324), любезно предоставленную мне AlexD. Ради интереса потом я все же включил плату с ДА1. Не понравилось, плавности движения не наблюдалось. Модификация схемы производилась в тесном сотрудничестве с Алексеем, за что еще раз "данке шон"!
↑ Нумеро дуэ - LM324
Потом был упомянутый вариант на LM324. Но оно у меня так и не заработало как хочется. Болтание стрелок, его надо подбирать глубиной ОС. Да и по сути питание надо двуполярное, может все из-за неверно организованной средней точки. Нет, лень родилась раньше меня. А совместно с ленью мы родили вот что:
↑ Век XXI, Attyny13
Просто и со вкусом: выпрямляем и сглаживаем сигнал, затем подаем его на АЦП микроконтроллера. Обрабатываем программно и при помощи встроенного ШИМ выдаем на нагрузку (резистор). Обработка включает в себя практически только натуральное логарифмирование (Attyny13 прям как создана для таких вот простеньких задач, ну и чтобы прошивку можно было испечь на скорую руку).
И тут начинается для меня самое интересное. Функция натурального логарифмирования есть в библиотеке математических функций для контроллеров Atmel и находится в файле math.h. Но только не лезет он в этот контроллер — памяти маловато. Решить задачу в лоб не удается, начинаем его морщить (лоб). Применение более мощного контроллера не рассматривалась — не интересно. Тут и памяти вроде хватает, и удобен, и недорого, и габариты не большие. Первое, что пришло в голову: заменить эту функцию похожей, но попроще. А форму ей придать поиграв коэффициентами. Вспоминаем график обратной функции. Не «да ну его!», а вспоминаем! Если нижний правый квадрат сместить вверх относительно оси X, и немного потягать туда-сюда коэффициентами, то вполне можно подогнать под нужную форму. Вот она, формула, заменяющая логарифм: Y=-8196/(X+28)+284. Представляете ужас контроллера, обреченного просчитывать эти значения тысячи раз в секунду по прихоти хозяина, пожелавшего вспомнить «детство золотое»?
Но неприятные эмоции были гарантированы и хозяину контроллера. Для обработки результатов мало было коротких целочисленных значений, а вход и выход должны быть именно такими. Для меня перевод форматов представления данных в контроллерах одного в другой всегда был труден. Морщины на лбу умножились.
Родился второй вариант — просчитать все заранее, и контроллеру просто останется выбирать из массива данные, которые соответствуют входным значениям и выбрасывать их на выход. Готовим значения, задаем массив — ошибка компиляции. Размерность массива слишком велика для этого контроллера. А делать несколько массивов и лазить в них в зависимости от входного значения АЦП не кошерно. Роились мысли про бином Ньютона, но были отвергнуты по причине неконструктивности.
Тут в памяти всплыла фраза лектора по высшей математике из ВУЗа: «С помощью кубической сплайн-аппроксимации можно описать любую функцию» Ну кубическая нам и не нужна, а линейный сплайн вполне пойдет! Таким образом, я немного поупражнялся в OO Calc, и написал систему уравнений, достаточно точно повторяющих график логарифмической функции с помощью отрезков прямых:
if (n>=141) x=2*n+2020;
else if (n>=66) x=5*n+1600;
else if (n>=38) x=9*n+1330;
else if (n>=21) x=15*n+1110;
else if (n>=5) x=40*n+600;
else if (n>0) x=160*n+50;
if (n==0) x=0;
Все намеренно умножено на 10, чтобы отбрасываемые "хвостики" были поменьше. Я потом его делю в программе перед выводом на индикаторы.
А вот графики:
Уверен, многим из вас такое решение придет в голову сразу и покажется очевидным. Тем не менее, я уверен, что кому-то это внове и в последствии пригодится. По крайней мере, как инструмент в своем арсенале иметь лишним не будет.
↑ Видео
↑ Итоги и примечания по схеме
Индикатор-показометр прекрасно заработал с первого включения. Были залиты несколько прошивок. Наиболее простая оказалась самой удачной.По схеме: конденсаторы С1 и С2 в процессе настройки были заменены на 10,0 мкф - они обеспечивают плавность. Подстроечные резисторы на входе уменьшают максимальный сигнал до 5 Вольт. Теоретически надо бы поставить стабилитрон с резистором, но лень... Ну вы уже знаете, кто из нас родился раньше :laughing: Я нагрузил усилитель максимальным с моей точки зрения сигналом (так, что эквиваленты на выходе накалились), и вывел резисторы на 5 Вольт. Мне достаточно. Затем подал на вход 1 кГц с генератора и синхронизировал каналы, чуть уменьшив показания одного из микроамперметров. R4 и R5 зависят от полного тока отклонения микроамперметров, на схеме указаны для 50 мкА, у меня такие.
Схему можно тюнинговать. У Тиньки остались свободными 2 ноги. Никто не мешает прилепить туда светодиоды для индикации перегруза, когда-то модно было. Не мое - не люблю, когда что-то на усилителе моргает, потому и не делал. Реализация элементарна: по определенному уровню зажигаем светодиод и держим зажженным N милисекунд. Уровень и N подбираются по вкусу, как соль и перец. Не забудьте только, что одна из свободных ножек - Reset. А значит эксперименты делайте на одном канале, ибо если поставить соответствующий фьюз при прошивке, Reset станет просто портом, и перешить контроллер после этого не удастся.
↑ Файлы
И файлики: проект в CVAVR, прошивка, схема в Сплане.Печатку не привожу, она без надобности: вероятность того, что у кого-то будет такой микроамперметр и надо будет приделать к нему контроллер стремится к нулю. Да и глядя на схему, вы представляете, какая там простая плата
🎁indikator.zip 55.23 Kb ⇣ 583
🎁VUEND-Attiny13.zip 4.09 Kb ⇣ 529
Камрад, рассмотри датагорские рекомендации
🌼 Полезные и проверенные железяки, можно брать
Опробовано в лаборатории редакции или читателями.