Меню

Энкодеры для регуляторов громкости



Энкодеры для регуляторов громкости

Цифровой регулятор громкости и баланса на MAX5440 с ДУ.

Автор: Анастасия Попкова
Опубликовано 23.12.2008

Цель данной статьи заключается в обмене опытом по созданию простого, современного и эффективного регулятора громкости и баланса. Регулятор собран на MAX5440 , который в отечественном Интернете называется как «контроллер углового кодера управления громкостью в режиме стерео» (Интересно, в чью умную голову пришел такой занятный перевод? Прочитал пять раз. Так ничего и не понял. Советую английский даташит. Прим. Кота.)(русскоязычное описание характеристик легко можно найти в Интернете).
Данный контроллер не требует для своей работы каких-то специфических знаний по программированию, т.к. работает по принципу «включил и работаешь». Интересным является использование энкодера для регулирования уровня (больше/меньше) и кнопок для выбора режимов (громкость/баланс/приглушение). Есть 6 штук довольно информативных светодиодов, показывающих уровень громкости и баланс.
Схема:

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

Регулятор порадовал своей работой, равномерным изменением громкости и баланса при вращении энкодера, правильным зажиганием светодиодов в зависимости от установленного уровня. Корректно отрабатывались нажатия кнопок «Mute» и «Mode». Сложно придраться к хорошей работе. Изменения звука без щелчков.
Мне захотелось сделать данный регулятор с дистанционным управлением. Функций у этого регулятора немного (но достаточно), поэтому и дистанционка должна быть минимально-достаточной. В общем был приобретен дешевый микроконтроллер PIC12F629, ИК приемник типа TSOP1736 и симпатичный пультик-брелок (30 руб).
Схема приемника ДУ:

Ну и в двух словах о пультике. Я купила самый красивый по цвету. Цена как и на любой китайский ширпотреб была слишком мала. На его корпусе написано «For GoldStar».

Кнопками «VOL» меняем уровень того или иного режима. Кнопками «СH» выбираем соответствующий режим (громкость или баланс). Кнопка MUTE говорит сама за себя. Для пульта используется компьютерная батарейка-таблетка типа CR2032.
Пульт работает по протоколу NEC. Это один из самых распространенных протоколов. Встречается в аппаратуре таких фирм, как Funai, Akai, Fisher, Goldstar, Hitachi, Kenwood, Onkio, Teac, Yamaha, Sanyo, Canon, Orion, Apex, Eltax, и многих других. Этот протокол настолько распространен в аппаратуре из страны Восходящего Солнца, что его часто называют «японский протокол».

Резюме. Простота схемы и простота регулировки позволяет собрать довольно надежное и совершенное устройство. Несложная схема на микроконтроллере позволяет заменить стационарное управление (энкодером и кнопками) на дистанционное. Энкодер и ДУ не могут работать одновременно. Для работы ДУ светодиод на линии «modeind» необходимо демонтировать.

Читайте также:  Схема регулятора света 220в

Источник

Hi-Fi аудиоплеер на базе миникомпьютера «Raspberry Pi». Часть 3. Регулятор громкости на PGA2310

Передняя панель и блестящая «крутилка» громкости

Для размещения всех блоков нашего плеера я использую корпус от старого видеомагнитофона.
В большинстве видеомагнитофонов передние панели имеют плавные обтекающие формы, но в моем случае, передняя панель плоская, и это хорошо.
Отсек для видеокассеты я выпилил полностью (см. рис 2).

Рис. 2. Передняя панель аудиоплеера
Далее взял оргстекло 6 мм, отфрезеровал по периметру (рис. 3) и вставил с обратной стороны (рис. 4). Оргстекло немного затемнённое.

Рис. 3. Фрезерованное оргстекло для передней панели

Рис. 4. Передняя панель + оргстекло
Получилось симпатично. На рисунке 5 — задняя панель с дисплеями и втулкой для ручки регулировки громкости. Здесь обычное оргстекло.

Рис. 5. Задняя стеклянная панель
Надевать ручку непосредственно на энкодер считаю не очень хорошей идеей. Ручка будет болтаться, особенно заметно, если ручка большая в диаметре. Да и энкодер износится быстрее. Втулку сделал из видеоголовки. В ней два подшипника, прецизионные. Вал от головки подошел к ручке без проблем (6мм).

Рис. 6. Втулка из головки от видеомагнитофона
На заднюю панель приклеил черную самоклеющуюся плёнку, на которой лазером вырезана шкала. В этом могут помочь рекламные фирмы, которые делают различные вывески и наружную рекламу. См. рисунок 7.

Рис. 7. Шкала на задней панели
Здесь я планировал вырезать две шкалы, одну на черной плёнке, а вторую на рассеивающей прозрачной (транслюцентная плёнка), затем квадратики рассеивающей вставить в черную шкалу. Но такой хитрой рассеивающей плёнки не оказалось в наличии, и я просто позади оргстекла скотчем прилепил какую-то рассеивающую пленку из разбитой матрицы от ноутбука.

Получилось, в принципе, неплохо, но не так как хотелось — свет от светодиодов немного проникает в соседние сегменты.

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

Рис. 8. Задняя стеклянная панель в сборе
Осталось в оргстекле пропилить отверстие для ручки и передняя панель готова (см. рис. 1)

Светодиодный индикатор уровня громкости

