среда, 6 февраля 2013 г.

сравнение массивов codevision

Хочу стрелочный!И прошло много лет. И вот я неспешно (иногда кажется, что слишком неспешно) собираю усилитель на лампах. И всем давно уже понятно, что индикатор уровня на усилителе плюшка. Тем более сейчас, когда каналы в источнике практически никогда не отличаются по уровню, и понятие «регулятор стереобаланса» кануло в лету. И тем не менее хочу стрелочный «показометр» на переднюю панель, и все тут! Аскетичного дизайна, с желтой подсветкой. Так как индикатор-показометр не является важной частью усилителя (на скорость и стабильность не влияет), то его постройка-настройка велась уже на звучащем агрегате. Сама головка индикатора была выбрана и приобретена давно: Удалось найти сдвоенную, с желтоватой панелью. Подсветка от производителя была сделана коаксиальной лампой накаливания на 12 вольт. Которая была успешно заменена на 4 желтых светодиода. Но это случилось позже. А пока что пришлось задуматься, как же микроамперметры подключать к выходу усилителя? А подключать надо через специальный логарифмический усилитель, т.Pк. динамический диапазон звука намного больше, чем диапазон работы микроамперметра. Теоретически это все знают, кто сталкивался с самодельными стрелочными индикаторами.Преданье старины глубокой... К157ДА1В СССР была выпущена специальная микросхема для этого - К157ДА1. Микросхема не имеет аналогов за рубежом. Схема подключения проста, хоть по даташиту и необходимо двуполярное питание (неудобно). Но микросхема успешно работает и от однополярного питания. Мало того, применение транзисторов вместо диодов в схеме позволяет расширить диапазон показываемых значений аж до 40 Дб: Различных вариаций этой схемы в сети пруд пруди. Ну что сказать... Не пошла она у меня. Первый экземпляр благополучно сгорел от неправильно поданного питания. В течение месяца мне достали еще две штучки, но было уже поздно, я переключился на другую схему (на LM324), любезно предоставленную мне AlexD. Ради интереса потом я все же включил плату с ДА1. Не понравилось, плавности движения не наблюдалось. Модификация схемы производилась в тесном сотрудничестве с Алексеем, за что еще раз "данке шон"!Нумеро дуэ - LM324 Потом был упомянутый вариант на LM324. Но оно у меня так и не заработало как хочется. Болтание стрелок, его надо подбирать глубиной ОС. Да и по сути питание надо двуполярное, может все из-за неверно организованной средней точки. Нет, лень родилась раньше меня. А совместно с ленью мы родили вот что:Век XXI, Attyny13 Просто и со вкусом: выпрямляем и сглаживаем сигнал, затем подаем его на АЦП микроконтроллера. Обрабатываем программно и при помощи встроенного ШИМ выдаем на нагрузку (резистор). Обработка включает в себя практически только натуральное логарифмирование (Attyny13 прям как создана для таких вот простеньких задач, ну и чтобы прошивку можно было испечь на скорую руку). И тут начинается для меня самое интересное. Функция натурального логарифмирования есть в библиотеке математических функций для контроллеров Atmel и находится в файле math.h. Но только не лезет он в этот контроллер памяти маловато. Решить задачу в лоб не удается, начинаем его морщить (лоб). Применение более мощного контроллера не рассматривалась не интересно. Тут и памяти вроде хватает, и удобен, и недорого, и габариты не большие. Первое, что пришло в голову: заменить эту функцию похожей, но попроще. А форму ей придать поиграв коэффициентами. Вспоминаем график обратной функции. Не «да ну его!», а вспоминаем! Если нижний правый квадрат сместить вверх относительно оси X, и немного потягать туда-сюда коэффициентами, то вполне можно подогнать под нужную форму. Вот она, формула, заменяющая логарифм: Y=-8196/(X+28)+284. Представляете ужас контроллера, обреченного просчитывать эти значения тысячи раз в секунду по прихоти хозяина, пожелавшего вспомнить «детство золотое»? Но неприятные эмоции были гарантированы и хозяину контроллера. Для обработки результатов мало было коротких целочисленных значений, а вход и выход должны быть именно такими. Для меня перевод форматов представления данных в контроллерах одного в другой всегда был труден. Морщины на лбу умножились. Родился второй вариант просчитать все заранее, и контроллеру просто останется выбирать из массива данные, которые соответствуют входным значениям и выбрасывать их на выход. Готовим значения, задаем массив ошибка компиляции. Размерность массива слишком велика для этого контроллера. А делать несколько массивов и лазить в них в зависимости от входного значения АЦП не кошерно. Роились мысли про бином Ньютона, но были отвергнуты по причине неконструктивности. Тут в памяти всплыла фраза лектора по высшей математике из ВУЗа: «С помощью кубической сплайн-аппроксимации можно описать любую функцию» Ну кубическая нам и не нужна, а линейный сплайн вполне пойдет! Таким образом

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

| Опубликовал: | Просмотров: 10830

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

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

Загрузка. Пожалуйста, подождите...

Стрелочный индикатор на микроконтроллере: «показометр» для вашего усилителя » Схемы, усилители, гаджеты, компьютеры, станки, электроника

Комментариев нет:

Отправить комментарий