126

Re: PT2323+TDA7448

Подключил процессоры, запустил сканер и он висит в режиме сканирования и все...

127

Re: PT2323+TDA7448

Посмотрите стоят ли на плате с аудипроцессорами по шине I2C подтягивающие резисторы по 4,7 кОм к +5В. Если нет то их надо установить.

128

Re: PT2323+TDA7448

Хорошо, но боюсь уже сегодня не успею. Спасибо вам за уделенное мне сегодня время!
Задам сразу еще пару вопросов

Энкодер родной просто имеет три вывода, один на землю и два идут на микропроцессор. Его не хочу трогать, попробую найти похожий, на нем нет вообще никаких опознавательных знаков. Потом отпишусь какой нашел.

Подключение кнопок в дальнейшем можно будет сделать на входы D2,D3,D4? Так удобнее в монтаже будет.

129

Re: PT2323+TDA7448

Какие выводы скажите такие и сделаю, программных ограничений для этого нет.

130

Re: PT2323+TDA7448

Добрый день! Сегодня дошли руки продолжить работу. Подключил плату к центру, залил ваш скетч и все прекрасно работает! Звук есть. Начал собирать все в железе. Когда будет готово,тогда продолжим дальше.Я выложу схему, куда что я подключил по ногам.
Есть пока небольшой затык с энкодером. Точно такого найти не смог,поэтому переставлю его.
У него три вывода, один на землю соединен, два других идут на МП и  каждая нога шунтирована конденсатором на 1.5 нФ на землю.
Я так понимаю,мне так же все это к ардуине подключить?

131

Re: PT2323+TDA7448

У энкодера есть выводы CLK DT и GND. Выводы CLK и DT должны иметь подтягивающие резисторы по 10 кОм на +5В. В модуле энкодера резисторы уже установлены, Вам придется их устанавливать отдельно.

132

Re: PT2323+TDA7448

В моей схеме их нет, я так понимаю это для подключения к ардуино они требуются? Поставлю, не проблема. Проблема понять какой вывод CLK, а какой DT

133

Re: PT2323+TDA7448

Это не имеет значение, просто энкодер будет работать в другую сторону, можно поменять местами провода или программно.

134

Re: PT2323+TDA7448

Ну тогда отлично. Спасибо еще раз. Закончу железо, продолжим дальше.

135

Re: PT2323+TDA7448

Доброго времени суток! Все работает, все хорошо) Подскажите, пожалуйста, как правильно сделать, чтобы при включении режима блютус (вход BT) на каком-нибудь пине ардуино появлялось 5 вольт и пропадало при выборе любого другого входа?

Dapox11 пишет:

Итоговый скетч:

#define IR_8 0xFF21DE // Кнопка MENU (input sel)
#define IR_3 0xFF09F6 // Кнопка > (Vol+)
#define IR_4 0xFF29D6 // Кнопка < (Vol-)
#define MUTE 0xFF41BE // Кнопка MUTE
#define MODE 0xFF619E // Кнопка MODE
#define IR_5 0xFF8976 // Кнопка CH+
#define IR_6 0xFF6996 // Кнопка CH-
#define IR_7 0xFFA15E // Кнопка Reset
#define STBY 0xFF01FE // Кнопка Standby
#define TU_1 0xFF916E // Кнопка Tune-
#define TU_2 0xFF51AE // Кнопка Tune+
//#define BRIG_H 250
//#define BRIG_L 0

#include <Wire.h> 
#include <PT2323.h>
#include <TDA7448.h> 
#include <Encoder.h>
#include <EEPROM.h>
#include <MsTimer2.h>
#include <boarddefs.h>
#include <IRremote.h>
#include <LiquidCrystal.h>
  TDA7448 tda;
  PT2323 pt; 
 IRrecv irrecv(10); // указываем вывод модуля IR приемника
 decode_results ir;
 LiquidCrystal lcd(7, 6, 2, 3, 4, 5);// RS,E,D4,D5,D6,D7 подключение LCD
 Encoder myEnc(9, 8);//CLK, DT подключение энкодера
   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,times,oldPosition  = -999;
  int x,i,w,w1,menu,menu1=0,vol,vol_d,z,z0,z1,gr1,gr2,in,att1,att2,att3,att4,att5,att6;
  bool mute,power;
  
void setup(){
   Serial.begin(9600);Wire.begin();irrecv.enableIRIn(); // запускаем модуль IR
   lcd.begin(8, 2);
   pinMode(13,INPUT);    // КНОПКА ЭНКОДЕРA
   pinMode(12,OUTPUT);   // выход управления MUTE
   pinMode(11,OUTPUT);   // output LED
   digitalWrite(11,HIGH);
   MsTimer2::set(3, to_Timer);MsTimer2::start();
   lcd.createChar(0,a1);lcd.createChar(1,a2);lcd.createChar(2,a3);
   lcd.setCursor(0,0);lcd.print("TDA 7448");
   lcd.setCursor(0,1);lcd.print("PT  2323");
   delay(1000);cl();
   if(EEPROM.read(100)!=0){for(i=0;i<101;i++){EEPROM.update(i,0);}}// очистка памяти при первом включении 
   vol = EEPROM.read(0)-79;in = EEPROM.read(1);
   att1 = EEPROM.read(11);att2 = EEPROM.read(12);att3 = EEPROM.read(13);att4 = EEPROM.read(14);att5 = EEPROM.read(15);att6 = EEPROM.read(16);
   audio_tda();audio_pt();
   digitalWrite(12,LOW);
}

