| Ваш IP: 54.163.20.123 | Online(40) - гости: 10, боты: 30 | Загрузка сервера: 0.69 ::::::::::::

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

Микросхема PT2313 — аудиопроцессор который используется как предварительный усилитель, микросхема PT2313 имеет три стерео входа и четыре выхода (спевдоквадро), так же дополнительно имеется электронная регулировка громкости и тембра ВЧ и НЧ. Управление аудиопроцессором осуществляется по шине I2C в моем случает при помощи Arduino Nano. Уст-во содержит минимальный набор внешних элементов, после сборке в настройке не нуждается. Номинальное питание 9 В.

Основные характеристики аудипроцессора PT2313:

  • Напряжение питания от 6 до 10 В, номинальное 9 В
  • КНИ не более 0.1 %
  • Регулировка громкости от -63 до 0 дБ
  • Регулировка тембра ВЧ и НЧ ±14 дБ
  • Регулировка баланса ±8 дБ (ограничено программно)
  • Максимальный ток потребления 11 мА

Уст-во содержит два основных блока, это плата Arduino Nano (Uno) и блок аудипроцессора. Управление аудипроцессором осуществляется четырьмя кнопками. При помощи кнопки MENU можно осуществить перебор основных параметров, громкость (Volume), тембр НЧ (Bass), тембр ВЧ (Trebble), баланс (Balance). Кнопки «+» и  «-» позволяют изменять параметры громкости, тембра и баланса. Кнопка IN предназначена для переключения входа 0…2.

Вся необходимая информация выводится LCD дисплей 1602, на базе контроллера HD44780. Все настройки сохраняются в энергонезависимую память.

Плата Пин SDA Пин SCL
Arduino Uno, Nano, Pro и Pro Mini — PT2313 (GND — 26 вывод) A4 — 27 вывод PT2313 A5 — 28 вывод PT2313

Библиотека — PT2313.zip

#include <Wire.h>
#include <PT2313.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 2, 3, 4, 5);// RS,E,D4,D5,D6,D7
#include <EEPROM.h>//#include <EEPROMex.h>- для старой версии Arduino IDE
PT2313 audioChip;
 byte a1[8]={0b00000,0b11011,0b11011,0b11011,0b11011,0b11011,0b11011,0b00000};
 byte a2[8]={0b00000,0b11000,0b11000,0b11000,0b11000,0b11000,0b11000,0b00000};
 byte menu,in,w,w1;
 int vol,z,vol_d,bass,treb,balans;
 unsigned long time;
void setup(){
  Serial.begin(9600);Wire.begin(); lcd.begin(16, 2);
  audioChip.initialize(0,true);
  pinMode(12,INPUT);// меню
  pinMode(11,INPUT);// плюс
  pinMode(10,INPUT);// минус
  pinMode(9,INPUT);// IN
  vol = EEPROM.read(0);// vol eeprom 
  bass = EEPROM.read(1)-7;// bass eeprom
  treb = EEPROM.read(3)-7;// treb eeprom
  balans = EEPROM.read(4)-4;// balans eeprom
  in = EEPROM.read(5);// in eeprom
  lcd.createChar(0,a1); lcd.createChar(1,a2);
  audio();
}
void loop(){
    if(digitalRead(12)==HIGH){menu++;time=millis();w1=1;w=1;cl();if(menu>3){menu=0;}}// меню
    if(digitalRead(9)==HIGH){in++;time=millis();w1=1;audio();delay(200);if(in>2){in=0;}}// in
  // индикация громкости + управление кнопками //////////////
   if(menu==0){
   if(digitalRead(11)==HIGH){vol++;w=1;if(vol>62){vol=62;}}// 47 максимальная громкость  
   if(digitalRead(10)==HIGH){vol--;w=1;if(vol<0){vol=0;}}// 0 минимум громкости 
   if(w==1){audio();cl();time=millis();w=0;w1=1;}
  lcd.setCursor(0,0);lcd.print("Volume ");
  lcd.print(-62+vol);lcd.setCursor(11,0);lcd.print("dB K");lcd.print(in);
  vol_d=(vol-40);
   if(vol_d>=0){for(z=0;z<=vol_d;z++){lcd.setCursor(z/2,1);lcd.write((uint8_t)0);}}
   if((vol_d)%2==0){lcd.setCursor(z/2,1);lcd.write((uint8_t)1);}
   lcd.setCursor(13,1);lcd.print(vol);
 }
 
  // индикация тембр НЧ + управление кнопками //////////////
   if(menu==1){
   if(digitalRead(11)==HIGH){bass++;w=1;if(bass>7){bass=7;}} 
   if(digitalRead(10)==HIGH){bass--;w=1;if(bass<-7){bass=-7;}}
   if(w==1){audio();cl();time=millis();w1=1;w=0;}
  lcd.setCursor(0,0);lcd.print("Bass      ");
  lcd.print(bass*2);lcd.setCursor(13,0);lcd.print("dB");
   for(z=-7;z<=bass;z++){lcd.setCursor(z+7,1);lcd.write((uint8_t)0);}
 }
 ///////////////////////////////////////////////////////////
 
   // индикация тембр BЧ + управление кнопками //////////////
   if(menu==2){
   if(digitalRead(11)==HIGH){treb++;w=1;if(treb>7){treb=7;}} 
   if(digitalRead(10)==HIGH){treb--;w=1;if(treb<-7){treb=-7;}}
   if(w==1){audio();cl();time=millis();w1=1;w=0;}
  lcd.setCursor(0,0);lcd.print("Trebble   ");
  lcd.print(treb*2);lcd.setCursor(13,0);lcd.print("dB");
   for(z=-7;z<=treb;z++){lcd.setCursor(z+7,1);lcd.write((uint8_t)0);}
 }
 ///////////////////////////////////////////////////////////
 
 // индикация баланс + управление кнопками +\- 4 дБ ///////
   if(menu==3){
   if(digitalRead(11)==HIGH){balans++;w=1;if(balans>4){balans=4;}}
   if(digitalRead(10)==HIGH){balans--;w=1;if(balans<-4){balans=-4;}}
  lcd.setCursor(0,0);
   if(balans>=0){lcd.print("-");}else{lcd.print("+");}
  lcd.print(abs(balans*2));lcd.print(" dB ");
  lcd.print(" <>  ");
   if(balans>=0){lcd.print("+");}else{lcd.print("-");}
  lcd.print(abs(balans*2));lcd.print(" dB ");
  lcd.setCursor(0,1);lcd.print("R");
  lcd.setCursor(15,1);lcd.print("L");
   if(balans<0){lcd.setCursor(balans+7,1);lcd.write((uint8_t)0);}
   if(balans>0){lcd.setCursor(balans+8,1);lcd.write((uint8_t)0);}
   if(balans==0){lcd.setCursor(7,1);lcd.write((uint8_t)0);lcd.setCursor(8,1);lcd.write((uint8_t)0);}
   if(w==1){audio();cl();time=millis();w1=1;w=0;}
 }
 /////////////////////////////////////////////////////////////
 
 // запись всех настроек в EEPROM если кнопки + и - не нажимались в течении 10 сек
 // если настройки тембра, баланса и номер входа не менялись в течении 10 сек, переход в рег. Громкости
   if(millis()-time>10000 && w1==1){
     EEPROM.update(0,vol);
     EEPROM.update(4,balans+4);
     EEPROM.update(1,bass+7);
     EEPROM.update(3,treb+7);
     EEPROM.update(5,in);
  menu=0;w1=0;cl();
 }
 
}
void cl(){delay(200);lcd.clear();}
void audio(){  
  audioChip.source(in);//select your source 1...3  вход 3...1
  audioChip.volume(vol);//Vol 0...62 шаг 1 дБ
  audioChip.gain(0);//gain 0...3 шаг 3.75 дБ
  audioChip.bass(bass);//bass -7...+7 шаг 2 дБ
  audioChip.treble(treb);//treble -7...+7 шаг 2 дБ
  audioChip.balance(balans);//-31...+31 программно ограничено до +\-8 дБ
  audioChip.loudness(true);//true or false // тонкомпенсация
}

