Темброблок 5.1 на PT2323 и PT2322 (Arduino)

Темброблок состоит из двух микросхем PT2323 и PT2322, управление осуществляется при помощи Arduino Nano.

Плата Arduino Nano с аудиопроцессорами PT2323 и PT2322 обмениваются данными на шине I2C по линиям SDA (data — данные) и SCL (clock — синхронизация).

PT2323 представляет собой коммутатор аудио сигналов. Микросхема имеет 4-е стерео входа и один шести канальный вход формата 5.1. Стерео сигнал подаваемый на входы микросхемы преобразуется в аудио сигнал формата 5.1, а аудио сигнал формата 5.1 поступает на выход 5.1 без изменений.

PT2323 имеет следующие аудио выходы:

  • FR — правый канал фронт
  • FL — левый канал фронт
  • SR — правый канал тыл
  • SL — левый канал тыл
  • CT — центральный канал
  • SUB — канал сабвуфера

Параметры PT2323:

  • Напряжение питания 9 В (4,5 В минимальное)
  • КНИ при входном напряжении сигнала 0.2 Vrms не более 0,005 %
  • Отношение сигнал / шум 100 дБ
  • Максимальное входное напряжение 3,75 Vrms

PT2322 представляет собой регулятор 3-х полосной регулятор тембра и громкости, микросхема имеет 6 входов и 6 выходов (FR, FL, SR, SL, CT, SUB), по канальный аттенюатор, 3D — эффект.

Параметры PT2322:

  • Напряжение питания от 5 до 12 В (9 рекомендуемое)
  • Ток потребления 25…40 мА
  • Входное сопротивление 50 кОм
  • Разделение каналов 107 дБ
  • Отношение сигнал / шум 98 дБ
  • КНИ при входном напряжении сигнала 0.2 Vrms не более 0,005 %
  • Регулировка тембра ± 14 дБ с шагом 2 дБ
  • Регулировка громкости от -79 дБ до 0 дБ
  • Аттенюатор (не зависимый для каждого канала) от -15 дБ до 0 дБ

Библиотеки

PT2323.zip  https://github.com/liman324/PT2323.git

PT2322.zip  https://github.com/liman324/PT2322.git

 

Пример скетча показанный ниже позволяет управлять параметрами  PT2323 и PT2322 при помощи 4-х кнопок с выводом информации на LCD1602 (ЖК-дисплей на базе HD44780).

Управление параметрами темброблока достаточно простое, при помощи кнопки МЕНЮ можно выбрать регулируемый параметр и изменить его при помощи кнопок ПЛЮС и МИНУС, четвертая кнопка — выбор входа. Режим MUTE активируется одновременным нажатием кнопок ПЛЮС и МИНУС.

Все параметры заносятся в энергонезависимую память.

#include <Wire.h>
#include <PT2323.h>
#include <PT2322.h>
#include <LiquidCrystal.h>
#include <EEPROM.h>
 PT2323 pt0; 
 PT2322 pt1;
 LiquidCrystal lcd(7, 6, 2, 3, 4, 5);// RS,E,D4,D5,D6,D7 подключение LCD
   byte a1[8]={0b00000,0b11011,0b11011,0b11011,0b11011,0b11011,0b11011,0b00000};
   byte a2[8]={0b00000,0b11000,0b11000,0b11000,0b11000,0b11000,0b11000,0b00000};
   unsigned long time;
   int menu,w,vol,vol_d,z,in,bass,bass_d,mid,mid_d,treb,treb_d,attfl,attfl_d,attcn,attcn_d,attsub,attsub_d,ddd,tembro,x,attfr,attfr_d,atttl,atttl_d,atttr,atttr_d,mute;
 
void setup() {
  Wire.begin();Serial.begin(9600);
  lcd.begin(16, 2);lcd.createChar(0,a1);lcd.createChar(1,a2);
  pinMode(A0,INPUT); // menu
  pinMode(A1,INPUT); // +
  pinMode(A2,INPUT); // -
  pinMode(A3,INPUT); // input
  vol = EEPROM.read(0);in = EEPROM.read(1);bass = EEPROM.read(2)-7;mid = EEPROM.read(3)-7;treb = EEPROM.read(4)-7;
  attfl = EEPROM.read(5)-14;attcn = EEPROM.read(7)-14;attsub = EEPROM.read(8)-14;ddd = EEPROM.read(9);tembro = EEPROM.read(10);
  attfr = EEPROM.read(11)-14;atttl = EEPROM.read(12)-14;atttr = EEPROM.read(13)-14;
  delay(500);
  audio1();audio2();
}
 
