Регулятор громкости на Arduino своими руками
Потенциометр – это механическое устройство, с помощью которого можно установить сопротивление в соответствии с желаемым значением, тем самым изменяя ток, проходящий через него. Существует множество приложений для потенциометра, но в основном потенциометр используется для усилителей звука.

Потенциометр не контролирует усиление сигнала, но формирует делитель напряжения, из-за которого входной сигнал ослабляется. В этом проекте мы покажем вам, как собрать цифровой регулятор громкости с микросхемой PT2258 и связать его с Arduino для управления громкостью схемы усилителя.
PT2258 – это микросхема, предназначенная для использования в качестве 6-канального электронного регулятора громкости, данная микросхема использует технологию КМОП, специально разработанную для многоканальных аудио-видео приложений.

Эта микросхема обеспечивает интерфейс управления I2C с диапазоном затухания от 0 до -79 дБ при 1 дБ/шаг и поставляется в 20-контактном корпусе DIP или SOP. Она передает и принимает данные от микроконтроллера по линиям SCL и SDA. Линии SDA и SCL составляют интерфейс шины. Эти линии должны быть подтянуты двумя резисторами 4,7 КОм, чтобы обеспечить стабильную работу.

Полная принципиальная схема подключения Arduino и PT2258 для сборки устройства регулировки громкости звука представлена на следующем рисунке.

Желательно, чтобы все компоненты были расположены как можно ближе, чтобы уменьшить индуктивность и сопротивление паразитной емкости.
Для простоты программирования мы используем библиотеку Arduino для работы PT2258, представленную на GitHub (https://github.com/sunrutcon/PT2258). Это довольно хорошо написанная библиотека, поэтому мы решили использовать ее, но поскольку она очень старая, она немного глючит, и нам нужно исправить ее, прежде чем мы сможем ее использовать полноценно. Итак, сначала загрузите и извлеките библиотеку из репозитория GitHub.
Вы получите два необходимых нам файла после извлечения (PT2258.cpp и PT2258.h). Затем откройте файл PT2258.cpp вашим любимым текстовым редактором, например, Notepad++. Вы можете видеть, что буква w библиотеки wire.h написана строчными буквами, что несовместимо с последними версиями Arduino, и вам нужно заменить ее заглавной буквой «W», вот и все.
Полный код регулятора громкости на основе Arduino и PT2258 имеет следующий вид.
#include <PT2258.h>
#include <ezButton.h>
#include <Wire.h>
PT2258 pt2258; // PT2258 Object
ezButton button_1(2); //объект Button_1
ezButton button_2(4); //объект Button_2
int volume = 40; // Громкость по умолчанию / Начальная громкость
void setup() {
Serial.begin(9600); //старт UART
Wire.setClock(100000); // установка тактовой частоты I2C на 100 кГц
/* проверка, может ли Arduino общаться с PT или нет*/
if (!pt2258.init())
Serial.println("PT2258 Successfully Initiated");
else
Serial.println("Failed to Initiate PT2258");
/* Настройка задержки дребезга кнопки*/
button_1.setDebounceTime(50);
button_2.setDebounceTime(50);
/* Инициирование PT с громкостью по умолчанию и выводом*/
pt2258.setChannelVolume(volume, 4);
pt2258.setChannelVolume(volume, 5);
}
void loop() {
button_1.loop();
button_2.loop();
/* Если кнопка 1 нажата, если условие истинно*/
if (button_1.isPressed())
{
volume++; // Увеличение счетчика громкости
// это выражение if гарантирует, что громкость не установится выше 79
if (volume >= 79)
{
volume = 79;
}
Serial.print("volume: "); // Вывод уровня громкости
Serial.println(volume);
/*Установим громкость для канала 4
который является выводом 9 микросхемы PT2258
*/
pt2258.setChannelVolume(volume, 4);
/**Установим громкость для канала 5
который является выводом 10 микросхемы PT2258
*/
pt2258.setChannelVolume(volume, 5);
}
// То же самое происходит с кнопкой 2
if (button_2.isPressed())
{
volume--;
//это выражение if гарантирует, что уровень громкости не опускается ниже нуля.
if (volume <= 0)
volume = 0;
Serial.print("volume: ");
Serial.println(volume);
pt2258.setChannelVolume(volume, 4);
pt2258.setChannelVolume(volume, 5);
}
}
После сборки схемы и загрузки кода в Arduino можно протестировать устройство. Для проверки схемы использовалось следующее аппаратное обеспечение: трансформатор, два динамика 4 Ом 20 Вт в качестве нагрузки, источник звука (телефон).

Мы разобрали механический потенциометр и замкнули два провода двумя маленькими перемычками. Теперь с помощью двух кнопок можно регулировать громкость усилителя.
© digitrode.ru