Ранее в http://rcl-radio.ru/?p=62993 описывался пример использования аудиопроцессора TDA7719 под управлением Arduino Nano с дисплеем LCD1602, на этой странице будет рассмотрен аналогичный пример но с использованием дисплея LCD2004 c I2C модулем на базе микросхем PCF8574, что позволяет подключать символьный дисплей LCD2004 к плате Arduino всего по двум проводам SDA и SCL (А4 и А5).
ИМС TDA7719 представляет собой Hi-Fi аудиопроцессор с программируемой матрицей входов, имеет 6 аудио выходов, независимый аттенюатор для каждого выхода и входа, три полосы регулировки тембра с изменяемой центральной частотой и добротностью, полосовой фильтр для сабвуферов (два выхода) с фазоинвертором, тонкомпенсация. При подачи на вход стерео сигнала аудиопроцессор после обработки преобразует его в квадро и дополнительные два канала для сабвуферов.
Аудиопроцессор имеет следующие технические характеристики:
- Напряжение питания от 7,5 до 10 В
- Ток потребления 35 мА
- Сопротивление по входу 100 кОм
- Коэффициент гармоник не более 0,01%
- Разделение каналов 90 дБ
- Отношение сигнал\шум 104 дБ
- Регулировка тембра:ВЧ ± 15 дБ, шаг регулировки 1 дБ, центральные частоты 10.0 12.5 15.0 17.5 кГц
СЧ ± 15 дБ, шаг регулировки 1 дБ, центральные частоты 500 1000 1500 и 2500 Гц, добротность 0.5 0.75 1 и 1.25
НЧ ± 15 дБ, шаг регулировки 1 дБ, центральные частоты 60 80 100 и 200 Гц, добротность 1.0 1.25 1.5 и 2.0 - Тонкомпенсация:Аттенюатор от -15 до 0 дБ
Полосы частот — FLAT (линейная) 400 800 и 2400 Гц - Сабвуфер:Два канала (R и L)
Частоты полосового фильтра — FLAT 80 120 и 160 Гц
Фазовый сдвиг дискретно от 0 до 180 ° - Регулировка громкости от -63 до 0 дБ
- Раздельная регулировка каждого выхода от -16 до 0 дБ
- Раздельная регулировка входов от -15 до + 15 дБ
- Кол-во стерео входов 6 (программно может быть изменена)
- Выходы:ПК фронт
ЛК фронт
ПК тыл
ЛК тыл
ПК сабвуфера
ЛК сабвуфера
Ниже показан пример использования TDA7719 совместно с Arduino Nano. Управление аудиопроцессором происходит при помощи энкодера KY-040 и четырех кнопок, информация выводится на LCD дисплея LCD2004_I2C.
Управление аудиопроцессором разбито на три меню:
- Меню 1
Регулировка громкости от -63 до 0 дБ с индикатором активного входа
Регулировка BASS (НЧ) от -15 до 15 дБ
Регулировка MIDDLE (СЧ) от -15 до 15 дБ
Регулировка TREBLE (ВЧ) от -15 до 15 дБ
- Меню 2
Аттенюатор выхода ЛК тыл от -16 до 0 дБ
Аттенюатор выхода ПК тыл от -16 до 0 дБ
Аттенюатор выхода ЛК фронт от -16 до 0 дБ
Аттенюатор выхода ПК фронт от -16 до 0 дБ
Аттенюатор выхода сабвуфера ПК от -16 до 0 дБ
Аттенюатор выхода сабвуфера ЛК от -16 до 0 дБ
Тонкомпенсация (loudness) аттенюатор от -15 до 0 дБ
Полоса частот — FLAT (линейная), 400, 800 и 2400 Гц
- Меню 3
Выбор центральной частоты для BASS 60, 80, 100 и 200 Гц
Выбор центральной частоты для MIDDLE 500 ,1000, 1500 и 2500 Гц
Выбор центральной частоты для TREBLE 10.0 ,12.5, 15.0 и 17.5 кГц
Выбор центральной частоты для сабвуфера FLAT (линейная), 80, 120 и 160 Гц
Добротность для BASS 1.0, 1.25, 1.5 и 2.0
Добротность для MIDDLE 0.5, 0.75, 1 и 1.25
- Дополнительные опции
Программно активно 3 входа которые имеют независимые предусилители в диапазоне от -15 до 15 дБ, активный вход отображается в меню 1 в строке регулировки громкости
Режим MUTE
Режим STANDBYИзменение яркости подсветки экрана, уровень яркости изменяется в скетче
Часы в режиме POWER OFF
Коррекция времени часов
Управление всеми параметра (кроме коррекции времени часов) продублированы ИК пультом
Меню 1
Меню 2
Меню 3
Mute
Standby
Меню выбора входа
Так как предусмотрена управляемая яркость подсветки дисплея, то можно установить яркость подсветки в основном режиме и в режиме STANDBY (как правило с пониженной яркостью подсветки), регулировка яркости подсветки осуществляется через скетч:
#define BRIG_H 200 // Яркость 0…255 POWER ON
#define BRIG_L 50 // Яркость 0…255 POWER OFF
В проекте используются часы реального времени DS3231, текущее время выводится в режиме STANDBY.
Установить текущее время можно двумя способами:
- Установки времени через скетч:
Раскомментируйте строку:
clock.setDateTime(__DATE__, __TIME__); // Устанавливаем время на часах, основываясь на времени компиляции скетча
загрузите скетч, далее закомментируйте строку:
// clock.setDateTime(__DATE__, __TIME__); // Устанавливаем время на часах, основываясь на времени компиляции скетча
повторно загрузите скетч.
- Установка времени кнопками:
Перейдите в режим STANDBY, нажать и удерживать кнопку энкодера, нажимать кнопки:
SET — обнуление секунд
IN — коррекция минут
MUTE — коррекция часов
ИК пульт дублирует работу энкодера и кнопок. Для управления регулятором подойдет практически любой пульт ИК, для поддержки Вашего пульта необходимо прописать коды кнопок в скетч:
#define IR_1 0x33B8A05F // Кнопка вверх
#define IR_2 0x33B8609F // Кнопка вниз
#define IR_3 0x33B810EF // Кнопка >
#define IR_4 0x33B8E01F // Кнопка <
#define IR_5 0x33B850AF // Кнопка IN
#define IR_6 0x33B844BB // Кнопка SET
#define IR_7 0x33B8946B // Кнопка MUTE
#define IR_8 0x33B800FF // Кнопка STANDBY (POWER)
Для получения кодов кнопок Вашего пульта загрузите скетч и откройте монитор порта, при нажатии кнопки пульта его код будет отображен в мониторе порта.
В проекте предусмотрен выход STANDBY для управления режим STANDBY усилителя мощности, а так же режим MUTE. Все параметры сохраняются в энергонезависимую память, сохранение происходит после 10 секунд не активности органов управления.
Все ссылки на библиотеки указаны в скетче - http://rcl-radio.ru/?p=129453