Рис. 9. Схема светодиодного индикатора уровня громкости
В схеме применены замечательные микросхемы фирмы MOTOROLA MC74HCT574A . Это регистр (набор D триггеров) с параллельной записью. Чтобы превратить эту микросхему в сдвигающий регистр с последовательной записью, все внутренние D-триггеры соединяем последовательно. Следует отметить, что после включения питания, все выходы данной микросхемы устанавливаются в состояния логической единицы. А это значит, что светодиоды не горят и необходимость в предварительном сбросе схемы отпадает.

Читайте также:  Фильтр регулятор лубрикатор масло

Стабилизатор VR1 позволят установить необходимую яркость светодиодов. Я, непонятно почему, сделал 33 светодиода, поэтому первый светодиод LED1 пришлось зажечь навсегда.

Рис. 10. Плата A1

Рис. 11. Плата A2

Обслуживает индикатор базовый класс устройства — leds. Полный листинг, как всегда, можно скачать в конце статьи.

Энкодер

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

Прерывания с GPIO в «Raspberry Pi» в интернете освещены мутно и реализация, я бы сказал, неизящна, хотя, может быть, я плохо разобрался в данном вопросе.
Поэтому пока я выбрал метод опроса.

Рис. 12. Осциллограмма сигналов энкодера
На рисунке 12 осциллограмма импульсов энкодера. Алгоритм следующий: периодически опрашиваем пины, если состояние в предыдущем опросе было «11», то текущее состояние определит направление вращения, его потом и сосчитаем, за исключением текущих состояний с одинаковыми сигналами(«00» и «11»). Вот и весь алгоритм.

Из файла encoder.h:

В цикле опроса процесс обязательно нужно «положить поспать» (в моём случае на 5 ms), иначе загрузка процессора будет большой. Так же задержка в 5 ms исключает влияние дребезга контактов энкодера.

На осциллограмме сигналы нового энкодера – без дребезга, но я подключал и старые, трофейные – тоже всё отлично.

Рис. 13. Соединение энкодера с валом
На рисунке 13 энкодер соединяется с валом с помощью резинового шланга, внутренним диаметром 6 мм.

Регулятор громкости на PGA2310

Рис. 14. Схема регулятора громкости на PGA2310
Микросхема PGA2310 — высокопроизводительный стереофонический аудиоконтроллер, предназначенный для профессиональных аудиосистем высокого класса. Как раз для моего аудиоплеера! Напряжение питания ± 15 В. (Я запитал от БП ЦАП-а ± 10 В.)

Внутри — качественные операционные усилители, обеспечивают низкий уровень шума и искажений THD+N = 0.0004%, Нагрузить микросхему можно входным сопротивлением 600 Ом и выше.

Управление очень простое: выбираете микросхему с помощью пина CS и последовательно записываете 2 байта (старшими битами вперёд), с помощью пинов SDI и SCLK.
Первый байт – громкость правого канала, второй байт – громкость левого канала. Собственно это SPI интерфейс.

Читайте также:  Дэу нубира регулятор давления топлива

Рис. 15. Регулятор громкости на PGA2310 (без крышки)

Обслуживает микросхему PGA2310 базовый класс: PGA2310.

Кроме простой регулировки громкости, в классе организована балансировка каналов. Данную функцию при необходимости можно будет осуществить (потом) с клиента на ПК или смартфоне. На самом аудиоплеере только регулятор громкости.

Также есть возможность задать пользовательское изменение диапазона регулирования громкости с помощью переменных max_admin_volume и min_admin_volume. Эти значения будут инициализироваться (при загрузке программы) из файла настроек, изменить их так же можно будет с помощью клиентов.

Пользовательский класс volume_control наследует функционал базовых классов PGA2310 и leds и полностью определяет регулятор громкости аудиоплеера. Фактически он содержит алгоритм изменения громкости в связке с индикатором на светодиодах.

Я сделал так, что вне зависимости от пределов регулировки громкости светодиоды в индикаторе все равно светятся от 0 до 32. Пользователь (например жена) может закрутить ручку громкости до упора, будут гореть все светодиоды и зеленые и красные, но громкость будет ограничена.

Измерения

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

Рис. 16. Шумы (всё подключено, воспроизведение отсутствует)
Рис 16. Шумы на том же уровне. Это хорошо! Немного подросла помеха от ИБП, наверное, потому что нагрузка на БП 5V выросла, подключена передняя панель.

Далее, на всех графиках воспроизводим синус 1 кГц, 0 dB как и в прошлый раз, и будем крутить регулятор громкости.

Рис. 17. Регулятор громкости -1 dB
Рис. 17. При уровне регулятора громкости 0 dB получил перегруз линейного входа ПК. Чуть-чуть PGA видимо усилила сигнал, поэтому смотрим при -1dB на регуляторе громкости. Сравниваем с рисунком 13 предыдущей моей статьи.

На глаз иголочки чуть-чуть подросли, рост искажений небольшой. В этот момент я понимаю, что я не зря сделал ставку на PGA2310. Всё получилось, все отлично!

Рис. 18. Положение регулятора громкости -7 dB

Рис. 19. Положение регулятора громкости -80,5 dB
Думаю, на этом можно закончить.

Видео регулятора в работе

Демонстрационное видео работы регулятора громкости и индикатора на светодиодах.

Загрузки

Надеюсь, вам пригодится материал.
Всем спасибо за внимание. Пока!

Источник