void loop() {
   if(analogRead(A0)>900&&mute!=1){menu++;cl();time=millis();w=1;if(menu>11){menu=0;}}// меню
 
/////////////////////////////// volume ///////////////////////////////////////////////
 if(menu==0){
   if(analogRead(A1)>900){vol++;w=1;if(vol>79){vol=79;}audio2();cl();time=millis();}// 79 максимальная громкость  
   if(analogRead(A2)>900){vol--;w=1;if(vol<0){vol=0;}audio2();cl();time=millis();}// 0 минимум громкости 
    lcd.setCursor(0,0);lcd.print("Volume   ");
    lcd.print(-79+vol);lcd.setCursor(13,0);lcd.print("dB");vol_d=vol/2-15;
   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);lcd.print(" ");}
 /////////////////////////////////////////////////////////////////////////////////////
 
  /////////////////////// индикация тембр НЧ + управление кнопками -14...14 дБ ///////////////////
   if(menu==1){
   if(analogRead(A1)>900){bass++;w=1;if(bass>7){bass=7;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){bass--;w=1;if(bass<-7){bass=-7;}audio2();cl();time=millis();}
  lcd.setCursor(0,0);lcd.print("Bass      ");
  lcd.print(bass*2);lcd.setCursor(13,0);lcd.print("dB");bass_d=bass+7;
   if(bass_d>=0){for(z=0;z<=bass_d;z++){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)0);}}
   if((bass_d)%2==0){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)1);}}
 ////////////////////////////////////////////////////////////////////////////////////
 
   /////////////////////// индикация тембр CЧ + управление кнопками -14...14 дБ ///////////////////
   if(menu==2){
   if(analogRead(A1)>900){mid++;w=1;if(mid>7){mid=7;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){mid--;w=1;if(mid<-7){mid=-7;}audio2();cl();time=millis();}
  lcd.setCursor(0,0);lcd.print("Middle    ");
  lcd.print(mid*2);lcd.setCursor(13,0);lcd.print("dB");mid_d=mid+7;
   if(mid_d>=0){for(z=0;z<=mid_d;z++){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)0);}}
   if((mid_d)%2==0){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)1);}}
 ////////////////////////////////////////////////////////////////////////////////////
 
    /////////////////////// индикация тембр BЧ + управление кнопками -14...14 дБ ///////////////////
   if(menu==3){
   if(analogRead(A1)>900){treb++;w=1;if(treb>7){treb=7;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){treb--;w=1;if(treb<-7){treb=-7;}audio2();cl();time=millis();}
  lcd.setCursor(0,0);lcd.print("Treble    ");
  lcd.print(treb*2);lcd.setCursor(13,0);lcd.print("dB");treb_d=treb+7;
   if(treb_d>=0){for(z=0;z<=treb_d;z++){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)0);}}
   if((treb_d)%2==0){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)1);}}
 ////////////////////////////////////////////////////////////////////////////////////
 
//////////////////////////////////// rock pop classic //////////////////////      
  if(menu==4){
    if(analogRead(A1)>900){tembro++;w=1;if(tembro>4){tembro=0;}cl();time=millis();} 
    if(analogRead(A2)>900){tembro--;w=1;if(tembro<0){tembro=4;}cl();time=millis();}
    lcd.setCursor(0,0);lcd.print(" Preset timbre  ");
    if(tembro==0){lcd.setCursor(0,1);lcd.print("  manual mode  ");}
    if(tembro==1){lcd.setCursor(0,1);lcd.print("      ROCK     ");bass=4,mid=-2;treb=5;x=1;}
    if(tembro==2){lcd.setCursor(0,1);lcd.print("      POP      ");bass=-3,mid=3;treb=-2;x=1;}
    if(tembro==3){lcd.setCursor(0,1);lcd.print("    CLASSIC    ");bass=0,mid=0;treb=-2;x=1;}
    if(tembro==4){lcd.setCursor(0,1);lcd.print("    default    ");bass=0,mid=0;treb=0;x=1;}
    if(x==1){audio2();x=0;}
  }