Добавить комментарий

Войти с помощью: 

Случайные статьи

  • Простой испытатель кварцев

    Простой испытатель кварцев

    Схема испытателя кварцев состоит из генератора на VT1, детектора на диодах VD1 VD2 и усилителя постоянного тока на VT2. К устройству кварцевый резонатор подсоединяется при помощи зажимов. Если кварцевый резонатор исправен, то на R2 появляется ВЧ напряжение, которое затем поступает на диоды для детектирования. Выделенная постоянная составляющая открывает транзистор VT2, …Подробнее...
  • Простой АМ приемник на 2-х транзисторах

    Простой АМ приемник на 2-х транзисторах

    На рисунке показана схема простого АМ приемника состоящего всего из двух транзисторов. Транзистор VT1 работает как ВЧ-усилитель с обратной связью и как демодулятор одновременно. Чувствительность приемника зависит от величины обратной связи и может быть отрегулирована при помощи потенциометра VР1. VT2 используется как усилитель НЧ. Катушки антенный намотаны на ферритовом стержне …Подробнее...
  • Мостовой усилитель на базе TDA7374B

    Мостовой усилитель на базе TDA7374B

    Усилитель на базе TDA7374B относится к классу АВ и используется в автомобильных аудиосистемах. Микросхема имеет защиту от перенапряжения, переполюсовки, тепловую, защиту от статического электричества, защиту от КЗ выходов на шину питания и корпус. Так же имеется встроенная система STAND-BY и MUTE. Усилитель на базе TDA7374B имеет следующие характеристики: Номинальное напряжение …Подробнее...
  • Индикатор уровня

    Индикатор уровня

    Очень простая схема индикации уровня на 10-и светодиодах представлена на рис.. микросхема которая используется в данной схеме обладает коэф. усиления — 1. С помощью переключателя S1, мы можем выбрать индикации. Уровень водного сигнала от 60 мВ до 1,25 В. Элементная база R1-2=10Kohm D11-12=1N 4148 S1= mini switch R3-4=1Kohm C1=10uF 25V …Подробнее...
  • Усилитель мощности для СВ-радиостанции (27МГц)

    Данный усилитель мощности предназначен для эксплуатации носимой радиостанции в стационарном режиме. При этом сигнал с ее выхода поступает на вход усилителя через коаксиальный кабель. Мощность носимой радиостанции при входном сопротивлении 50 Ом усилителя мощности составляет 1-2Вт. Данный усилитель мощности развивает мощность до 30-40Вт. выход рассчитан на 75-омную антенну. Схема усилителя …Подробнее...