void loop(){
  if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);times=millis();w=1;w1=1;irrecv.resume();} // IR приемник
  if(ir.value==0){gr1=0;gr2=0;}
  if(mute==0&&power==0){
  if(digitalRead(13)==HIGH&&menu!=100){menu++;x++;cl();myEnc.write(0);times=millis();w=1;w1=1;if(menu>1){menu=0;}} // меню input
  if(x>5){menu1=1;menu=100;lcd.setCursor(0,0);lcd.print("ATTENUAT");delay(1000);}
  if(digitalRead(13)==LOW){x=0;}
  if(digitalRead(13)==HIGH&&menu==100){menu1++;cl();myEnc.write(0);times=millis();w=1;w1=1;if(menu1>6){menu1=1;}}
  
  //if(ir.value==IR_8){menu++;gr1=0;gr2=0;cl();times=millis();w=1;w1=1;if(menu>1){menu=0;}} // меню input

  if(ir.value==IR_7){menu=0;menu1=0;cl();times=millis();w=1;w1=1;} // кнопка reset
  
  if(menu==0||menu1==1){
  if(ir.value==IR_8){menu1=0;menu=1;gr1=0;gr2=0;cl();times=millis();w=1;w1=1;}} // меню input 
  if(menu==1){
  if(ir.value==IR_8){in++;menu1=0;cl();times=millis();w=1;w1=1;in_func();audio_tda();audio_pt();}} // input - переключение входов с пульта

  if(ir.value==MODE){menu1=1;menu=100;cl();lcd.setCursor(0,0);lcd.print("ATTENUAT");delay(1000);}
  if(ir.value==IR_5&&menu==100){menu1++;cl();myEnc.write(0);times=millis();w=1;w1=1;if(menu1>6){menu1=1;}}
  if(ir.value==IR_6&&menu==100){menu1--;cl();myEnc.write(0);times=millis();w=1;w1=1;if(menu1<1){menu1=6;}}  
  
  }
  if(ir.value==MUTE&&mute==0 && power==0){mute=1;gr1=0;gr2=0;cl1();menu=100;menu1=0;lcd.setCursor(0,0);lcd.print("  MUTE  ");digitalWrite(12,HIGH);}
  if(ir.value==MUTE&&mute==1 && power==0){mute=0;gr1=0;gr2=0;cl1();menu=0;digitalWrite(12,LOW);} 

//////////////////////// POWER //////////////////////////////////////////////////////////////////////////////////////

  if(ir.value==STBY&&power==0){power=1;gr1=0;gr2=0;cl();menu=100;menu1=0;lcd.setCursor(0,0);lcd.print("POWEROFF");digitalWrite(12,HIGH);digitalWrite(11,LOW);delay(2000);cl();}  
  if(ir.value==STBY&&power==1){power=0;gr1=0;gr2=0;cl();menu=0;cl();lcd.setCursor(0,0);lcd.print("POWER ON");digitalWrite(12,LOW);digitalWrite(11,HIGH);delay(2000);cl();} 

/////////////////////// VOLUME ///////////////////////////////////////////////////////////////////////////////////////
 if(menu==0){
     if(ir.value==IR_3){vol++;gr1=1;gr2=0;cl1();w1=1;vol_func();audio_tda();audio_pt();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){vol++;gr2=0;cl1();w1=1;vol_func();audio_tda();audio_pt();}// кнопка >>>>>>
     if(ir.value==IR_4){vol--;gr1=0;gr2=1;cl1();w1=1;vol_func();audio_tda();audio_pt();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){vol--;gr1=0;cl1();w1=1;vol_func();audio_tda();audio_pt();}// кнопка <<<<<<
  
   if (newPosition != oldPosition) {
   oldPosition = newPosition;
   vol=vol+newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;vol_func();audio_tda();audio_pt();}
  lcd.setCursor(0,0);lcd.print(" VOL");
  lcd.print("  ");lcd.print(79+vol);lcd.print(" ");lcd.setCursor(5,0);lcd.print(" ");vol_d=map(abs(vol), 79,0,  0,24);
    if(w1==1){
   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);}w1=0;}}

 /////////////////// INPUT //////////////////////////////////////////////////////////////////////////////////////// 
  if(menu==1){
     //if(ir.value==IR_3){in++;gr1=1;gr2=0;cl1();w1=1;in_func();audio_tda();audio_pt();}// кнопка > 
     //if(ir.value==0xFFFFFFFF and gr1==1){in++;gr2=0;cl1();w1=1;in_func();audio_tda();audio_pt();}// кнопка >>>>>>
     //if(ir.value==IR_4){in--;gr1=0;gr2=1;cl1();w1=1;in_func();audio_tda();audio_pt();}// кнопка <
     //if(ir.value==0xFFFFFFFF and gr2==1){in--;gr1=0;cl1();w1=1;in_func();audio_tda();audio_pt();}// кнопка <<<<<<
    
   if (newPosition != oldPosition) {
   oldPosition = newPosition;
   in=in+newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;in_func();audio_tda();audio_pt();}
 lcd.setCursor(0,0);lcd.print(" INPUT  ");
 lcd.setCursor(0,1);
 switch(in){case 0: lcd.print("  AUX   "); break;
            case 1: lcd.print("  MP3   "); break;
            case 2: lcd.print("  BT    "); break;
            case 3: lcd.print(" Radio  "); break;
            case 4: lcd.print("  5.1   "); break;}} // пропишите свои названия входов


///////////////////////////////////// Att //////////////////////////////////////////
 
 if(menu1==1){
     if(ir.value==IR_4){att1++;gr1=1;gr2=0;cl1();w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;};audio_tda();audio_pt();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){att1++;gr2=0;cl1();w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;};audio_tda();audio_pt();}// кнопка >>>>>>
     if(ir.value==IR_3){att1--;gr1=0;gr2=1;cl1();w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;};audio_tda();audio_pt();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){att1--;gr1=0;cl1();w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;};audio_tda();audio_pt();}// кнопка <<<<<<
     
   if (newPosition != oldPosition) {
   oldPosition = newPosition;
   att1=att1-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;}audio_tda();audio_pt();}
   lcd.setCursor(0,0);lcd.print("ATTENUAT");
   lcd.setCursor(0,1);lcd.print("FL ");lcd.setCursor(3,1);
   if(-att1>-1){lcd.print(" 0 ");}
   else{lcd.print(-att1);if(-att1>-10){lcd.print(" ");}}
   lcd.setCursor(6,1);lcd.print("dB");
 }

  if(menu1==2){
     if(ir.value==IR_4){att2++;gr1=1;gr2=0;cl1();w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;};audio_tda();audio_pt();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){att2++;gr2=0;cl1();w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;};audio_tda();audio_pt();}// кнопка >>>>>>
     if(ir.value==IR_3){att2--;gr1=0;gr2=1;cl1();w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;};audio_tda();audio_pt();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){att2--;gr1=0;cl1();w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;};audio_tda();audio_pt();}// кнопка <<<<<<
        
   if (newPosition != oldPosition) {
   oldPosition = newPosition;
   att2=att2-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;}audio_tda();audio_pt();}
   lcd.setCursor(0,0);lcd.print("ATTENUAT");
   lcd.setCursor(0,1);lcd.print("FR");lcd.setCursor(3,1);
   if(-att2>-1){lcd.print(" 0 ");}
   else{lcd.print(-att2);if(-att2>-10){lcd.print(" ");}}
   lcd.setCursor(6,1);lcd.print("dB");
 }

  if(menu1==3){
     if(ir.value==IR_4){att3++;gr1=1;gr2=0;cl1();w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;};audio_tda();audio_pt();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){att3++;gr2=0;cl1();w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;};audio_tda();audio_pt();}// кнопка >>>>>>
     if(ir.value==IR_3){att3--;gr1=0;gr2=1;cl1();w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;};audio_tda();audio_pt();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){att3--;gr1=0;cl1();w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;};audio_tda();audio_pt();}// кнопка <<<<<<
   
   if (newPosition != oldPosition) {
   oldPosition = newPosition;
   att3=att3-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;}audio_tda();audio_pt();}
   lcd.setCursor(0,0);lcd.print("ATTENUAT");
   lcd.setCursor(0,1);lcd.print("CT");lcd.setCursor(3,1);
   if(-att3>-1){lcd.print(" 0 ");}
   else{lcd.print(-att3);if(-att3>-10){lcd.print(" ");}}
   lcd.setCursor(6,1);lcd.print("dB");
 }

  if(menu1==4){
     if(ir.value==IR_4){att4++;gr1=1;gr2=0;cl1();w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;};audio_tda();audio_pt();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){att4++;gr2=0;cl1();w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;};audio_tda();audio_pt();}// кнопка >>>>>>
     if(ir.value==IR_3){att4--;gr1=0;gr2=1;cl1();w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;};audio_tda();audio_pt();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){att4--;gr1=0;cl1();w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;};audio_tda();audio_pt();}// кнопка <<<<<<   
   
   if (newPosition != oldPosition) {
   oldPosition = newPosition;
   att4=att4-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;}audio_tda();audio_pt();}
   lcd.setCursor(0,0);lcd.print("ATTENUAT");
   lcd.setCursor(0,1);lcd.print("SUB");lcd.setCursor(3,1);
   if(-att4>-1){lcd.print(" 0 ");}
   else{lcd.print(-att4);if(-att4>-10){lcd.print(" ");}}
   lcd.setCursor(6,1);lcd.print("dB");
 }

  if(menu1==5){
     if(ir.value==IR_4){att5++;gr1=1;gr2=0;cl1();w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;};audio_tda();audio_pt();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){att5++;gr2=0;cl1();w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;};audio_tda();audio_pt();}// кнопка >>>>>>
     if(ir.value==IR_3){att5--;gr1=0;gr2=1;cl1();w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;};audio_tda();audio_pt();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){att5--;gr1=0;cl1();w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;};audio_tda();audio_pt();}// кнопка <<<<<<
   
   if (newPosition != oldPosition) {
   oldPosition = newPosition;
   att5=att5-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;}audio_tda();audio_pt();}
   lcd.setCursor(0,0);lcd.print("ATTENUAT");
   lcd.setCursor(0,1);lcd.print("SL");lcd.setCursor(3,1);
   if(-att5>-1){lcd.print(" 0 ");}
   else{lcd.print(-att5);if(-att5>-10){lcd.print(" ");}}
   lcd.setCursor(6,1);lcd.print("dB");
 }

  if(menu1==6){
     if(ir.value==IR_4){att6++;gr1=1;gr2=0;cl1();w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;};audio_tda();audio_pt();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){att6++;gr2=0;cl1();w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;};audio_tda();audio_pt();}// кнопка >>>>>>
     if(ir.value==IR_3){att6--;gr1=0;gr2=1;cl1();w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;};audio_tda();audio_pt();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){att6--;gr1=0;cl1();w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;};audio_tda();audio_pt();}// кнопка <<<<<<   
   
   if (newPosition != oldPosition) {
   oldPosition = newPosition;
   att6=att6-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;}audio_tda();audio_pt();}
   lcd.setCursor(0,0);lcd.print("ATTENUAT");
   lcd.setCursor(0,1);lcd.print("SR");lcd.setCursor(3,1);
   if(-att6>-1){lcd.print(" 0 ");}
   else{lcd.print(-att6);if(-att6>-10){lcd.print(" ");}}
   lcd.setCursor(6,1);lcd.print("dB");
 }

 ///////////////// EEPROM ///////////////////////////////////////////////////////////////////////////////////////
 if(millis()-times>10000 && w==1){
     EEPROM.update(0,vol+79);
     EEPROM.update(1,in);
     EEPROM.update(11,att1);EEPROM.update(12,att2);EEPROM.update(13,att3);EEPROM.update(14,att4);EEPROM.update(15,att5);EEPROM.update(16,att6);
     menu=0;cl();w=0,w1=1;menu1=0;}
  
}//loop

void in_func(){if(in<0){in=4;}if(in>4){in=0;}}
void vol_func(){if(vol>0){vol=0;}if(vol<-79){vol=-79;}}
void cl(){ir.value=0;delay(300);lcd.clear();}
void cl1(){ir.value=0;delay(100);}
void audio_pt(){
  pt.setInput(in); // входы 1...4 (0...3) или 6 моно (4)
  pt.setMute(0,0,0,0,0,0,0); 
  pt.setFeature(0,1); // дополнительные функции 0...3
                     // 0 - Enhanced Surround Function Active
                     // 1 - Enhanced Surround Function Disabled
                     // 0 - Mixed Channel (0dB) Setup
                     // 1 - Mixed Channel (+6dB) Setup 
}
void audio_tda(){
  tda.setAtt(1,vol-att1);// 0 макс громк, -79(79) мин громк
  tda.setAtt(2,vol-att2);
  tda.setAtt(3,vol-att3);
  tda.setAtt(4,vol-att4);
  tda.setAtt(5,vol-att5);
  tda.setAtt(6,vol-att6);
  }

void to_Timer(){newPosition = myEnc.read()/4;}

136

Re: PT2323+TDA7448

Вставить в основной цикл loop()

if(in==2){digitalWrite(номер_пина,HIGH);}else{digitalWrite(номер_пина,LOW);}

137 (2022-04-11 20:19:00 отредактировано Dapox11)

Re: PT2323+TDA7448

Спасибо, все работает!

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

pinMode(12,OUTPUT);   // выход управления MUTE
pinMode(A0,OUTPUT);   // питание блютус
if(in==1){digitalWrite(12,HIGH);digitalWrite(A0,HIGH);delay(500);digitalWrite(12,LOW);}else{digitalWrite(A0,LOW);}

Полагаю, что оператор If..else так не умеет)) Или надо как-то позаковыристее написать?

138

Re: PT2323+TDA7448

У Вас в цикле этот код? Он должен исполняться только один раз при переключении входа.
У Вас вход MUTE не инверсный, точно активация MUTE при +5В ?

139

Re: PT2323+TDA7448

В условие нажатия кнопки INPUT добавьте переменную, например  flag =1;

if(in==1 && flag==1){flag=0; digitalWrite(12,HIGH);digitalWrite(A0,HIGH);delay(500);digitalWrite(12,LOW);}else{digitalWrite(A0,LOW);}

140

Re: PT2323+TDA7448

Mute активируется точно через +5В, на плате усилителя для этого специально сделана обвязка штатно китайцами)
И да, команда должна исполняться только один раз при включении входа, значит в основном цикле loop() ей не место?

141

Re: PT2323+TDA7448

liman324 пишет:

В условие нажатия кнопки INPUT добавьте переменную, например  flag =1;

ругается... 'flag' was not declared in this scope

142

Re: PT2323+TDA7448

Эту переменную надо объявить

bool flag;

143

Re: PT2323+TDA7448

Если закомментировать строчку в основном цикле loop, то ничего не работает, mute не включается и питание блютус тоже.
Если раскомментировать строчку в цикле loop, то происходит следующее - при выборе источника блютус с задержкой в 10 секунд он с целчком включается

144

Re: PT2323+TDA7448

Опубликуйте скетч со всеми изменениями.

145

Re: PT2323+TDA7448

#define IR_8 0xFF21DE // Кнопка MENU (input sel)
#define IR_3 0xFF09F6 // Кнопка > (Vol+)
#define IR_4 0xFF29D6 // Кнопка < (Vol-)
#define MUTE 0xFF41BE // Кнопка MUTE
#define MODE 0xFF619E // Кнопка MODE
#define IR_5 0xFF8976 // Кнопка CH+
#define IR_6 0xFF6996 // Кнопка CH-
#define IR_7 0xFFA15E // Кнопка Reset
#define STBY 0xFF01FE // Кнопка Standby
#define TU_1 0xFF916E // Кнопка Tune-
#define TU_2 0xFF51AE // Кнопка Tune+
//#define BRIG_H 250
//#define BRIG_L 0

#include <Wire.h> 
#include <PT2323.h>
#include <TDA7448.h> 
#include <Encoder.h>
#include <EEPROM.h>
#include <MsTimer2.h>
#include <boarddefs.h>
#include <IRremote.h>
#include <LiquidCrystal.h>
  TDA7448 tda;
  PT2323 pt; 
 IRrecv irrecv(10); // указываем вывод модуля IR приемника
 decode_results ir;
 LiquidCrystal lcd(7, 6, 2, 3, 4, 5);// RS,E,D4,D5,D6,D7 подключение LCD
 Encoder myEnc(9, 8);//CLK, DT подключение энкодера
   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,times,oldPosition  = -999;
  int x,i,w,w1,menu,menu1=0,vol,vol_d,z,z0,z1,gr1,gr2,in,att1,att2,att3,att4,att5,att6;
  bool mute,power,flag;
  
void setup(){
   Serial.begin(9600);Wire.begin();irrecv.enableIRIn(); // запускаем модуль IR
   lcd.begin(8, 2);
   pinMode(A0,OUTPUT);   // питание блютус
   pinMode(13,INPUT);    // КНОПКА ЭНКОДЕРA
   pinMode(12,OUTPUT);   // выход управления MUTE
   pinMode(11,OUTPUT);   // output LED
   digitalWrite(11,HIGH);
   MsTimer2::set(3, to_Timer);MsTimer2::start();
   lcd.createChar(0,a1);lcd.createChar(1,a2);lcd.createChar(2,a3);
   lcd.setCursor(0,0);lcd.print("TDA 7448");
   lcd.setCursor(0,1);lcd.print("PT  2323");
   delay(1000);cl();
   digitalWrite(12,HIGH); // mute, чтобы избежать хлопка при включении
   lcd.setCursor(0,0);lcd.print("SOFT-RWR");
   delay(1000);
   if(EEPROM.read(100)!=0){for(i=0;i<101;i++){EEPROM.update(i,0);}}// очистка памяти при первом включении 
   vol = EEPROM.read(0)-79;in = EEPROM.read(1);
   att1 = EEPROM.read(11);att2 = EEPROM.read(12);att3 = EEPROM.read(13);att4 = EEPROM.read(14);att5 = EEPROM.read(15);att6 = EEPROM.read(16);
   audio_tda();audio_pt();
   delay(1500);cl();
   digitalWrite(12,LOW); // выключение mute
}

void loop(){
  //if(in==1){digitalWrite(A0,HIGH);}else{digitalWrite(A0,LOW);} //вкл-выкл питания блютус
  if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);times=millis();w=1;w1=1;irrecv.resume();} // IR приемник
  if(ir.value==0){gr1=0;gr2=0;}
  if(mute==0&&power==0){
  if(digitalRead(13)==HIGH&&menu!=100){menu++;x++;cl();myEnc.write(0);times=millis();w=1;w1=1;if(menu>1){menu=0;}} // меню input
  if(x>5){menu1=1;menu=100;lcd.setCursor(0,0);lcd.print("ATTENUAT");delay(1000);}
  if(digitalRead(13)==LOW){x=0;}
  if(digitalRead(13)==HIGH&&menu==100){menu1++;cl();myEnc.write(0);times=millis();w=1;w1=1;if(menu1>6){menu1=1;}}
  
  //if(ir.value==IR_8){menu++;gr1=0;gr2=0;cl();times=millis();w=1;w1=1;if(menu>1){menu=0;}} // меню input

  if(ir.value==IR_7){menu=0;menu1=0;cl();times=millis();w=1;w1=1;} // кнопка reset
  
  if(menu==0||menu1==1){
  if(ir.value==IR_8){menu1=0;menu=1;gr1=0;gr2=0;cl();times=millis();w=1;w1=1;}} // меню input 
  if(menu==1){
  if(ir.value==IR_8){in++;menu1=0;cl();times=millis();w=1;w1=1;in_func();audio_tda();audio_pt();}} // input - переключение входов с пульта

  if(ir.value==MODE){menu1=1;menu=100;cl();lcd.setCursor(0,0);lcd.print("ATTENUAT");delay(1000);}
  if(ir.value==IR_5&&menu==100){menu1++;cl();myEnc.write(0);times=millis();w=1;w1=1;if(menu1>6){menu1=1;}}
  if(ir.value==IR_6&&menu==100){menu1--;cl();myEnc.write(0);times=millis();w=1;w1=1;if(menu1<1){menu1=6;}}  
  
  }
  if(ir.value==MUTE&&mute==0 && power==0){mute=1;gr1=0;gr2=0;cl1();menu=100;menu1=0;lcd.setCursor(0,0);lcd.print("  MUTE  ");digitalWrite(12,HIGH);}
  if(ir.value==MUTE&&mute==1 && power==0){mute=0;gr1=0;gr2=0;cl1();menu=0;digitalWrite(12,LOW);} 

//////////////////////// POWER //////////////////////////////////////////////////////////////////////////////////////

  if(ir.value==STBY&&power==0){power=1;gr1=0;gr2=0;cl();menu=100;menu1=0;lcd.setCursor(0,0);lcd.print("POWEROFF");digitalWrite(12,HIGH);digitalWrite(11,LOW);delay(2000);cl();}  
  if(ir.value==STBY&&power==1){power=0;gr1=0;gr2=0;cl();menu=0;cl();lcd.setCursor(0,0);lcd.print("POWER ON");digitalWrite(12,LOW);digitalWrite(11,HIGH);delay(2000);cl();} 

/////////////////////// VOLUME ///////////////////////////////////////////////////////////////////////////////////////
 if(menu==0){
     if(ir.value==IR_3){vol++;gr1=1;gr2=0;cl1();w1=1;vol_func();audio_tda();audio_pt();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){vol++;gr2=0;cl1();w1=1;vol_func();audio_tda();audio_pt();}// кнопка >>>>>>
     if(ir.value==IR_4){vol--;gr1=0;gr2=1;cl1();w1=1;vol_func();audio_tda();audio_pt();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){vol--;gr1=0;cl1();w1=1;vol_func();audio_tda();audio_pt();}// кнопка <<<<<<
  
   if (newPosition != oldPosition) {
   oldPosition = newPosition;
   vol=vol+newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;vol_func();audio_tda();audio_pt();}
  lcd.setCursor(0,0);lcd.print(" VOL");
  lcd.print("  ");lcd.print(79+vol);lcd.print(" ");lcd.setCursor(5,0);lcd.print(" ");vol_d=map(abs(vol), 79,0,  0,24);
    if(w1==1){
   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);}w1=0;}}

 /////////////////// INPUT //////////////////////////////////////////////////////////////////////////////////////// 
  if(in==1&&flag==1){flag=0;digitalWrite(12,HIGH);digitalWrite(A0,HIGH);delay(500);digitalWrite(12,LOW);}else{digitalWrite(A0,LOW);}  //вкл-выкл блютус
  
  if(menu==1){
     //if(ir.value==IR_3){in++;gr1=1;gr2=0;cl1();w1=1;in_func();audio_tda();audio_pt();}// кнопка > 
     //if(ir.value==0xFFFFFFFF and gr1==1){in++;gr2=0;cl1();w1=1;in_func();audio_tda();audio_pt();}// кнопка >>>>>>
     //if(ir.value==IR_4){in--;gr1=0;gr2=1;cl1();w1=1;in_func();audio_tda();audio_pt();}// кнопка <
     //if(ir.value==0xFFFFFFFF and gr2==1){in--;gr1=0;cl1();w1=1;in_func();audio_tda();audio_pt();}// кнопка <<<<<<
    
   if (newPosition != oldPosition) {
   oldPosition = newPosition;
   in=in+newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;in_func();audio_tda();audio_pt();}
 lcd.setCursor(0,0);lcd.print(" INPUT  ");
 lcd.setCursor(0,1);
 switch(in){case 0: lcd.print("  AUX   "); break;
            case 1: lcd.print("   BT   "); break;
            case 2: lcd.print("  ---   "); break;
            case 3: lcd.print(" -----  "); break;
            case 4: lcd.print("  5.1   "); break;}} // пропишите свои названия входов