////////////////////////////////////////////////////////////////////////////////
 
  /////////////////////// ATT FL ///////////////////
   if(menu==5){
   if(analogRead(A1)>900){attfl++;w=1;if(attfl>0){attfl=0;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){attfl--;w=1;if(attfl<-14){attfl=-14;}audio2();cl();time=millis();}
  lcd.setCursor(0,0);lcd.print("ATT FL   ");
  lcd.print(attfl);lcd.setCursor(13,0);lcd.print("dB");attfl_d=attfl+14;
   if(attfl_d>=0){for(z=0;z<=attfl_d;z++){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)0);}}
   if((attfl_d)%2==0){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)1);}}
 ////////////////////////////////////////////////////////////////////////////////////
 
   /////////////////////// ATT FR ///////////////////
   if(menu==6){
   if(analogRead(A1)>900){attfr++;w=1;if(attfr>0){attfr=0;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){attfr--;w=1;if(attfr<-14){attfr=-14;}audio2();cl();time=millis();}
  lcd.setCursor(0,0);lcd.print("ATT FR   ");
  lcd.print(attfr);lcd.setCursor(13,0);lcd.print("dB");attfr_d=attfr+14;
   if(attfr_d>=0){for(z=0;z<=attfr_d;z++){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)0);}}
   if((attfr_d)%2==0){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)1);}}
 ////////////////////////////////////////////////////////////////////////////////////
 
 /////////////////////// ATT TL ///////////////////
   if(menu==7){
   if(analogRead(A1)>900){atttl++;w=1;if(atttl>0){atttl=0;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){atttl--;w=1;if(atttl<-14){atttl=-14;}audio2();cl();time=millis();}
  lcd.setCursor(0,0);lcd.print("ATT TL   ");
  lcd.print(atttl);lcd.setCursor(13,0);lcd.print("dB");atttl_d=atttl+14;
   if(atttl_d>=0){for(z=0;z<=atttl_d;z++){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)0);}}
   if((atttl_d)%2==0){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)1);}}
 ////////////////////////////////////////////////////////////////////////////////////
 
 
 /////////////////////// ATT TR ///////////////////
   if(menu==8){
   if(analogRead(A1)>900){atttr++;w=1;if(atttr>0){atttr=0;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){atttr--;w=1;if(atttr<-14){atttr=-14;}audio2();cl();time=millis();}
  lcd.setCursor(0,0);lcd.print("ATT TR   ");
  lcd.print(atttr);lcd.setCursor(13,0);lcd.print("dB");atttr_d=atttr+14;
   if(atttr_d>=0){for(z=0;z<=atttr_d;z++){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)0);}}
   if((atttr_d)%2==0){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)1);}}
 ////////////////////////////////////////////////////////////////////////////////////
 
  /////////////////////// ATT CN ///////////////////
   if(menu==9){
   if(analogRead(A1)>900){attcn++;w=1;if(attcn>0){attcn=0;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){attcn--;w=1;if(attcn<-14){attcn=-14;}audio2();cl();time=millis();}
  lcd.setCursor(0,0);lcd.print("ATT CN   ");
  lcd.print(attcn);lcd.setCursor(13,0);lcd.print("dB");attcn_d=attcn+14;
   if(attcn_d>=0){for(z=0;z<=attcn_d;z++){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)0);}}
   if((attcn_d)%2==0){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)1);}}
 ////////////////////////////////////////////////////////////////////////////////////
 
   /////////////////////// ATT SUB ///////////////////
   if(menu==10){
   if(analogRead(A1)>900){attsub++;w=1;if(attsub>0){attsub=0;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){attsub--;w=1;if(attsub<-14){attsub=-14;}audio2();cl();time=millis();}
  lcd.setCursor(0,0);lcd.print("ATT SUB  ");
  lcd.print(attsub);lcd.setCursor(13,0);lcd.print("dB");attsub_d=attsub+14;
   if(attsub_d>=0){for(z=0;z<=attsub_d;z++){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)0);}}
   if((attsub_d)%2==0){lcd.setCursor(z/2+4,1);lcd.write((uint8_t)1);}}
 ////////////////////////////////////////////////////////////////////////////////////
 
 //////////////////////////// 3d ///////////////////////////////////////////////
 if(menu==11){
   if(analogRead(A1)>900){ddd++;w=1;if(ddd>1){ddd=0;}audio2();cl();time=millis();} 
   if(analogRead(A2)>900){ddd--;w=1;if(ddd<0){ddd=1;}audio2();cl();time=millis();}
   lcd.setCursor(0,0); if(ddd==0){lcd.print("     3D  ON  ");}else{lcd.print("     3D  OFF  ");}
 }
 
 ////////////////////////////////////////////////////////////////////////////////
  if(analogRead(A3)>900){in++;if(in>4){in=0;}audio1();cl();lcd.setCursor(0,0);lcd.print("    INPUT  ");lcd.print(in+1);delay(2000);time=millis();w=1;}// in
//  if(analogRead(A3)>900){in++;if(in>5){in=0;}audio1();cl();lcd.setCursor(0,0);lcd.print(" INPUT ");lcd.print(in+1);delay(2000);time=millis();w=1;}// если in = 5 то включен шести канальный вход 
//////////// mute ////////////////////////
  if(mute==1&&(analogRead(A1)>900||analogRead(A2)>900)){mute=0;menu=0;audio1();cl();}  
  if(analogRead(A1)>900&&analogRead(A2)>900){mute=1;menu=100;audio1();cl();}
  if(mute==1){lcd.setCursor(0,0);lcd.print("      MUTE      ");delay(300);}
 
 
 
///////////////////////////////eeprom//////////////////////////////////////////////// 
  if(millis()-time>10000&& w==1&&mute==0){
     EEPROM.update(0,vol);EEPROM.update(1,in);EEPROM.update(2,bass+7);EEPROM.update(3,mid+7);EEPROM.update(4,treb+7);
     EEPROM.update(5,attfl+14);EEPROM.update(7,attcn+14);EEPROM.update(8,attsub+14);EEPROM.update(9,ddd);EEPROM.update(10,tembro);
     EEPROM.update(11,attfr+14);EEPROM.update(12,atttl+14);EEPROM.update(13,atttr+14);
     menu=0;w=0;cl();}
/////////////////////////////////////////////////////////////////////////////////////
}// loop
 
 
void cl(){delay(300);lcd.clear();}
void audio1(){
  pt0.setInput(in); 
  pt0.setMute(0,0,0,0,0,0,mute); 
  pt0.setFeature(1,1); 
}
 
void audio2(){
  pt1.setFront_lk_att(abs(attfl));// att front L
  pt1.setFront_rk_att(abs(attfr));// att front R
  pt1.setCenter_att(abs(attcn));  // att center
  pt1.setRear_lk_att(abs(atttl)); // att rear L
  pt1.setRear_rk_att(abs(atttr)); // att rear R
  pt1.setSub_att(abs(attsub));     // att sub
  pt1.setFunc(0,ddd,0); // mute,3d,тембр on/off
  pt1.setBass(bass);            // BASS    -14...0...14 dB (int -7...0...7)
  pt1.setMiddle(mid);          // MIDDLE  -14...0...14 dB (int -7...0...7)
  pt1.setTreble(treb);          // TREBLE  -14...0...14 dB (int -7...0...7)
  pt1.setVol(vol); // 0...79
}

  • ir.ino.zip — ИК пульт (пример скетча)

  • Скетч протестирован. Энкодер, кнопки IN и MUTE, ИК — пульт дублирующий полностью энкодер и кнопку IN (видео работы скетча показано ниже)
#define  CH_UP  0x2FDF20D
#define  CH_DW  0x2FDF30D
#define  CH     0x2FDF50D
#define  IN     0x2FDF70D
#define  VOL_UP 0x2FDF40D
#define  VOL_DW 0x2FDF80D


#include <Wire.h>
#include <PT2322.h>
#include <PT2323.h>
#include <LiquidCrystal.h>
#include <EEPROM.h>
#include <Encoder.h>
#include <MsTimer2.h>
#include <boarddefs.h>
#include <IRremote.h>
 PT2322 pt; PT2323 pt0; 
  Encoder myEnc(9, 8);//CLK, DT подключение энкодера
  IRrecv irrecv(13); // указываем вывод модуля IR приемника
   decode_results ir;
 LiquidCrystal lcd(7, 6, 2, 3, 4, 5);// RS,E,D4,D5,D6,D7 подключение LCD
   byte a1[8]={0b00000,0b10101,0b10101,0b10101,0b10101,0b10101,0b10101,0b00000};
   byte a2[8]={0b00000,0b10100,0b10100,0b10100,0b10100,0b10100,0b10100,0b00000};
   byte a3[8]={0b00000,0b10000,0b10000,0b10000,0b10000,0b10000,0b10000,0b00000};
    unsigned long newPosition,time,oldPosition  = -999;
   int menu,menu2,w,vol,vol_d,z,z0,z1,in,bass,bass_d,mid,mid_d,treb,treb_d,attfl,attfl_d,attcn,attcn_d,attsub,attsub_d,ddd,tembro,x,attfr,attfr_d,atttl,atttl_d,atttr,atttr_d,mute;
   int g1,g2,inn;
   
