Стрелочный индикатор для усилителя

Автор: | 15.11.2018

Годы назад усилители звука были довольно громоздкими и требовали к себе определенного внимания. Надо было следить за перегрузками, уровнем стереобаланса и так далее. В помощь пользователям применялись различные индикаторы, чаще всего — стрелочные. Автор следующего проекта решил вспомнить детский восторг от прослушивания музыки с усилителем, на котором был установлен сдвоенный стрелочный индикатор. Конструктор пробовал применять старые решения, советские микросхемы, пока не пришел к возможности использования практически голого микроконтроллера Attiny13 для движения стрелок. Вместо натурального логарифмирования, реализация которого занимает больше килобайта памяти контроллера, была применена обратная функция Y=-8196/(X+28)+284.

Стрелочный индикатор для усилителя

Схема стрелочного индикатора на микроконтроллере Attiny13

Просто и со вкусом: выпрямляем и сглаживаем сигнал, затем подаем его на АЦП микроконтроллера. Обрабатываем программно и при помощи встроенного ШИМ выдаем на нагрузку (резистор). Обработка включает в себя практически только натуральное логарифмирование (Attyny13 прям как создана для таких вот простеньких задач, ну и чтобы прошивку можно было испечь на скорую руку).

Родился второй вариант — просчитать все заранее, и контроллеру просто останется выбирать из массива данные, которые соответствуют входным значениям и выбрасывать их на выход. Готовим значения, задаем массив — ошибка компиляции. Размерность массива слишком велика для этого контроллера. А делать несколько массивов и лазить в них в зависимости от входного значения АЦП не кошерно. Роились мысли про бином Ньютона, но были отвергнуты по причине неконструктивности.

Тут в памяти всплыла фраза лектора по высшей математике из ВУЗа: «С помощью кубической сплайн-аппроксимации можно описать любую функцию» Ну кубическая нам и не нужна, а линейный сплайн вполне пойдет! Таким образом, я немного поупражнялся в 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 станет просто портом, и перешить контроллер после этого не удастся.

Оригинальный пост автора на сайте datagor вызвал множество комментариев с критикой и советами. Чтобы информация не потерялась, я решил опубликовать тут самое полезное.

Логарифмировать надо! И как раз из-за того, что иначе при маленькой громкости (т.е. когда слушаешь «не на полную громкость») стрелки будут ботаться вблизи нуля, а не двигаться красиво. Смотрим пример выше: 1/10 линейной шкалы = 1/100 выходной мощности. Если усилитель имеет мощности 40 Вт, то 1/10 шкалы индикатора — это 40 мВт. Но 2 деления (1/5 шкалы), это уже 1,6 Вт. Это меньше того, когда слушаешь негромко! В том-то и дело, что линейный индикатор при типичном прослушивании в 80% случаях ничего не показывает. У меня усилитель Кенвуд КА-6100 с линейными стрелочными индикаторами, и он оснащен переключателем: вся шкала индикатора = 80 Вт, и вся шкала = 3 Вт. Так вот, я всего 2 раза за 4 года переключал индикатор на 80 Вт! И даже в положении 3 Вт стрелки отклоняются чуть-чуть, когда музыка играет ненавязчивым фоном.

Для сравнения: компьютерная мультимедийная система при прослушивании музыки «не громко, но и не тихо» выдает примерно 0,6…0,8 Вт на канал. Вот и соотнесите. У нас слух-то логарифмический, и увеличение мощности в 2 раза (3 дБ) — это примерно 1…2 шага регулятора, т.е. «совсем чуть-чуть».

2. На самом деле это не так просто добиться правильного движения стрелки (быстро вперед и медленно назад) аналоговыми методами. Но и не нужно ничего городить — см. след. пункт.

3. Нет никакой необходимости настраивать движение стрелок аналоговыми методами — все равно его будет непросто получить. А ведь у нас есть микроконтроллер! Он может выдавать требуемые баллистические характеристики, причем даже такие, которые аналоговыми методами не очень-то и реализуемы! Кроме быстрой интергации и линейного по положению стрелки спада (что просто необходимо для логарифмического индикатора, иначе стрелка будет до самого нуля идти весьма небыстро), можно, например, задерживать стрелку на 0,2 секунды в максимальном положении. Особенно при большой мощности.

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

5. Все же параллельно головкам хорошо бы включить керамический конденсатор 0,01…0,1 мкФ, чтобы не передавать ШИМ к индикаторам по проводам через весь усилитель.

К сожалению, администратор сайта datagor не позволяет скачать прошивку без оплаты пожертвования на развитие сайта. Поэтому я не могу репостнуть её на своем ресурсе.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *