В начало | Зарегистрироваться | Заказать наши киты почтой
 
 
 
 

Стрелочный индикатор на микроконтроллере Attyny13: «показометр» для вашего усилителя

📆06.10.2012   ✒️еще один max   🔎95.959   💬38  

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

Хочу стрелочный!

И прошло много лет. И вот я неспешно (иногда кажется, что слишком неспешно) собираю усилитель на лампах. И всем давно уже понятно, что индикатор уровня на усилителе — плюшка. Тем более сейчас, когда каналы в источнике практически никогда не отличаются по уровню, и понятие «регулятор стереобаланса» кануло в лету. И тем не менее — хочу стрелочный «показометр» на переднюю панель, и все тут! Аскетичного дизайна, с желтой подсветкой.
Так как индикатор-показометр не является важной частью усилителя (на скорость и стабильность не влияет), то его постройка-настройка велась уже на звучащем агрегате. Сама головка индикатора была выбрана и приобретена давно:

Удалось найти сдвоенную, с желтоватой панелью. Подсветка от производителя была сделана коаксиальной лампой накаливания на 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, прошивка, схема в Сплане.
Печатку не привожу, она без надобности: вероятность того, что у кого-то будет такой микроамперметр и надо будет приделать к нему контроллер стремится к нулю. Да и глядя на схему, вы представляете, какая там простая плата smile
🎁indikator.zip  55.23 Kb ⇣ 583
🎁VUEND-Attiny13.zip  4.09 Kb ⇣ 529

Камрад, рассмотри датагорские рекомендации

🌼 Полезные и проверенные железяки, можно брать

Опробовано в лаборатории редакции или читателями.




 

Читательское голосование

Нравится

Статью одобрили 96 читателей.

Для участия в голосовании зарегистрируйтесь и войдите на сайт с вашими логином и паролем.
 

Поделись с друзьями!

 

 

Связанные материалы

 

Схема на Датагоре. Новая статья Прибор для измерения выходной мощности усилителя на микроконтроллере Attyny13, Attyny45... В поисках чего бы ещё собрать в плане изучения МК, нашел датагорскую статью «Стрелочный индикатор...
Схема на Датагоре. Новая статья Стрелочный частотомер 5 Гц – 30 мГц на микроконтроллере PIC16F628A... Этот частотомер не требует цифрового индикатора и, из-за отсутствии динамической индикации,...
Схема на Датагоре. Новая статья Простой индикатор уровня сигнала на ОУ LM324 (8 СИД на канал)... Не люблю, когда передняя панель усилителя пустая, имеет лишь ручку громкости да тумблер питания....
Схема на Датагоре. Новая статья Моя печатная плата SRPP усилителя для наушников... Недавно прочитал на Датагоре статью Сделай сам SRPP усилитель для наушников на 6Н6П и решил...
Схема на Датагоре. Новая статья Регулируемый стабилизатор напряжения с регулируемым ограничением выходного тока... Простенькая относительно схемка, со средними параметрами, на основe транзисторoв с большим...
Схема на Датагоре. Новая статья Куда запихнуть свой УНЧ (фотоотчет)... Нет-нет, наши УНЧ не настолько плохи, чтобы сделать с ними то, что вы подумали! 😉 Давно хотелось...
Схема на Датагоре. Новая статья Прибор для проверки мощных IGBT и MOSFET транзисторов (n-канал)... Необходимость в таком приборе возникает каждый раз при ремонте сварочного инвертора — необходимо...
Схема на Датагоре. Новая статья Алюминиевый плинтус в изготовлении корпуса УМЗЧ и небольшая история о сборке усилителя "из мусора" в условиях крайнего Севера... Вся история началась с того, что попал ко мне в руки музцентр со спаленными мозгами, но вполне...
Схема на Датагоре. Новая статья Сумматор каналов на ОУ. Теория и практика... Не раз обращал внимание на то, что радиолюбители применяют в своих схемных решениях неоправданно...
Схема на Датагоре. Новая статья Регулятор громкости на TDA7313 и PIC 16F876A.... Для новой конструкции мне понадобился блок управления громкостью и тембрами. Я выбрал...
Схема на Датагоре. Новая статья Усилитель TESLA AZK-220... Этот усилитель попал под переделку. Он неисправен (пробиты пара выходных транзисторов),...
Схема на Датагоре. Новая статья Проект УМЧЗ «Омега»: полный усилитель на TDA7295 с темброблоком и софтстартом... Наконец то решил собрать усилитель для себя – не спеша с душой и в корпусе. А то всё, что делал...
 

Комментарии, вопросы, ответы, дополнения, отзывы

 

<
Читатель Датагора

еще один max

<
Читатель Датагора

honder

<
Читатель Датагора

еще один max

<
Читатель Датагора

еще один max

<
Читатель Датагора

Chugunov

<
Читатель Датагора

Anatolii

<
Читатель Датагора

Alexverb

<
Читатель Датагора

еще один max

<
Читатель Датагора

AudioKiller

<
Читатель Датагора

игорь джан

<
Читатель Датагора

Anatolii

<
Читатель Датагора

еще один max

<
Читатель Датагора

Ahatolii

<
Читатель Датагора

Anatolii

<
Читатель Датагора

еще один max

<
Читатель Датагора

yarik007

Добавить комментарий, вопрос, отзыв 💬

Камрады, будьте дружелюбны, соблюдайте правила!

  • Смайлы и люди
    Животные и природа
    Еда и напитки
    Активность
    Путешествия и места
    Предметы
    Символы
    Флаги
 
 
В начало | Зарегистрироваться | Заказать наши киты почтой