void setup() {
  Wire.begin();Serial.begin(9600);irrecv.enableIRIn(); // запускаем модуль IR
  lcd.begin(16, 2);lcd.createChar(0,a1);lcd.createChar(1,a2);lcd.createChar(2,a3);
  pinMode(A0,INPUT); // menu кнопка энкодера 
  pinMode(12,INPUT); // MUTE
  pinMode(11,INPUT); // IN
  MsTimer2::set(2, to_Timer);MsTimer2::start();
   vol = EEPROM.read(0)-79;in = EEPROM.read(1);bass = EEPROM.read(2)-7;mid = EEPROM.read(3)-7;treb = EEPROM.read(4)-7;
  attfl = EEPROM.read(5)-14;attcn = EEPROM.read(7)-14;attsub = EEPROM.read(8)-14;ddd = EEPROM.read(9);tembro = EEPROM.read(10);
  attfr = EEPROM.read(11)-14;atttl = EEPROM.read(12)-14;atttr = EEPROM.read(13)-14;
  delay(500);
  audio();audio_in();
}
 void to_Timer(){newPosition = myEnc.read()/4;}
 
 void loop(){delay(10);
  if(analogRead(A0)<900){menu++;cl1();myEnc.write(0);time=millis();w=1;if(menu>11){menu=0;}}// меню
  if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);time=millis();w=1;irrecv.resume();}// IR приемник  
  
   if(ir.value==CH_UP){menu++;g1=0;g2=0;cl1();time=millis();w=1;if(menu>11){menu=0;}}// меню кнопка CH+
   if(ir.value==CH_DW){menu--;g1=0;g2=0;cl1();time=millis();w=1;if(menu<0){menu=11;}}// меню кнопка CH-
   if(ir.value==CH){menu=0;g1=0;g2=0;cl1();time=millis();w=1;}// меню кнопка CH (menu===0)
   if(ir.value==IN){inn=1;g1=0;g2=0;time=millis();w=1;audio();}//  кнопка IN 
 //////////////////////////////////////// Громкость -79...0 дБ //////////////////////////////////////
 if(menu==0){   
     if(ir.value==VOL_UP){vol++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+  0xFFA857
     if(ir.value==0xFFFFFFFF and g1==1){vol++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
     if(ir.value==VOL_DW){vol--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){vol--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
     if(vol>79){vol=79;}if(vol<0){vol=0;}
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    vol=vol+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(vol>79){vol=79;}if(vol<0){vol=0;}audio();}
  lcd.setCursor(0,0);lcd.print("Volume  ");
  lcd.print(" ");lcd.print(-79+vol);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");vol_d=vol-32;
   for(z=0,z0=0,z1=0;z<=vol_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1,1);lcd.print("    ");}}
   if(z1==3){lcd.setCursor(z0,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0,1);lcd.write((uint8_t)2);}}
 //////////////////////////////////////// Тембр НЧ +-14 дБ //////////////////////////////////////
 if(menu==1){
     if(ir.value==VOL_UP){bass++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){bass++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
     if(ir.value==VOL_DW){bass--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){bass--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
   if(bass<-7){bass=-7;}if(bass>7){bass=7;}
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    bass=bass+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(bass<-7){bass=-7;}if(bass>7){bass=7;}audio();}
  lcd.setCursor(0,0);lcd.print("Bass    ");
  lcd.print(" ");lcd.print(bass*2);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");bass_d=(bass+7)*2;
   for(z=0,z0=0,z1=0;z<=bass_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print("    ");}}
   if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}   
 //////////////////////////////////////// Тембр CЧ +-14 дБ //////////////////////////////////////
 if(menu==2){
     if(ir.value==VOL_UP){mid++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){mid++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
     if(ir.value==VOL_DW){mid--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){mid--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
   if(mid<-7){mid=-7;}if(mid>7){mid=7;}
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    mid=mid+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(mid<-7){mid=-7;}if(mid>7){mid=7;}audio();}
  lcd.setCursor(0,0);lcd.print("Middle  ");
  lcd.print(" ");lcd.print(mid*2);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");mid_d=(mid+7)*2;
   for(z=0,z0=0,z1=0;z<=mid_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print("   ");}}
   if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}} 
 //////////////////////////////////////// Тембр BЧ +-14 дБ //////////////////////////////////////
 if(menu==3){
     if(ir.value==VOL_UP){treb++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){treb++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
     if(ir.value==VOL_DW){treb--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){treb--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
   if(treb<-7){treb=-7;}if(treb>7){treb=7;}
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    treb=treb+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(treb<-7){treb=-7;}if(treb>7){treb=7;}audio();}
  lcd.setCursor(0,0);lcd.print("Treble  ");
  lcd.print(" ");lcd.print(treb*2);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");treb_d=(treb+7)*2;
   for(z=0,z0=0,z1=0;z<=treb_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print("    ");}}
   if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}    
   //////////////////////////////////// rock pop classic //////////////////////      
  if(menu==4){
     if(ir.value==VOL_UP){tembro++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){tembro++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
     if(ir.value==VOL_DW){tembro--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){tembro--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
      if(tembro>4){tembro=0;}if(tembro<0){tembro=4;}
     if (newPosition != oldPosition) {
    oldPosition = newPosition;
    tembro=tembro+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(tembro>4){tembro=0;}if(tembro<0){tembro=4;}}
    lcd.setCursor(0,0);lcd.print(" Preset timbre  ");
    if(tembro==0){lcd.setCursor(0,1);lcd.print("  manual mode  ");}
    if(tembro==1){lcd.setCursor(0,1);lcd.print("      ROCK     ");bass=4,mid=-2;treb=5;x=1;}
    if(tembro==2){lcd.setCursor(0,1);lcd.print("      POP      ");bass=-3,mid=3;treb=-2;x=1;}
    if(tembro==3){lcd.setCursor(0,1);lcd.print("    CLASSIC    ");bass=0,mid=0;treb=-2;x=1;}
    if(tembro==4){lcd.setCursor(0,1);lcd.print("    default    ");bass=0,mid=0;treb=0;x=1;}
    if(x==1){audio();x=0;}
  }
   
  /////////////////////// ATT FL ///////////////////
   if(menu==5){
     if(ir.value==VOL_UP){attfl++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){attfl++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
     if(ir.value==VOL_DW){attfl--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){attfl--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
   if(attfl<-14){attfl=-14;}if(attfl>0){attfl=0;}
     
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    attfl=attfl+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(attfl<-14){attfl=-14;}if(attfl>0){attfl=0;}audio();}
  lcd.setCursor(0,0);lcd.print("ATT FL   ");
  lcd.print(" ");lcd.print(attfl);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");attfl_d=(attfl+14)*2;
   for(z=0,z0=0,z1=0;z<=attfl_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print("    ");}}
   if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}  
  /////////////////////// ATT FR ///////////////////
   if(menu==6){
     if(ir.value==VOL_UP){attfr++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){attfr++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
     if(ir.value==VOL_DW){attfr--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){attfr--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
   if(attfr<-14){attfr=-14;}if(attfr>0){attfr=0;}
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    attfr=attfr+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(attfr<-14){attfr=-14;}if(attfr>0){attfr=0;}audio();}
  lcd.setCursor(0,0);lcd.print("ATT FR   ");
  lcd.print(" ");lcd.print(attfr);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");attfr_d=(attfr+14)*2;
   for(z=0,z0=0,z1=0;z<=attfr_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print("    ");}}
   if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}  
  /////////////////////// ATT TL ///////////////////
  if(menu==7){
     if(ir.value==VOL_UP){atttl++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){atttl++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
     if(ir.value==VOL_DW){atttl--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){atttl--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
   if(atttl<-14){atttl=-14;}if(atttl>0){atttl=0;}
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    atttl=atttl+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(atttl<-14){atttl=-14;}if(atttl>0){atttl=0;}audio();}
  lcd.setCursor(0,0);lcd.print("ATT TL   ");
  lcd.print(" ");lcd.print(atttl);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");atttl_d=(atttl+14)*2;
   for(z=0,z0=0,z1=0;z<=atttl_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print("    ");}}
   if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}} 
 /////////////////////// ATT TR ///////////////////
  if(menu==8){
     if(ir.value==VOL_UP){atttr++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){atttr++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
     if(ir.value==VOL_DW){atttr--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){atttr--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
   if(atttr<-14){atttr=-14;}if(atttr>0){atttr=0;}
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    atttr=atttr+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(atttr<-14){atttr=-14;}if(atttr>0){atttr=0;}audio();}
  lcd.setCursor(0,0);lcd.print("ATT TR   ");
  lcd.print(" ");lcd.print(atttr);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");atttr_d=(atttr+14)*2;
   for(z=0,z0=0,z1=0;z<=atttr_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print("    ");}}
   if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}} 
 /////////////////////// ATT CN ///////////////////
    if(menu==9){
     if(ir.value==VOL_UP){attcn++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){attcn++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
     if(ir.value==VOL_DW){attcn--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){attcn--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
      if(attcn<-14){attcn=-14;}if(attcn>0){attcn=0;}
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    attcn=attcn+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(attcn<-14){attcn=-14;}if(attcn>0){attcn=0;}audio();}
  lcd.setCursor(0,0);lcd.print("ATT CN   ");
  lcd.print(" ");lcd.print(attcn);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");attcn_d=(attcn+14)*2;
   for(z=0,z0=0,z1=0;z<=attcn_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print("    ");}}
   if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}  
  /////////////////////// ATT SUB ///////////////////
     if(menu==10){
     if(ir.value==VOL_UP){attsub++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){attsub++;g2=0;cl();time=millis();w=1;audio();}// кнопка >>>>>>
     if(ir.value==VOL_DW){attsub--;g1=0;g2=1;cl();audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){attsub--;g1=0;cl();time=millis();w=1;audio();}// кнопка <<<<<<
       if(attsub<-14){attsub=-14;}if(attsub>0){attsub=0;time=millis();}
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    attsub=attsub+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(attsub<-14){attsub=-14;}if(attsub>0){attsub=0;}audio();}
  lcd.setCursor(0,0);lcd.print("ATT SUB  ");
  lcd.print(" ");lcd.print(attsub);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");attsub_d=(attsub+14)*2;
   for(z=0,z0=0,z1=0;z<=attsub_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print("    ");}}
   if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}  
   
  //////////////////////////// 3d ///////////////////////////////////////////////
 if(menu==11){
     if(ir.value==VOL_UP){ddd++;g1=1;g2=0;cl1();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){ddd++;g2=0;cl1();time=millis();w=1;audio();}// кнопка >>>>>>
     if(ir.value==VOL_DW){ddd--;g1=0;g2=1;cl1();audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){ddd--;g1=0;cl1();time=millis();w=1;audio();}// кнопка <<<<<<
   if(ddd<0){ddd=1;}if(ddd>1){ddd=0;}
   if (newPosition != oldPosition) {
    oldPosition = newPosition;
    ddd=ddd+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(ddd<0){ddd=1;}if(ddd>1){ddd=0;}audio();}
   lcd.setCursor(0,0); if(ddd==0){lcd.print("     3D  ON  ");}else{lcd.print("     3D  OFF  ");} }  
 //////////// mute ////////////////////////
  if(mute==1&&(digitalRead(12)==HIGH)){mute=0;menu=0;audio();cl1();}  
  if(digitalRead(12)==HIGH){mute=1;menu=100;audio();cl1();}
  if(mute==1){lcd.setCursor(0,0);lcd.print("      MUTE      ");delay(300);}
   
   ////////////////////////////////////////////////////////////////////////////////
  if(digitalRead(11)==HIGH||inn==1){in++;if(in>4){in=0;}audio_in();cl1();lcd.setCursor(0,0);lcd.print("    INPUT  ");lcd.print(in+1);delay(2000);time=millis();w=1;inn=0;}// in
   
   if(millis()-time>10000&& w==1&&mute==0){
     EEPROM.update(0,vol+79);EEPROM.update(1,in);EEPROM.update(2,bass+7);EEPROM.update(3,mid+7);EEPROM.update(4,treb+7);
     EEPROM.update(5,attfl+14);EEPROM.update(7,attcn+14);EEPROM.update(8,attsub+14);EEPROM.update(9,ddd);EEPROM.update(10,tembro);
     EEPROM.update(11,attfr+14);EEPROM.update(12,atttl+14);EEPROM.update(13,atttr+14);
     menu=0;w=0;cl();}
 
   
 }//loop
 
 void cl(){ir.value=0;delay(100);}
 void cl1(){ir.value=0;delay(300);lcd.clear();}
 void audio_in(){
  pt0.setInput(in); 
  pt0.setMute(0,0,0,0,0,0,0); 
  pt0.setFeature(1,1); 
}
 void audio(){
  pt.setFront_lk_att(abs(attfl));// att front L
  pt.setFront_rk_att(abs(attfr));// att front R
  pt.setCenter_att(abs(attcn));  // att center
  pt.setRear_lk_att(abs(atttl)); // att rear L
  pt.setRear_rk_att(abs(atttr)); // att rear R
  pt.setSub_att(abs(attsub));     // att sub
  pt.setFunc(mute,ddd,0); // mute,3d,тембр on/off
  pt.setBass(bass);            // BASS    -14...0...14 dB (int -7...0...7)
  pt.setMiddle(mid);          // MIDDLE  -14...0...14 dB (int -7...0...7)
  pt.setTreble(treb);          // TREBLE  -14...0...14 dB (int -7...0...7)
  pt.setVol(abs(vol)); // -79...0
}

