PT2258 — 6-и канальный регулятор громкости (2) (Arduino)
Ранее в http://rcl-radio.ru/?p=80541 рассматривался пример создания регулятора громкости на аудиопроцессоре PT2258 с использованием четырех разрядного семисегментного индикатора. На этой странице аналогичный проект, но в нем будет использован индикатор LCD2004 c модулем I2C.
ИМС PT2258 — шести канальный регулятор громкости с микроконтроллерным управлением. Управление PT2258 осуществляется при помощи шины I2C. Регулятор громкости обладает низким уровнем шума и малым коэффициентом нелинейных искажений. Регулировка громкости может быть как независимая для каждого канала, так и общая для всех каналов.
Основные характеристики PT2258:
Напряжение питания от 5 до 10 В, 9 В — рекомендуемое
Ток потребления 8 мА
Входное сопротивление 30 кОм
Максимальное входное напряжение 2,8 Vrms
Разделение каналов 100 дБ
Коэффициент нелинейных искажений 0,005%
Диапазон регулировки громкости от -79 до 0 дБ
Шаг регулировки громкости 1 дБ
Режим MUTE
Отношение сигнал/шум 105 дБ
Схема регулятора громкости достаточно проста, выводы 4 и 17 (CODE2 и CODE1) в зависимости от подключения к GND или VCC позволяют изменять адрес микросхемы при работе с I2C шиной, что дает возможность подключения других утс-в на шину I2С, у которых нет возможности изменить адрес:
CODE1 = GND, CODE2 = GND 80H
CODE1 = GND, CODE2 = VCC 84H
CODE1 = VCC, CODE2 = GND 88H
CODE1 = VCC, CODE2 = VCC 8CH
Библиотека PT2258 поддерживает адрес 0х88, если возникнет необходимость изменить адрес шины I2C, то потребуется корректировка адреса в библиотеке:
Файл — PT2258.h
В платформе Arduino адрес I2C 7 бит, поэтому вместо 0х88 (0B10001000), указывается 0х44 (0B1000100).
Регулятор громкости на PT2258 содержит следующие компоненты:
Плата Arduino Nano
Дисплей LCD2004 с модулем I2C
Часы реального времени DS3231
Энкодер KY-040
Три тактовые кнопки
ИК-датчик VS1838B
Схема регулятора громкости
Основные функциональные возможности регулятора громкости:
Основное меню:
Регулировка громкости 64 уровня (64 дБ), осуществляется при помощи энкодера и ИК пульта
Вывод даты и времени
Второе меню (для перехода в меню нажать кнопку SET, нажимая на кнопку энкодера можно перебирать пункты меню)
По канальная регулировка аттенюаторов выходов в диапазоне от 0 до 15 дБ
Регулировка яркости подсветки дисплея в обычном режиме и в режиме STANDBY
Меню коррекции времени
Режим установки-корректировки времени:
Нажать и удерживать кнопку энкодера, далее нажать кнопку SET, после появится меню корректировки времени, параметры перебираются кнопкой энкодера, ручка энкодера меняет выбранный параметр.
Режим MUTE, активируется при помощи кнопки MUTE или ИК пульта
Режим STANDBY, активируется при помощи кнопки или ИК пульта
Так как предусмотрена управляемая яркость подсветки дисплея, то можно установить яркость подсветки в основном режиме и в режиме STANDBY (как правило с пониженной яркостью подсветки), регулировка яркости подсветки осуществляется в меню №2.
Подсветка — убрать перемычку с модуля I2C PCF8574 и подключить вывод модуля к цифровому выходу Arduino D6. Перед подключением замерить ток подсветки который не должен превышать 20 мА (у моего модуля ток не более 15 мА, замер производить между контактами перемычки).
Максимальный выходной ток одного выхода Arduino Nano не должен превышать 40 мА.
ИК пульт дублирует работу энкодера и кнопок. Для управления регулятором подойдет практически любой пульт ИК, для поддержки Вашего пульта необходимо прописать коды кнопок в скетч:
#define POWER 0x33B800FF
#define VOLUME_UP 0x33B8E01F
#define VOLUME_DW 0x33B810EF
#define MUT 0x33B8946B
Для получения кодов кнопок Вашего пульта загрузите скетч и откройте монитор порта, при нажатии кнопки пульта его код будет отображен в мониторе порта.
Скетч - http://rcl-radio.ru/?p=128120