85

Регулятор громкости и тембра LC75342 на Atmega88 (Arduino IDE)

Микроконтроллер Atmega88 может стать отличной заменой сильно подорожавших плат Arduino Nano. Большое кол-во проектов создаваемых на платах Arduino Nano часто используют небольшое объем памяти и применять Arduino Nano в данных проектах нецелесообразно.  Atmega88 имеет 8 кБ программируемой Flash памяти, 1кБ SRAM памяти и 512 байта EEPROM.

Микроконтроллер Atmega88 поддерживается средой программирования Arduino IDE, так же большинство библиотек совместимы с этими контроллерами.

Ранее в http://rcl-radio.ru/?p=120507 рассматривался пример создания регулятора громкости и тембра на LC75342 с использованием платы Arduino Nano, на этой странице будет аналогичный проект, но с использованием микроконтроллера Atmega88.

ИМС LC75342 представляет собой аудиопроцессор специально разработанный для регулирования параметров аудиосигнала с минимальными искажениями. Аудиопроцессор включает в себя регулятор громкости, тембра, коммутатор входов и предусилители входов.

Более подробно об аудиопроцессоре можно узнать из статьи — LC75342 (Arduino)

Основные параметры LC75342

  • Регулировка громкости от -79 до 0 дБ (шаг 1 дБ)

  • Независимая регулировка громкости (баланс)

  • Входной предварительный усилитель входа от 0 до +30 дБ (шаг 2 дБ)

  • 4-х канальный коммутатор входов

  • Регулировка тембра BASS от -20 до +20 дБ (шаг 2 дБ)

  • Регулировка тембра TREBLE от -10 до +10 дБ (шаг 2 дБ)

  • Напряжение питания от 5 до 10 В

  • Управление цифровое 3-Wire (CL, DI, CE) (макс. тактовая частота до 500 кГц)

  • Входное сопротивление 50 кОм

  • Коэффициент нелинейных искажений 0,01% (макс.)

Регулятор громкости содержит два основных блока, первый блок микроконтроллерный (Arduino Nano) с органами управления и индикации, второй блок плата аудиопроцессора.

Регулировка громкости возможна в пределах от -79 до -4 дБ, недостающие 4 дБ отданы регулятору баланса.

Основное управление параметрами аудиопроцессора будет осуществляться при помощи энкодера (KY-040) и 2-х кнопок. Вся информация будет выводится на дисплей LCD1602 + I2C (I2C модуль на базе микросхем PCF8574 позволяют подключить символьный дисплей 1602 к плате Arduino всего по двум проводам SDA и SCL (А4 и А5), что дает возможность не использовать цифровые выходы Arduino при подключении дисплея.)

Регулятор тембра имеет одно меню, которое содержит регуляторы громкости, тембра (TRABLE, BASS) и баланса. Дополнительно при нажатии кнопки INPUT помимо переключения входа будет доступно меню предусилителя входа. (независимое для каждого входа).

Схема регулятора громкости и тембра

Как добавить микроконтроллер Atmega88 в среду программирования Arduino IDE и прошивать микроконтроллер можно узнать из статьи http://rcl-radio.ru/?p=113040.

Перед загрузкой в настройках платы укажите частоту кварцевого резонатора (12 МГц), выбрать программатор  USBasp, в пункте Variant тип контроллера 88P/88PA, 88/88A (для Atmega88 20PU который я используя для этой статьи) или 88PB, в пункте Bootloader выберите No bootloader или Yes (UART0) если планируете загружать скетчи через UART ( USB — TTL ).

Во вкладке «Инструменты»  нажмите «Записать загрузчик«.(делается только один раз)

Для запуска LCD1602 c I2C модулем на PCF8574, Вам понадобятся две библиотеки:

  • Wire_low — библиотека для работы с шиной I2C (тестовая версия)

  • Lcd1602_i2c_low — библиотека для работы с LCD1602 I2C на PCF8574

Скетч использует 5738 байт (70%) памяти устройства. Всего доступно 8192 байт.
Глобальные переменные используют 141 байт (13%) динамической памяти, оставляя 883 байт для локальных переменных. Максимум: 1024 байт.

Скетч - http://rcl-radio.ru/?p=120528