В мониторе порта можно получить коды кнопок Вашего пульта.

Для нормальной работы скетча необходимо скачать дополнительные библиотеки:

IRremote.zip — библиотека изменена

MsTimer2.ZIP

Encoder.zip

Помочь сайту: 100, 200, 500 рублей

Comments

  1. Здравствуйте. Собрал данный проект пока тестирую чтобы заменить четыре переменных сопротивления в microlab X2-5.1. Микросхему pt2323 ставить не стал просто кнопку не поставлю,так как в прошивках я ноль. Хотя смог подключить ик пульт сообразил что если под строкой «if(ir.value==0xFFE21D){menu++;f1=1;cl1();if(menu>10){menu=0;}}// кнопка > 0xFFE21D ///0xFFE21D
    if(ir.value==0xFFFFFFFF&&f1==1){menu++;cl1();if(menu>10){menu=0;}}// кнопка >>>>>>» поставить строку» if(ir.value==0xFFA25D){menu—;f1=1;cl1();if(menu 0xFFA25D ///0xFFA25D
    if(ir.value==0xFFFFFFFF&&f1==1){menu—;cl1();if(menu<0){menu=10;}}// кнопка <<<<<<"
    то меню можно крутить на пульте кнопка CH+ вперед, а CH-назад. Теперь самое главное хочу оставшиеся три кнопки поменять на энкодер. только понял что надо прописать "#include » и «Encoder myEnc(9, 8);//CLK, DT», дальше тупик. Поэтому прошу помощи. Заранее благодарен.

    1. Здравствуйте! Откройте монитор порта, в нем при нажатии на кнопки пульта должны отображаться коды кнопок, выпишите их значения и напишите данные кнопок на адрес liman324@yandex.ru. Используйте скетч основной с энкодером (проверьте работоспособность), ДУ пульт к нему проще сделать. Нужно выкинуть из кода все что касается pt2323. pt2322 имеет вход 5.1, поэтому источник сигнала у Вас должен быть тоже 5.1. pt2323 преобразует стерео в 5.1.

  2. hi, i copied the code and when compiling, it displays error
    Arduino: 1.8.5 (Windows 7), Board: «Arduino Duemilanove or Diecimila, ATmega328P»

    pt_2322:8: error: ‘Liquid’ does not name a type

    Liquid Crystal lcd ( 7 , 6 , 2 , 3 , 4 , 5 ) ; // RS, E, D4, D5, D6, D7 LCD connection

    ^

    G:\arduino lib\my_first_program\sketch_feb05a\pt_2322\pt_2322.ino: In function ‘void setup()’:

    pt_2322:16: error: ‘lcd’ was not declared in this scope

    lcd. begin ( 16 , 2 ) ; lcd. createChar ( 0 , a1 ) ; lcd. createChar ( 1 , a2 ) ;

    ^

    G:\arduino lib\my_first_program\sketch_feb05a\pt_2322\pt_2322.ino: In function ‘void loop()’:

    pt_2322:29: error: expected ‘)’ before ‘!’ token

    if ( analogRead ( A0 ) > 900 && mute ! = 1 ) { menu ++; cl ( ) ; time = millis ( ) ; w = 1 ; if ( menu > 11 ) { menu = 0 ; } } // menu

    ^

    pt_2322:34: error: expected primary-expression before ‘;’ token

    if ( analogRead( A2 ) > 900 ) { vol -; w = 1 ; if ( vol = 0 ) { for ( z = 0 ; z = 0 ) { for ( z = 0 ; z 900 ) { bass -; w = 1 ; if ( bass = 0 ) { for ( z = 0 ; z = 0 ) { for ( z = 0 ; z 900 ) { mid -; w = 1 ; if ( mid = 0 ) { for ( z = 0 ; z = 0 ) { for ( z = 0 ; z 900 ) { treb -; w = 1 ; if ( treb = 0 ) { for ( z = 0 ; z = 0 ) { for ( z = 0 ; z 900 ){ tembro -; w = 1 ; if ( tembro 900) { attfl -; w = 1 ; if ( attfl = 0 ) { for ( z = 0 ; z = 0 ) { for ( z = 0 ; z 900) { attfr -; w = 1 ; if ( attfr = 0 ) { for ( z = 0 ; z = 0 ) { for ( z = 0 ; z 900) { atttl -; w = 1 ; if ( atttl = 0 ) { for ( z = 0 ; z = 0 ) { for ( z = 0 ; z 900) { atttr -; w = 1 ; if ( atttr = 0 ) { for ( z = 0 ; z = 0 ) { for ( z = 0 ; z 900) { attcn -; w = 1 ; if ( attcn = 0 ) { for ( z = 0 ; z = 0 ) { for ( z = 0 ; z 900 ) { attsub -; w = 1 ; if ( attsub = 0 ) { for ( z = 0 ; z = 0 ) { for ( z = 0 ; z 900 ) { ddd -; w = 1 ; if ( ddd 900 ) { in ++; if ( in > 4 ) { in = 0 ; } audio1 ( ) ; cl ( ) ; lcd. setCursor ( 0 , 0 ) ; lcd. print ( «INPUT» ) ; lcd. print ( in + 1 ); delay ( 2000 ) ; time = millis ( ) ; w = 1 ; } // in

    ^

    pt_2322:160: error: ‘lcd’ was not declared in this scope

    if ( mute == 1 ) { lcd. setCursor ( 0 , 0 ) ; lcd. print ( «MUTE» ) ; delay ( 300 ) ; }

    ^

    G:\arduino lib\my_first_program\sketch_feb05a\pt_2322\pt_2322.ino: In function ‘void cl()’:

    pt_2322:174: error: ‘lcd’ was not declared in this scope

    void cl ( ) { delay ( 300 ) ; lcd. clear ( ) ; }

    ^

    exit status 1
    ‘Liquid’ does not name a type

    This report would have more information with
    «Show verbose output during compilation»
    option enabled in File -> Preferences.

    please let me know how to correct this

      1. Hi liman,
        i have used copy and paste from your sketch. I couldnot send in the sketch, since i am new user to arduino and even computers. I can copy and paste here, if you want.Thanls for help.
        i also had similar error with tda 7439 code also. i am first experimenting whether i can program the arduino and then i plan to build the tda 7439.The pt2322 and 2323 is already made, and i am waiting for the code. any help is much appreciated

  3. Hi,

    The lcd and push buttons work very well.I am yet to connect to the pt2322 board to test the audio performance. I notice a lcd flickers when displaying volume and main menu like bass, treble. It becomes normal when i push plus /minus button.I noticed a small capacitor between vss and vdd in the lcd board in the video.whats its value, and is it important to avoid flicker?

  4. Thanks. Connected to the board, but there’s no audio. The display hangs at «preset timbre Rock».After that,no buttons work. However, if I remove the SDA SCL pins from Arduino,the display comes back to volume and all the buttons function. Do I conclude that the PT2322 OR 2323 IS defective?

  5. sda connected to a4, scl connected to a5.The pcb has both sdl and scl pins of each chip, tied together in parallel,similar to the circuit diagram.Do i need to run seperate wires,which again anyway will be in parallel connection.

    BTW, if i want to use the pt2322 chip alone as a stanby stereo preamplifier,with 3 band tone control and 3d, Is it possible?

    I have seen you have given numerous tone control codes with TDA series, like tda 7439,7419 etc. These are not widely available, as well as they are not diy friendly like a pt2322, which is available in DIP. It will greatly help many hobbyists like me, if you can give us a standalone stereo preamp with 3 band tone control and gain control with just one pt2322. A similar project exists on the web in the website oddwires.blog, but its very unclear and there is no pin connections clearly given as it is given here. Thanks for the help

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

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