цифровая электроника
вычислительная техника
встраиваемые системы

 

Схема регулировки громкости с использованием PT2258 и Arduino

Автор: Mike(admin) от 22-06-2020, 23:55

Регулятор громкости на Arduino своими руками


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


Схема регулировки громкости с использованием PT2258 и Arduino

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


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


PT2258

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


Схема регулировки громкости с использованием PT2258 и Arduino

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


Схема регулировки громкости с использованием PT2258 и Arduino

Желательно, чтобы все компоненты были расположены как можно ближе, чтобы уменьшить индуктивность и сопротивление паразитной емкости.


Для простоты программирования мы используем библиотеку 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 Вт в качестве нагрузки, источник звука (телефон).


Схема регулировки громкости с использованием PT2258 и Arduino

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




© digitrode.ru


Теги: Arduino, аудио




Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Комментарии:

Оставить комментарий