///////////////////////////////////// Att //////////////////////////////////////////
 
 if(menu1==1){
     if(ir.value==IR_4){att1++;gr1=1;gr2=0;cl1();w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;};audio_tda();audio_pt();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){att1++;gr2=0;cl1();w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;};audio_tda();audio_pt();}// кнопка >>>>>>
     if(ir.value==IR_3){att1--;gr1=0;gr2=1;cl1();w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;};audio_tda();audio_pt();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){att1--;gr1=0;cl1();w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;};audio_tda();audio_pt();}// кнопка <<<<<<
     
   if (newPosition != oldPosition) {
   oldPosition = newPosition;
   att1=att1-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att1>20){att1=20;}if(att1<0){att1=0;}audio_tda();audio_pt();}
   lcd.setCursor(0,0);lcd.print("ATTENUAT");
   lcd.setCursor(0,1);lcd.print("FL ");lcd.setCursor(3,1);
   if(-att1>-1){lcd.print(" 0 ");}
   else{lcd.print(-att1);if(-att1>-10){lcd.print(" ");}}
   lcd.setCursor(6,1);lcd.print("dB");
 }

  if(menu1==2){
     if(ir.value==IR_4){att2++;gr1=1;gr2=0;cl1();w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;};audio_tda();audio_pt();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){att2++;gr2=0;cl1();w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;};audio_tda();audio_pt();}// кнопка >>>>>>
     if(ir.value==IR_3){att2--;gr1=0;gr2=1;cl1();w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;};audio_tda();audio_pt();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){att2--;gr1=0;cl1();w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;};audio_tda();audio_pt();}// кнопка <<<<<<
        
   if (newPosition != oldPosition) {
   oldPosition = newPosition;
   att2=att2-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att2>20){att2=20;}if(att2<0){att2=0;}audio_tda();audio_pt();}
   lcd.setCursor(0,0);lcd.print("ATTENUAT");
   lcd.setCursor(0,1);lcd.print("FR ");lcd.setCursor(3,1);
   if(-att2>-1){lcd.print(" 0 ");}
   else{lcd.print(-att2);if(-att2>-10){lcd.print(" ");}}
   lcd.setCursor(6,1);lcd.print("dB");
 }

  if(menu1==3){
     if(ir.value==IR_4){att3++;gr1=1;gr2=0;cl1();w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;};audio_tda();audio_pt();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){att3++;gr2=0;cl1();w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;};audio_tda();audio_pt();}// кнопка >>>>>>
     if(ir.value==IR_3){att3--;gr1=0;gr2=1;cl1();w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;};audio_tda();audio_pt();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){att3--;gr1=0;cl1();w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;};audio_tda();audio_pt();}// кнопка <<<<<<
   
   if (newPosition != oldPosition) {
   oldPosition = newPosition;
   att3=att3-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att3>20){att3=20;}if(att3<0){att3=0;}audio_tda();audio_pt();}
   lcd.setCursor(0,0);lcd.print("ATTENUAT");
   lcd.setCursor(0,1);lcd.print("CT ");lcd.setCursor(3,1);
   if(-att3>-1){lcd.print(" 0 ");}
   else{lcd.print(-att3);if(-att3>-10){lcd.print(" ");}}
   lcd.setCursor(6,1);lcd.print("dB");
 }

  if(menu1==4){
     if(ir.value==IR_4){att4++;gr1=1;gr2=0;cl1();w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;};audio_tda();audio_pt();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){att4++;gr2=0;cl1();w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;};audio_tda();audio_pt();}// кнопка >>>>>>
     if(ir.value==IR_3){att4--;gr1=0;gr2=1;cl1();w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;};audio_tda();audio_pt();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){att4--;gr1=0;cl1();w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;};audio_tda();audio_pt();}// кнопка <<<<<<   
   
   if (newPosition != oldPosition) {
   oldPosition = newPosition;
   att4=att4-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att4>20){att4=20;}if(att4<0){att4=0;}audio_tda();audio_pt();}
   lcd.setCursor(0,0);lcd.print("ATTENUAT");
   lcd.setCursor(0,1);lcd.print("SW ");lcd.setCursor(3,1);
   if(-att4>-1){lcd.print(" 0 ");}
   else{lcd.print(-att4);if(-att4>-10){lcd.print(" ");}}
   lcd.setCursor(6,1);lcd.print("dB");
 }

  if(menu1==5){
     if(ir.value==IR_4){att5++;gr1=1;gr2=0;cl1();w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;};audio_tda();audio_pt();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){att5++;gr2=0;cl1();w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;};audio_tda();audio_pt();}// кнопка >>>>>>
     if(ir.value==IR_3){att5--;gr1=0;gr2=1;cl1();w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;};audio_tda();audio_pt();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){att5--;gr1=0;cl1();w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;};audio_tda();audio_pt();}// кнопка <<<<<<
   
   if (newPosition != oldPosition) {
   oldPosition = newPosition;
   att5=att5-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att5>20){att5=20;}if(att5<0){att5=0;}audio_tda();audio_pt();}
   lcd.setCursor(0,0);lcd.print("ATTENUAT");
   lcd.setCursor(0,1);lcd.print("SL ");lcd.setCursor(3,1);
   if(-att5>-1){lcd.print(" 0 ");}
   else{lcd.print(-att5);if(-att5>-10){lcd.print(" ");}}
   lcd.setCursor(6,1);lcd.print("dB");
 }

  if(menu1==6){
     if(ir.value==IR_4){att6++;gr1=1;gr2=0;cl1();w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;};audio_tda();audio_pt();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){att6++;gr2=0;cl1();w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;};audio_tda();audio_pt();}// кнопка >>>>>>
     if(ir.value==IR_3){att6--;gr1=0;gr2=1;cl1();w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;};audio_tda();audio_pt();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){att6--;gr1=0;cl1();w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;};audio_tda();audio_pt();}// кнопка <<<<<<   
   
   if (newPosition != oldPosition) {
   oldPosition = newPosition;
   att6=att6-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;if(att6>20){att6=20;}if(att6<0){att6=0;}audio_tda();audio_pt();}
   lcd.setCursor(0,0);lcd.print("ATTENUAT");
   lcd.setCursor(0,1);lcd.print("SR ");lcd.setCursor(3,1);
   if(-att6>-1){lcd.print(" 0 ");}
   else{lcd.print(-att6);if(-att6>-10){lcd.print(" ");}}
   lcd.setCursor(6,1);lcd.print("dB");
 }

 ///////////////// EEPROM ///////////////////////////////////////////////////////////////////////////////////////
 if(millis()-times>10000 && w==1){
     EEPROM.update(0,vol+79);
     EEPROM.update(1,in);
     EEPROM.update(11,att1);EEPROM.update(12,att2);EEPROM.update(13,att3);EEPROM.update(14,att4);EEPROM.update(15,att5);EEPROM.update(16,att6);
     menu=0;cl();w=0,w1=1;menu1=0;}
  
}//loop

