Микросхема PT2257 представляет собой электронный стерео регулятор громкости, управляемый по I2C шине. Вы также можете использовать его как цифровой потенциометр. Эта функция может пригодиться, когда необходим цифровой регулятор громкости вместо использования традиционного аналогового потенциометра.
Стоимость PT2257 менее 1 доллара. Купил с намерением регулировать громкость на выходе радиомодуля TEA5767, у которого такого регулятора нет (только есть возможность приглушить выходной аудиосигнал).
Технические характеристики PT2257
- Напряжение питания 3 — 9 В.
- Диапазон затухания: от 0 до -79 дБ при 1 дБ/шаг
- Двухканальный выход
- Раздельная регулировка громкости для каждого канала
- Режим MUTE
- Низкий уровень шума, отношение сигнал/шум > 100
- Управление через I2C (адрес по умолчанию 0x88)
Распиновка PT2257
Схема подключения PT2257
Схема подключения PT2257 очень простая. Дополнительные элементы, необходимые для работы микросхемы, включают конденсаторы и, конечно же, управляющий микроконтроллер (Ардуино).
Пример практического использования контроллера PT2257, подключенного к конкретной системе, можно найти в статье, посвященной модулю FM-радио TEA5767.
Код
Для управления микросхемой PT2257 использована библиотека Evc_pt2257, доступная на github. Библиотека предоставляет API, который позволяет вам управлять системой.
В наличие есть функции::
- инициализация чипа, запускается из setup(): void evc_init ();
- установка громкости обоих каналов: void evc_setVolume (uint8_t dB);
- настройка громкости правого канала: void evc_setVolumeRight (uint8_t dB);
- настройка громкости левого канала: void evc_setVolumeLeft (uint8_t dB);
- отключение звука системы: void evc_mute (переключение типа bool);
- отключение схемы: void evc_off ();
Параметр дБ принимает значения от 0 до 79 и определяет громкость сигнала.
Чего мне не хватает в PT2257, так это запоминания последнего выбранного значения уровня громкости для обоих каналов. Это означает, что в функции setup(), помимо инициализации, вы также должны установить значение уровня громкости по умолчанию.
Однако гораздо удобнее сохранить ранее установленное значение (для обоих каналов или два отдельных значения для каждого канала) в памяти EEPROM и установить (восстановить) его при загрузке.