void in_func(){if(in<0){in=4;}if(in>4){in=0;}}
void vol_func(){if(vol>0){vol=0;}if(vol<-79){vol=-79;}}
void cl(){ir.value=0;delay(300);lcd.clear();}
void cl1(){ir.value=0;delay(100);}
void audio_pt(){
  pt.setInput(in); // входы 1...4 (0...3) или 6 моно (4)
  pt.setMute(0,0,0,0,0,0,0); 
  pt.setFeature(0,1); // дополнительные функции 0...3
                     // 0 - Enhanced Surround Function Active
                     // 1 - Enhanced Surround Function Disabled
                     // 0 - Mixed Channel (0dB) Setup
                     // 1 - Mixed Channel (+6dB) Setup 
}
void audio_tda(){
  tda.setAtt(1,vol-att1);// 0 макс громк, -79(79) мин громк
  tda.setAtt(2,vol-att2);
  tda.setAtt(3,vol-att3);
  tda.setAtt(4,vol-att4);
  tda.setAtt(5,vol-att5);
  tda.setAtt(6,vol-att6);
  }

void to_Timer(){newPosition = myEnc.read()/4;}

146

Re: PT2323+TDA7448

Поменяйте строку:
if(ir.value==IR_8){in++;menu1=0;cl();times=millis();w=1;w1=1;in_func();audio_tda();audio_pt();}} // input - переключение входов с пульта

на

if(ir.value==IR_8){in++;flag=1;menu1=0;cl();times=millis();w=1;w1=1;in_func();audio_tda();audio_pt();}} // input - переключение входов с пульта

147

Re: PT2323+TDA7448

liman324 пишет:

Поменяйте строку:
if(ir.value==IR_8){in++;menu1=0;cl();times=millis();w=1;w1=1;in_func();audio_tda();audio_pt();}} // input - переключение входов с пульта

на

if(ir.value==IR_8){in++;flag=1;menu1=0;cl();times=millis();w=1;w1=1;in_func();audio_tda();audio_pt();}} // input - переключение входов с пульта

Увы, питание блютус не включается

148

Re: PT2323+TDA7448

Замените:

  if(in==1&&flag==1){flag=0;digitalWrite(12,HIGH);digitalWrite(A0,HIGH);delay(500);digitalWrite(12,LOW);}else{digitalWrite(A0,LOW);}  //вкл-выкл блютус

на:

if(in==1&&flag==1){flag=0;digitalWrite(12,HIGH);digitalWrite(A0,HIGH);delay(500);digitalWrite(12,LOW);}// включили блютуc
  if(in!=1){digitalWrite(A0,LOW);} // выключили блютус если вход не IN1

149 (2022-04-11 22:10:22 отредактировано Dapox11)

Re: PT2323+TDA7448

С пульта работает!
С энкодера работает только один раз, первый выбор. Потом все входы работают, а на блютус питание не идет

150

Re: PT2323+TDA7448

if (newPosition != oldPosition) {
   oldPosition = newPosition;
   in=in+newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;in_func();audio_tda();audio_pt();}
Заменить на:
   if (newPosition != oldPosition) {
   oldPosition = newPosition;
   in=in+newPosition;myEnc.write(0);newPosition=0;times=millis();flag=1;w=1;w1=1;in_func();audio_tda();audio_pt();}