76

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

Тогда опубликуйте весь код.

77

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

////////////////////// IR /////////////////////////////////////////////////
    if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);irrecv.resume();time=millis();w=1;}// IR приемник - чтение, в мониторе порта отображаются коды кнопок
    if(ir.value==0){gr1=0;gr2=0;}// запрет нажатий не активных кнопок пульта
    if(ir.value==0x8C03F&&power==0){treb=4;bass=6;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 1   ");delay(1500);}// фиксированная настройка 1
    if(ir.value==0x820DF&&power==0){treb=6;bass=4;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 2   ");delay(1500);}// фиксированная настройка 2
    if(ir.value==0x8A05F&&power==0){treb=6;bass=6;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 3   ");delay(1500);}// фиксированная настройка 3
    if(ir.value==0x8609F&&power==0){treb=2;bass=4;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 4   ");delay(1500);}// фиксированная настройка 4
    if(ir.value==0x8E01F&&power==0){treb=4;bass=2;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 5   ");delay(1500);}// фиксированная настройка 5
    if(ir.value==0x810EF&&power==0){treb=4;bass=4;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 6   ");delay(1500);}// фиксированная настройка 6
    if(ir.value==0x8906F&&power==0){treb=0;bass=2;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 7   ");delay(1500);}// фиксированная настройка 7
    if(ir.value==0x850AF&&power==0){treb=2;bass=0;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 8   ");delay(1500);}// фиксированная настройка 8
    if(ir.value==0x8D02F&&power==0){treb=2;bass=2;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 9   ");delay(1500);}// фиксированная настройка 9
    if(ir.value==0x830CF&&power==0){treb=0;bass=0;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 0   ");delay(1500);}// фиксированная настройка 0 тембры отключить

Вот кусок кода с фиксированными настройками.
(предыдущий код был из темы TDA).

78

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

Вы не отсылаете команду аудиопроцессору при помощи функции audio();

if(ir.value==0x850AF&&power==0){treb=2;bass=0;middle=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 8   ");audio();delay(1500);}// фиксированная настройка 8

79

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

#define IR_1 0x88877 // Кнопка вверх
#define IR_2 0x8A857 // Кнопка вниз
#define IR_3 0x828D7 // Кнопка >
#define IR_4 0x848B7 // Кнопка <
#define IR_5 0x840BF // Кнопка IN
#define IR_6 0x818E7 // Кнопка MUTE
#define IR_7 0x800FF // Кнопка POWER
#define IR_8 0x8D827 // Кнопка MENU2

#include <Wire.h>
#include <BD37534FV.h>// https://github.com/liman324/BD37534FV/a … master.zip
#include <EEPROM.h>
#include <Encoder.h>  // http://rcl-radio.ru/wp-content/uploads/ … ncoder.zip
#include <MsTimer2.h> // http://rcl-radio.ru/wp-content/uploads/ … Timer2.zip
#include <boarddefs.h>
#include <IRremote.h> // http://rcl-radio.ru/wp-content/uploads/ … remote.zip
#include <LiquidCrystal.h>

  BD37534FV tda;
  LiquidCrystal lcd(7, 6, 2, 3, 4, 5);// RS,E,D4,D5,D6,D7
  IRrecv irrecv(12); // указываем вывод модуля IR приемника
  Encoder myEnc(9, 8);//CLK, DT
  decode_results ir;
  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 time,oldPosition  = -999,newPosition;
  int gr1,gr2,vol,vol_d,z,z0,z1,w,w2,menu,treb,treb_d,middle,middle_d,bass,bass_d,in,mute,power,menu2=100,www,gain0,gain1,gain2,gain3,gain_d,lon_f,lon,lon_d;
  int out,vol_out,rf,lf,rt,lt,sab,treb_c,mid_c,bas_c,sab_f,treb_q,mid_q,bas_q,faza;

void setup(){
   Wire.begin();lcd.begin(16, 2);irrecv.enableIRIn();Serial.begin(9600);
   lcd.createChar(0,a1);lcd.createChar(1,a2);lcd.createChar(2,a3);
   lcd.setCursor(0,0);lcd.print("    POWER ON   ");delay(1000);lcd.clear();// ЗАСТАВКА
   MsTimer2::set(3, to_Timer);MsTimer2::start();
   if(EEPROM.read(100)!=0){for(int i=0;i<101;i++){EEPROM.update(i,0);}}// очистка памяти при первом включении
     pinMode(10,INPUT);// МЕНЮ КНОПКА SW энкодера
     pinMode(14,INPUT);// ВЫБОР ВХОДА КНОПКА IN
     pinMode(16,INPUT);// КНОПКА MENU2
     pinMode(15,INPUT);// КНОПКА POWER
     digitalWrite(14,HIGH);// подтягивающий резистор
     digitalWrite(15,HIGH);// подтягивающий резистор
     digitalWrite(16,HIGH);// подтягивающий резистор
     pinMode(13,OUTPUT);//  реле СЕТЬ
     pinMode(11,OUTPUT);//  яркость подсветки
       
     vol = EEPROM.read(0)-79;treb = EEPROM.read(1)-20;middle = EEPROM.read(2)-20;bass = EEPROM.read(3)-20;in = EEPROM.read(4);
     gain1 = EEPROM.read(5);gain2 = EEPROM.read(6);gain3 = EEPROM.read(7);lon = EEPROM.read(8);lon_f = EEPROM.read(9);
     rf = EEPROM.read(10);lf = EEPROM.read(11);rt = EEPROM.read(12);lt = EEPROM.read(13);sab = EEPROM.read(14);
     treb_c = EEPROM.read(15);mid_c = EEPROM.read(16);bas_c = EEPROM.read(17);sab_f = EEPROM.read(18);treb_q = EEPROM.read(19);
     mid_q = EEPROM.read(20);bas_q = EEPROM.read(21);faza = EEPROM.read(22);
   audio();
     if(power==0){digitalWrite(13,HIGH);digitalWrite(11,HIGH);}if(power==1){digitalWrite(13,LOW);} // выход STANDBY
     digitalWrite(13,LOW);// реле СЕТЬ отключить
}

void loop(){
   if(digitalRead(10)==LOW&&power==0&&menu2==100){menu++;cl();time=millis();w=1;w2=1;if(menu>3){menu=0;}}// меню
   if(digitalRead(14)==LOW&&power==0&&menu2!=3&&mute==0){in++;;cl();time=millis();w=1;w2=1;www=1;if(in>2){in=0;};lcd.setCursor(0,0);lcd.print("    INPUT ");lcd.print(in+1);audio();delay(600);}// КНОПКА ВЫБОРА ВХОДА IN
   if(digitalRead(15)==LOW&&power==0){power=1;mute=1;audio();lcd.clear();lcd.setCursor(0,0);lcd.print("   POWER OFF   ");w=0;menu=100;menu2=100;delay(3000);}// power off
   if(digitalRead(15)==LOW&&power==1){power=0;mute=0;audio();lcd.clear();lcd.setCursor(0,0);lcd.print("   POWER  ON   ");digitalWrite(11,HIGH);menu=0;time=millis();w=1;w2=1;myEnc.write(0);delay(3000);lcd.clear();}// power on
   if(power==0){digitalWrite(13,HIGH);}if(power==1){digitalWrite(13,LOW);digitalWrite(11,LOW);} // выход STANDBY
   
   if(digitalRead(16)==LOW&&power==0&&menu<4){menu2=0;menu=100;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MENU 2   ");delay(1200);}// menu 2 on
   if(digitalRead(16)==LOW&&power==0&&menu>3){menu2=100;menu=0;cl();time=millis();w=1;w2=1;}// menu2 off
   if(digitalRead(10)==LOW&&power==0&&menu>3){menu2++;cl();time=millis();w=1;w2=1;if(menu2>11){menu2=0;}}// меню 2

   ////////////////////// IR /////////////////////////////////////////////////
    if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);irrecv.resume();time=millis();w=1;}// IR приемник - чтение, в мониторе порта отображаются коды кнопок
    if(ir.value==0){gr1=0;gr2=0;}// запрет нажатий не активных кнопок пульта
    if(ir.value==0x8C03F&&power==0){treb=4;bass=6;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 1   ");delay(1500);}// фиксированная настройка 1
    if(ir.value==0x820DF&&power==0){treb=6;bass=4;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 2   ");delay(1500);}// фиксированная настройка 2
    if(ir.value==0x8A05F&&power==0){treb=6;bass=6;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 3   ");delay(1500);}// фиксированная настройка 3
    if(ir.value==0x8609F&&power==0){treb=2;bass=4;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 4   ");delay(1500);}// фиксированная настройка 4
    if(ir.value==0x8E01F&&power==0){treb=4;bass=2;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 5   ");delay(1500);}// фиксированная настройка 5
    if(ir.value==0x810EF&&power==0){treb=4;bass=4;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 6   ");delay(1500);}// фиксированная настройка 6
    if(ir.value==0x8906F&&power==0){treb=0;bass=2;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 7   ");delay(1500);}// фиксированная настройка 7
    if(ir.value==0x850AF&&power==0){treb=2;bass=0;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 8   ");delay(1500);}// фиксированная настройка 8
    if(ir.value==0x8D02F&&power==0){treb=2;bass=2;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 9   ");delay(1500);}// фиксированная настройка 9
    if(ir.value==0x830CF&&power==0){treb=0;bass=0;middle=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MODE 0   ");delay(1500);}// фиксированная настройка 0 тембры отключить
   
    if(ir.value==IR_1|| ir.value==0x8708F&&power==0&&menu2==100){menu++;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;if(menu>3){menu=0;}}// меню кнопка вверх
    if(ir.value==IR_2&&power==0&&menu2==100){menu--;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;if(menu<0){menu=3;}}// меню кнопка вниз
    if(ir.value==0x8708F&&power==0&&menu==100){menu2++;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;if(menu2>11){menu2=0;}}// меню2 кнопка вверх
    if(ir.value==IR_2&&power==0&&menu==100){menu2--;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;if(menu2<0){menu2=11;}}// меню2 кнопка вниз

    if(ir.value==IR_5|| ir.value==0x8B04F&&power==0&&menu2!=3&&mute==0){in++;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;www=1;if(in>2){in=0;};lcd.setCursor(0,0);lcd.print("    INPUT ");lcd.print(in+1);audio();delay(1000);}// КНОПКА ВЫБОРА ВХОДА IN

    if(ir.value==IR_6&&mute==0&&power==0){mute=1;gr1=0;gr2=0;cl();w=0;w2=1;lcd.print("      MUTE     ");menu=100;menu2=100;audio();}// mute on
    if(ir.value==IR_6&&mute==1&&power==0){mute=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;menu=0;myEnc.write(0);audio();}// mute off

    if(ir.value==IR_8&&power==0&&menu<4){menu2=0;gr1=0;gr2=0;menu=100;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MENU 2   ");delay(1200);}// menu 2 on
    if(ir.value==IR_8&&power==0&&menu>3){menu2=100;gr1=0;gr2=0;menu=0;cl();time=millis();w=1;w2=1;}// menu2 off

    if(ir.value==IR_7&&power==0){power=1;mute=1;audio();gr1=0;gr2=0;cl();lcd.setCursor(0,0);lcd.print("   POWER OFF   ");w=0;menu=100;menu2=100;delay(3000);}// power off
    if(ir.value==IR_7&&power==1){power=0;mute=0;audio();gr1=0;gr2=0;cl();lcd.setCursor(0,0);lcd.print("   POWER  ON   ");digitalWrite(11,HIGH);menu=0;time=millis();w=1;w2=1;myEnc.write(0);delay(3000);lcd.clear();}// power on
    if(ir.value==0x87887&&power==0){digitalWrite(11,HIGH);}// включение подсветки дисплея
    if(ir.value==0x858A7&&power==0){digitalWrite(11,LOW);}// отключение подсветки дисплея
    //Serial.println(vol);
    if(ir.value==0x8F807&& menu!=0){menu=0;}//громкость плюс
    if(ir.value==0x802FD&& menu!=0){menu=0;}//громкость минус
         
/////////////////////////////// VOLUME -79 ... +15 дБ ////////////////////////////////////////////////
if(menu==0){
     if(ir.value==IR_3|| ir.value==0x8F807){vol++;gr1=1;gr2=0;cl1();w2=1;vol_func();audio();}// кнопка >
     if(ir.value==0xFFFFFFFF and gr1==1){vol++;gr2=0;cl1();w2=1;vol_func();audio();}// кнопка >>>>>>
     if(ir.value==IR_4|| ir.value==0x802FD){vol--;gr1=0;gr2=1;cl1();w2=1;vol_func();audio();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){vol--;gr1=0;cl1();w2=1;vol_func();audio();}// кнопка <<<<<<

   if (newPosition != oldPosition){oldPosition = newPosition;
     vol=vol+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;vol_func();audio();}
     lcd.setCursor(0,0);lcd.print("VOLUME  ");
     lcd.print(" ");lcd.print(vol);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");vol_d=vol/2+40;
   if(w2==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);}w2=0;}}
   /////////////////////// VOLUME1 /////////////
   if(menu==0){
     if(ir.value==0x808F7){vol++;cl1();w2=1;vol_func();audio();}// кнопка ch
     if(ir.value==0x8F00F){vol--;cl1();w2=1;vol_func();audio();}// кнопка ch
     if(ir.value==0xC098){vol++;cl1();w2=1;vol_func();audio();}// кнопка ch 2 пульт
     if(ir.value==0xC018){vol--;cl1();w2=1;vol_func();audio();}// кнопка ch 2 пульт
     if (newPosition != oldPosition){oldPosition = newPosition;
     vol=vol+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;vol_func();audio();}
     lcd.setCursor(0,0);lcd.print("VOLUME  ");
     lcd.print(" ");lcd.print(vol);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");vol_d=vol/2+40;
   if(w2==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);}w2=0;}} 
    ///////////////////////// TREBLE +/-20 dB /////////////////////////////////////////////////////////
   if(menu==1){
     if(ir.value==IR_3){treb++;cl1();w2=1;treb_func();audio();}// кнопка >     
     if(ir.value==IR_4){treb--;cl1();w2=1;treb_func();audio();}// кнопка <
     
     if (newPosition != oldPosition) {
    oldPosition = newPosition;
    treb=treb+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;treb_func();audio();}
   lcd.setCursor(0,0);lcd.print("TREBLE  ");
   lcd.print(" ");lcd.print(treb);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");treb_d=treb+20;
   if(w2==1){
   for(z=0,z0=0,z1=0;z<=treb_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+1,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+1,1);lcd.print("   ");}}
   if(z1==3){lcd.setCursor(z0+1,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+1,1);lcd.write((uint8_t)2);}w2=0;}}

/////////////////////////// MIDDLE +/-20 dB ////////////////////////////////////////////////////////
   if(menu==2){
     if(ir.value==IR_3){middle++;cl1();w2=1;middle_func();audio();}// кнопка >
     if(ir.value==IR_4){middle--;cl1();w2=1;middle_func();audio();}// кнопка <
     
     if (newPosition != oldPosition) {
    oldPosition = newPosition;
    middle=middle+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;middle_func();audio();}
   lcd.setCursor(0,0);lcd.print("MIDDLE  ");
   lcd.print(" ");lcd.print(middle);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");middle_d=middle+20;
   if(w2==1){
   for(z=0,z0=0,z1=0;z<=middle_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+1,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+1,1);lcd.print("   ");}}
   if(z1==3){lcd.setCursor(z0+1,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+1,1);lcd.write((uint8_t)2);}w2=0;}}

/////////////////////// BASS +/-20 dB ///////////////////////////////////////////////////////////
   if(menu==3){
     if(ir.value==IR_3){bass++;cl1();w2=1;bass_func();audio();}// кнопка >
     if(ir.value==IR_4){bass--;cl1();w2=1;bass_func();audio();}// кнопка <
     
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    bass=bass+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;bass_func();audio();}
   lcd.setCursor(0,0);lcd.print("BASS    ");
   lcd.print(" ");lcd.print(bass);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");bass_d=bass+20;
   if(w2==1){
   for(z=0,z0=0,z1=0;z<=bass_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+1,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+1,1);lcd.print("   ");}}
   if(z1==3){lcd.setCursor(z0+1,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+1,1);lcd.write((uint8_t)2);}w2=0;}} 

//////////////////////////  MENU 2 //////////////////////////////////////////////////////////////////////

//////////////// IN + GAIN /////////////////////////////////////////////////////////////
   if(menu2==0){
       switch(in){
     case 0: gain0 = gain1;break;
     case 1: gain0 = gain2;break;
     case 2: gain0 = gain3;break;
     }
     if(ir.value==IR_3){gain0++;cl1();w2=1;gain_func();audio();}// кнопка >
     if(ir.value==IR_4){gain0--;cl1();w2=1;gain_func();audio();}// кнопка <
     
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    gain0=gain0+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;gain_func();audio();}
   switch(in){
     case 0: gain1 = gain0;break;
     case 1: gain2 = gain0;break;
     case 2: gain3 = gain0;break;
     }
    if(www==1){audio();www=0;}
  lcd.setCursor(0,0);lcd.print("Gain IN ");lcd.print(in+1);
      lcd.setCursor(10,0);lcd.print(" ");lcd.print(gain0);lcd.print(" ");lcd.setCursor(14,0);lcd.print("dB");gain_d=gain0*2;
   if(w2==1){
   for(z=0,z0=0,z1=0;z<=gain_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+1,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+1,1);lcd.print("   ");}}
   if(z1==3){lcd.setCursor(z0+1,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+1,1);lcd.write((uint8_t)2);}}w2=0;}

////////////////////////////// loudness ////////////////////////////////////////////////////
if(menu2==1){ 
     if(ir.value==IR_3){lon_f++;cl1();w2=1;lon_f_func();audio();}// кнопка >
     if(ir.value==IR_4){lon_f--;cl1();w2=1;lon_f_func();audio();}// кнопка <
     
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    lon_f=lon_f+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;lon_f_func();audio();}

    lcd.setCursor(0,0);lcd.print("Loudness: ");
      switch(lon_f){
         case 0: lcd.print("250Hz ");break;
         case 1: lcd.print("400Hz ");break;
         case 2: lcd.print("800Hz ");break;
         case 3: lcd.print("FLAT  ");break;}}

//////////////////////////// loudness gain ////////////////////////////////////////////////
if(menu2==2){
     if(ir.value==IR_3){lon++;cl1();w2=1;lon_func();audio();}// кнопка >
     if(ir.value==IR_4){lon--;cl1();w2=1;lon_func();audio();}// кнопка <
     
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      lon=lon+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;lon_func();audio();}

   lcd.setCursor(0,0);lcd.print("Loud gain");
   lcd.print(" ");lcd.print(lon);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");lon_d=lon*2;
   if(w2==1){
   for(z=0,z0=0,z1=0;z<=lon_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+1,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+1,1);lcd.print("   ");}}
   if(z1==3){lcd.setCursor(z0+1,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+1,1);lcd.write((uint8_t)2);}w2=0;}}

////////////////////////////////////////// out /////////////////////////////////////////////////
if(menu2==3){ 
   if(digitalRead(14)==LOW|| ir.value==0x86897){out++;cl();time=millis();www=1;w=1;if(out>4){out=0;}audio();} // перебор выходов кнопкой IN
   if(ir.value==IR_5){out++;cl();time=millis();www=1;w=1;if(out>4){out=0;}audio();} // перебор выходов кнопкой IN
       switch(out){
          case 0:vol_out=rf;break;
          case 1:vol_out=lf;break;
          case 2:vol_out=rt;break;
          case 3:vol_out=lt;break;
          case 4:vol_out=sab;break;
          }

     if(ir.value==IR_3){vol_out++;cl1();w2=1;vol_out_func();audio();}// кнопка >     
     if(ir.value==IR_4){vol_out--;cl1();w2=1;vol_out_func();audio();}// кнопка <
     
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      vol_out=vol_out+newPosition;myEnc.write(0);newPosition=0;time=millis();www=1;w=1;w2=1;vol_out_func();audio();}

   lcd.setCursor(0,0);lcd.print("Volume OUT");lcd.setCursor(0,1);
      switch(out){
   case 0:rf=vol_out;lcd.print("RF:  ");lcd.print(rf);break;
   case 1:lf=vol_out;lcd.print("LF:  ");lcd.print(lf);break;
   case 2:rt=vol_out;lcd.print("RT:  ");lcd.print(rt);break;
   case 3:lt=vol_out;lcd.print("LT:  ");lcd.print(lt);break;
   case 4:sab=vol_out;lcd.print("SUBW:  ");lcd.print(sab);break;
   }
    if(www==1){audio();www=0;}
  lcd.print(" dB      ");} 

/////////////////////////////////treble center//////////////////////////////////////////////////
if(menu2==4){
     if(ir.value==IR_3){treb_c++;cl1();w2=1;treb_c_func();audio();}// кнопка >
     if(ir.value==IR_4){treb_c--;cl1();w2=1;treb_c_func();audio();}// кнопка <
     
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      treb_c=treb_c+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;treb_c_func();audio();}

  lcd.setCursor(0,0);lcd.print("Treble Center ");
  lcd.setCursor(1,6);
    switch(treb_c){
      case 0: lcd.print(" 7.5 kHz");break;
      case 1: lcd.print("10.0 kHz");break;
      case 2: lcd.print("12.5 kHz");break;
      case 3: lcd.print("15.0 kHz");break;}}

/////////////////////////////////middle center//////////////////////////////////////////////////
if(menu2==5){
     if(ir.value==IR_3){mid_c++;cl1();w2=1;mid_c_func();audio();}// кнопка >
     if(ir.value==IR_4){mid_c--;cl1();w2=1;mid_c_func();audio();}// кнопка <
     
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      mid_c=mid_c+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;mid_c_func();audio();}   
    lcd.setCursor(0,0);lcd.print("Middle Center ");
    lcd.setCursor(1,6);
      switch(mid_c){
        case 0: lcd.print("0.5 kHz");break;
        case 1: lcd.print("1.0 kHz");break;
        case 2: lcd.print("1.5 kHz");break;
        case 3: lcd.print("2.5 kHz");break;}}     

////////////////////////////////////bass center///////////////////////////////////////////
if(menu2==6){
     if(ir.value==IR_3){bas_c++;cl1();w2=1;bas_c_func();audio();}// кнопка >
     if(ir.value==IR_4){bas_c--;cl1();w2=1;bas_c_func();audio();}// кнопка <
     
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      bas_c=bas_c+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;bas_c_func();audio();}   
    lcd.setCursor(0,0);lcd.print("Bass Center ");
    lcd.setCursor(1,6);
      switch(bas_c){
         case 0: lcd.print("60 Hz ");break;
         case 1: lcd.print("80 Hz ");break;
         case 2: lcd.print("100 Hz");break;
         case 3: lcd.print("120 Hz");break;}}

//////////////////////////////////////subw////////////////////////////////////////////////
if(menu2==7){
     if(ir.value==IR_3){sab_f++;cl1();w2=1;sab_f_func();audio();}// кнопка >
     if(ir.value==IR_4){sab_f--;cl1();w2=1;sab_f_func();audio();}// кнопка <
     
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      sab_f=sab_f+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;sab_f_func();audio();}   
    lcd.setCursor(0,0);lcd.print("Subwoofer Freq.");
    lcd.setCursor(1,6);
      switch(sab_f){
         case 0: lcd.print("FLAT  ");break;
         case 1: lcd.print("55 Hz ");break;
         case 2: lcd.print("85 Hz ");break;
         case 3: lcd.print("120 Hz");break;
         case 4: lcd.print("160 Hz");break;}} 

/////////////////////////////////treble Q//////////////////////////////////////////////////
if(menu2==8){
     if(ir.value==IR_3){treb_q++;cl1();w2=1;treb_q_func();audio();}// кнопка >
     if(ir.value==IR_4){treb_q--;cl1();w2=1;treb_q_func();audio();}// кнопка <
     
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      treb_q=treb_q+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;treb_q_func();audio();}

  lcd.setCursor(0,0);lcd.print("Treble Q ");
  lcd.setCursor(1,6);
    switch(treb_q){
      case 0: lcd.print("0.75");break;
      case 1: lcd.print("1.25");break;}} 

/////////////////////////////////middle Q//////////////////////////////////////////////////
if(menu2==9){
     if(ir.value==IR_3){mid_q++;cl1();w2=1;mid_q_func();audio();}// кнопка >
     if(ir.value==IR_4){mid_q--;cl1();w2=1;mid_q_func();audio();}// кнопка <
     
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      mid_q=mid_q+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;mid_q_func();audio();}   
    lcd.setCursor(0,0);lcd.print("Middle Q ");
    lcd.setCursor(1,6);
      switch(mid_q){
        case 0: lcd.print("0.75");break;
        case 1: lcd.print("1.00");break;
        case 2: lcd.print("1.25");break;
        case 3: lcd.print("1.50");break;}}   

/////////////////////////////////bass Q//////////////////////////////////////////////////
if(menu2==10){
     if(ir.value==IR_3){bas_q++;cl1();w2=1;bas_q_func();audio();}// кнопка >
     if(ir.value==IR_4){bas_q--;cl1();w2=1;bas_q_func();audio();}// кнопка <
     
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      bas_q=bas_q+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;bas_q_func();audio();}   
    lcd.setCursor(0,0);lcd.print("Bass Q ");
    lcd.setCursor(1,6);
      switch(bas_q){
        case 0: lcd.print("0.5");break;
        case 1: lcd.print("1.0");break;
        case 2: lcd.print("1.5");break;
        case 3: lcd.print("2.0");break;}}     

  /////////////////////////////////LPF Phase//////////////////////////////////////////////////
if(menu2==11){
     if(ir.value==IR_3){faza++;cl1();w2=1;faza_func();audio();}// кнопка >
     if(ir.value==IR_4){faza--;cl1();w2=1;faza_func();audio();}// кнопка <
     
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      faza=faza+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;faza_func();audio();}   
    lcd.setCursor(0,0);lcd.print("LPF Phase ");
    lcd.setCursor(1,6);
      switch(faza){
        case 0: lcd.print("  0");break;
        case 1: lcd.print("180");break;}}                 

///////////////////// EEPROM ///////////////////////////////////////////////////////////////         
  if(millis()-time>10000 && w==1 && power==0){
     EEPROM.update(0,vol+79);EEPROM.update(1,treb+20);EEPROM.update(2,middle+20);EEPROM.update(3,bass+20);EEPROM.update(4,in);
     EEPROM.update(5,gain1);EEPROM.update(6,gain2);EEPROM.update(7,gain3);EEPROM.update(8,lon);EEPROM.update(9,lon_f);
     EEPROM.update(10,rf);EEPROM.update(11,lf);EEPROM.update(12,rt);EEPROM.update(13,lt);EEPROM.update(14,sab);
     EEPROM.update(15,treb_c);EEPROM.update(16,mid_c);EEPROM.update(17,bas_c);EEPROM.update(18,sab_f);EEPROM.update(19,treb_q);
     EEPROM.update(20,mid_q);EEPROM.update(21,bas_q);EEPROM.update(22,faza);
     menu2=100;menu=0;w=0;w2=1;cl();}

  }// loop

void faza_func(){if(faza>1){faza=0;}if(faza<0){faza=1;}}
void bas_q_func(){if(bas_q>3){bas_q=0;}if(bas_q<0){bas_q=3;}}
void mid_q_func(){if(mid_q>3){mid_q=0;}if(mid_q<0){mid_q=3;}}
void treb_q_func(){if(treb_q>1){treb_q=0;}if(treb_q<0){treb_q=1;}}
void sab_f_func(){if(sab_f>4){sab_f=0;}if(sab_f<0){sab_f=4;}}
void bas_c_func(){if(bas_c>3){bas_c=0;}if(bas_c<0){bas_c=3;}}
void mid_c_func(){if(mid_c>3){mid_c=0;}if(mid_c<0){mid_c=3;}}
void treb_c_func(){if(treb_c>3){treb_c=0;}if(treb_c<0){treb_c=3;}}
void vol_out_func(){if(vol_out>15){vol_out=15;}if(vol_out<-79){vol_out=-79;}}
void lon_func(){if(lon>20){lon=20;}if(lon<0){lon=0;}}
void lon_f_func(){if(lon_f>3){lon_f=0;}if(lon_f<0){lon_f=3;}}
void gain_func(){if(gain0<0){gain0=0;}if(gain0>20){gain0=20;}}
void bass_func(){if(bass>20){bass=20;}if(bass<-20){bass=-20;}}
void middle_func(){if(middle>20){middle=20;}if(middle<-20){middle=-20;}}
void treb_func(){if(treb>20){treb=20;}if(treb<-20){treb=-20;}}
void vol_func(){if(vol<-79){vol=-79;}if(vol>15){vol=15;}}
void cl(){ir.value=0;delay(300);lcd.clear();}
void cl1(){ir.value=0;delay(100);}
void to_Timer(){newPosition = myEnc.read()/4;}
void audio(){
   tda.setSetup_1(1,2,0); // default (1,2,0)
   tda.setSetup_2(sab_f,1,0,faza);
                   // int sub_f ------ OFF 55Hz 85Hz 120Hz 160Hz = int 0...4
                   // int sub_out ---- LPF Front Rear Prohibition = int 0...3
                   // int level_metr - HOLD REST = int 0..1
                   // int faza ------- 0 180 = int 0...1
   tda.setLoudness_f(lon_f); // 250Hz 400Hz 800Hz Prohibition = int 0...3
   tda.setIn(in); // 0...2
   tda.setIn_gain(gain0,mute); // in_gain -- 0...20 = 0...20 dB, mute -- 0 default
   tda.setVol(vol); // -79...+15 dB = int -79...15
   tda.setFront_1(rf); // -79...+15 dB = int -79...15
   tda.setFront_2(lf); // -79...+15 dB = int -79...15
   tda.setRear_1(rt); // -79...+15 dB = int -79...15
   tda.setRear_2(lt); // -79...+15 dB = int -79...15
   tda.setSub(sab); // -79...+15 dB = int -79...15
   tda.mix();
   tda.setBass_setup(bas_q,bas_c); // 0.5 1.0 1.5 2.0 --- int 0...3, 60Hz 80Hz 100Hz 120Hz --- int 0...3
   tda.setMiddle_setup(mid_q,mid_c); // 0.75 1.0 1.25 1.5 --- int 0...3, 500Hz 1kHz 1.5kHz 2.5kHz --- int 0...3
   tda.setTreble_setup(treb_q,treb_c); // 0.75 1.25  --- int 0...1, 7.5kHz 10kHz 12.5kHz 15kHz --- int 0...3
   tda.setBass_gain(bass); // --20 ... +20 dB = int -20 ... 20 
   tda.setMiddle_gain(middle); // --20 ... +20 dB = int -20 ... 20
   tda.setTreble_gain(treb); // --20 ... +20 dB = int -20 ... 20   
   tda.setLoudness_gain(lon); // 0 ... 20 dB = int 0 ... 20
  }

80

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

Спасибо , буду пробовать.

81

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

http://forum.rcl-radio.ru/uploads/images/2020/03/398d4070af85fe0b31f335339e990cb5.jpg
Собрал устройство во временный корпус, буду дальше тестировать

82 (2020-04-24 13:43:30 отредактировано motoman)

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

Встроил, наконец, всю схему внутрь автомагнитолы. Не устраивало то, что штатно в ней была только регулировка НЧ и ВЧ.
Выпаял конденсаторы 0,22 мкФ по входу УМЗЧ (TDA7569LV) к ним подключил вход процессора, а выход процессора далее к входу УМЗЧ. Появились сильные помехи (щелчки, писк) в звуке - пришлось подключить 3 вывод процессора через конденсатор к сигнальной земле магнитолы. Помехи практически пропали.
В общем все регулировки работают, но есть довольно сильный шум в динамиках, даже при отсутствии сигнала. Похоже, что встроенный усилитель аудиопроцессора слишком чувствительный, и уменьшением усиления не удается понизить шум до приемлемого.

83

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

В режиме MUTE тоже слышно помехи?

84

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

liman324 пишет:

В режиме MUTE тоже слышно помехи?

Проверю

85

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

liman324 пишет:

В режиме MUTE тоже слышно помехи?

Послушал - в режиме Mute шум становится значительно тише и почти пропадает.
Шум - это повышенный шум усилителя, шипение. Значительно меньше его сделал уменьшением параметра Volume out Left и Right с 0 Дб до -15.

86

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

http://forum.rcl-radio.ru/uploads/images/2020/04/f1630bbab57c66b9e44c49725f2c6d5e.png
Заземлите вход MIN 14 ножка, но не напрямую, а через конденсатор.

87

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

liman324 пишет:

http://forum.rcl-radio.ru/uploads/images/2020/04/f1630bbab57c66b9e44c49725f2c6d5e.png
Заземлите вход MIN 14 ножка, но не напрямую, а через конденсатор.

Попробую. А для чего этот вывод?

88

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

Микшерный вход

89

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

Ещё много помех идёт в схему по питанию 12 в. Заметил это, когда пробовал брать питание из разных точек магнитолы. Если запитаться с конденсатора фильтра 2200 мкФ магнитолы, то слышен генератор, если со стабилизатора 7808 на плате магнитолы - то помех становится меньше, но они не полностью пропадают.
Может, сделать какой-то фильтр по питанию аудиопроцессора?

90

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

И ещё - я подключил аудиоземлю магнитолы через конденсатор к 3 выводу процессора? Это неправильно? Нужно было землю подключать ко второму выводу?http://forum.rcl-radio.ru/uploads/images/2020/04/ef37c9f1860ddcd672e8094b29477d0a.jpg

91

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

А почему Вы не используете обычные входы AUX?
http://forum.rcl-radio.ru/uploads/images/2020/04/4ee716c7179535a793b213f20c4490ea.png

Конфигурация входов

http://forum.rcl-radio.ru/uploads/images/2020/04/ca3499d6847e8389880f7c52a3b05f72.png

http://forum.rcl-radio.ru/uploads/images/2020/04/27de92ad365ef70150adc1314a1b9f0f.png

92

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

liman324 пишет:

А почему Вы не используете обычные входы AUX?
http://forum.rcl-radio.ru/uploads/images/2020/04/4ee716c7179535a793b213f20c4490ea.png

Конфигурация входов

http://forum.rcl-radio.ru/uploads/images/2020/04/ca3499d6847e8389880f7c52a3b05f72.png

http://forum.rcl-radio.ru/uploads/images/2020/04/27de92ad365ef70150adc1314a1b9f0f.png

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

93

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

Вы верные передаете данные в аудиопроцессор, переменная in у Вас какие значения имеет?

94 (2020-04-26 01:09:00 отредактировано motoman)

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

liman324 пишет:

Вы верные передаете данные в аудиопроцессор, переменная in у Вас какие значения имеет?

А где это посмотреть, в какой части скетча?
Скетч у меня из 62 поста, если что

95

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

http://forum.rcl-radio.ru/uploads/images/2020/04/da712eedf25196df0a7f9112cacfbe88.png


Если код не меняли, то у Вас не верное подключение. По коду Вы должны использовать входы AUX, так как Вы передаете аудиопроцессору:
IN1 = 0b00
IN2 = 0b01
IN3 = 0b10

а для использования дифференциальных входов (см.рис) Вы должны передавать следующие коды

http://forum.rcl-radio.ru/uploads/images/2020/04/059975486c1f03d7c637cc3322538146.png

IN1 = 0b01111
IN2 = 0b10000
IN3 = 0b00110

Вот измененный скетч для использования дифференциальных входов (не тестировался)

#define IR_1 0x2FDD02F // Кнопка вверх
#define IR_2 0x2FD32CD // Кнопка вниз
#define IR_3 0x2FD906F // Кнопка >
#define IR_4 0x2FDF20D // Кнопка <
#define IR_5 0x2FD708F // Кнопка IN
#define IR_6 0x2FD6A95 // Кнопка MUTE
#define IR_7 0x2FD00FF // Кнопка POWER
#define IR_8 0x2FDB24D // Кнопка MENU2

#include <Wire.h> 
#include <BD37534FV.h>// https://github.com/liman324/BD37534FV/archive/master.zip
#include <EEPROM.h>
#include <Encoder.h>  // http://rcl-radio.ru/wp-content/uploads/2019/05/Encoder.zip
#include <MsTimer2.h> // http://rcl-radio.ru/wp-content/uploads/2018/11/MsTimer2.zip
#include <boarddefs.h>
#include <IRremote.h> // http://rcl-radio.ru/wp-content/uploads/2019/06/IRremote.zip
#include <LiquidCrystal_I2C.h> //Библиотека -  http://forum.rcl-radio.ru/misc.php?action=pan_download&item=45&download=1
  BD37534FV tda; 
  LiquidCrystal_I2C lcd(0x27,16,2);  // Устанавливаем дисплей 
  IRrecv irrecv(12); // указываем вывод модуля IR приемника
  Encoder myEnc(9, 8);//CLK, DT
  decode_results ir; 
  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 time,oldPosition  = -999,newPosition;
  int gr1,gr2,vol,vol_d,z,z0,z1,w,w2,menu,treb,treb_d,middle,middle_d,bass,bass_d,in,in_dif,mute,power,menu2=100,www,gain0,gain1,gain2,gain3,gain_d,lon_f,lon,lon_d;
  int out,vol_out,rf,lf,rt,lt,sab,treb_c,mid_c,bas_c,sab_f,treb_q,mid_q,bas_q,faza;

void setup(){
   Wire.begin();lcd.init();lcd.backlight();irrecv.enableIRIn();Serial.begin(9600);
   lcd.createChar(0,a1);lcd.createChar(1,a2);lcd.createChar(2,a3);
   lcd.setCursor(0,0);lcd.print("    POWER ON   ");delay(1000);lcd.clear();// ЗАСТАВКА
   MsTimer2::set(3, to_Timer);MsTimer2::start();
   if(EEPROM.read(100)!=0){for(int i=0;i<101;i++){EEPROM.update(i,0);}}// очистка памяти при первом включении
     pinMode(2,INPUT);// МЕНЮ КНОПКА SW энкодера
     pinMode(3,INPUT);// ВЫБОР ВХОДА КНОПКА IN
     pinMode(4,INPUT);// КНОПКА MENU2
     pinMode(5,INPUT);// КНОПКА POWER
     pinMode(6,INPUT);// КНОПКА MUTE
     pinMode(7,OUTPUT);//  STANDBY
     vol = EEPROM.read(0)-79;treb = EEPROM.read(1)-20;middle = EEPROM.read(2)-20;bass = EEPROM.read(3)-20;in = EEPROM.read(4);
     gain1 = EEPROM.read(5);gain2 = EEPROM.read(6);gain3 = EEPROM.read(7);lon = EEPROM.read(8);lon_f = EEPROM.read(9);
     rf = EEPROM.read(10)-79;lf = EEPROM.read(11)-79;rt = EEPROM.read(12)-79;lt = EEPROM.read(13)-79;sab = EEPROM.read(14)-79;
     treb_c = EEPROM.read(15);mid_c = EEPROM.read(16);bas_c = EEPROM.read(17);sab_f = EEPROM.read(18);treb_q = EEPROM.read(19);
     mid_q = EEPROM.read(20);bas_q = EEPROM.read(21);faza = EEPROM.read(22);
   audio();
}

void loop(){
   if(digitalRead(2)==LOW&&power==0&&menu2==100){menu++;cl();time=millis();w=1;w2=1;if(menu>3){menu=0;}}// меню
   if(digitalRead(3)==HIGH&&power==0&&menu2!=3&&mute==0){in++;;cl();time=millis();w=1;w2=1;www=1;if(in>2){in=0;};lcd.setCursor(0,0);lcd.print("    INPUT ");lcd.print(in+1);audio();delay(2000);}// КНОПКА ВЫБОРА ВХОДА IN
   if(digitalRead(6)==HIGH&&mute==0&&power==0){mute=1;cl();w=0;w2=1;lcd.print("      MUTE     ");menu=100;menu2=100;audio();}// mute on
   if(digitalRead(6)==HIGH&&mute==1&&power==0){mute=0;cl();time=millis();w=1;w2=1;menu=0;myEnc.write(0);audio();}// mute off
   if(digitalRead(5)==HIGH&&power==0){power=1;mute=1;audio();lcd.clear();lcd.setCursor(0,0);lcd.print("   POWER OFF   ");w=0;menu=100;menu2=100;delay(3000);lcd.noBacklight();}// power off
   if(digitalRead(5)==HIGH&&power==1){power=0;mute=0;audio();lcd.backlight();lcd.clear();lcd.setCursor(0,0);lcd.print("   POWER  ON   ");menu=0;time=millis();w=1;w2=1;myEnc.write(0);delay(3000);lcd.clear();}// power on
   if(power==0){digitalWrite(7,HIGH);}if(power==1){digitalWrite(7,LOW);} // выход STANDBY
   
   if(digitalRead(4)==HIGH&&power==0&&menu<4){menu2=0;menu=100;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MENU 2   ");delay(2000);}// menu 2 on
   if(digitalRead(4)==HIGH&&power==0&&menu>3){menu2=100;menu=0;cl();time=millis();w=1;w2=1;}// menu2 off
   if(digitalRead(2)==LOW&&power==0&&menu>3){menu2++;cl();time=millis();w=1;w2=1;if(menu2>11){menu2=0;}}// меню 2
   
   ////////////////////// IR /////////////////////////////////////////////////
    if ( irrecv.decode( &ir )) {Serial.print("0x");Serial.println( ir.value,HEX);irrecv.resume();time=millis();w=1;}// IR приемник - чтение, в мониторе порта отображаются коды кнопок
    if(ir.value==0){gr1=0;gr2=0;}// запрет нажатий не активных кнопок пульта
    
    if(ir.value==IR_1&&power==0&&menu2==100){menu++;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;if(menu>3){menu=0;}}// меню кнопка вверх 
    if(ir.value==IR_2&&power==0&&menu2==100){menu--;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;if(menu<0){menu=3;}}// меню кнопка вниз
    if(ir.value==IR_1&&power==0&&menu==100){menu2++;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;if(menu2>11){menu2=0;}}// меню2 кнопка вверх 
    if(ir.value==IR_2&&power==0&&menu==100){menu2--;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;if(menu2<0){menu2=11;}}// меню2 кнопка вниз
    
    if(ir.value==IR_5&&power==0&&menu2!=3&&mute==0){in++;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;www=1;if(in>2){in=0;};lcd.setCursor(0,0);lcd.print("    INPUT ");lcd.print(in+1);audio();delay(2000);}// КНОПКА ВЫБОРА ВХОДА IN
    
    if(ir.value==IR_6&&mute==0&&power==0){mute=1;gr1=0;gr2=0;cl();w=0;w2=1;lcd.print("      MUTE     ");menu=100;menu2=100;audio();}// mute on
    if(ir.value==IR_6&&mute==1&&power==0){mute=0;gr1=0;gr2=0;cl();time=millis();w=1;w2=1;menu=0;myEnc.write(0);audio();}// mute off
    
    if(ir.value==IR_8&&power==0&&menu<4){menu2=0;gr1=0;gr2=0;menu=100;cl();time=millis();w=1;w2=1;lcd.setCursor(0,0);lcd.print("     MENU 2   ");delay(2000);}// menu 2 on
    if(ir.value==IR_8&&power==0&&menu>3){menu2=100;gr1=0;gr2=0;menu=0;cl();time=millis();w=1;w2=1;}// menu2 off
    
    if(ir.value==IR_7&&power==0){power=1;mute=1;audio();gr1=0;gr2=0;cl();lcd.setCursor(0,0);lcd.print("   POWER OFF   ");w=0;menu=100;menu2=100;delay(3000);lcd.noBacklight();}// power off
    if(ir.value==IR_7&&power==1){power=0;mute=0;audio();gr1=0;gr2=0;lcd.backlight();cl();lcd.setCursor(0,0);lcd.print("   POWER  ON   ");menu=0;time=millis();w=1;w2=1;myEnc.write(0);delay(3000);lcd.clear();}// power on
    
    //Serial.println(vol);
/////////////////////////////// VOLUME -79 ... +15 дБ ////////////////////////////////////////////////
 if(menu==0){
     if(ir.value==IR_3){vol++;gr1=1;gr2=0;cl1();w2=1;vol_func();audio();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){vol++;gr2=0;cl1();w2=1;vol_func();audio();}// кнопка >>>>>>
     if(ir.value==IR_4){vol--;gr1=0;gr2=1;cl1();w2=1;vol_func();audio();}// кнопка <
     if(ir.value==0xFFFFFFFF and gr2==1){vol--;gr1=0;cl1();w2=1;vol_func();audio();}// кнопка <<<<<<
   
   if (newPosition != oldPosition){oldPosition = newPosition;
     vol=vol+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;vol_func();audio();} 
     lcd.setCursor(0,0);lcd.print("VOLUME  ");
     lcd.print(" ");lcd.print(vol);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");vol_d=vol/2+40;
   if(w2==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);}w2=0;}}
   
///////////////////////// TREBLE +/-20 dB /////////////////////////////////////////////////////////
   if(menu==1){
     if(ir.value==IR_3){treb++;gr1=1;gr2=0;cl1();w2=1;treb_func();audio();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){treb++;gr2=0;cl1();w2=1;treb_func();audio();}// кнопка >>>>>>
     if(ir.value==IR_4){treb--;gr1=0;gr2=1;cl1();w2=1;treb_func();audio();}// кнопка < 
     if(ir.value==0xFFFFFFFF and gr2==1){treb--;gr1=0;cl1();w2=1;treb_func();audio();}// кнопка <<<<<<
    
     if (newPosition != oldPosition) {
    oldPosition = newPosition;
    treb=treb+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;treb_func();audio();} 
   lcd.setCursor(0,0);lcd.print("TREBLE  ");
   lcd.print(" ");lcd.print(treb);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");treb_d=treb+20;
   if(w2==1){
   for(z=0,z0=0,z1=0;z<=treb_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+1,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+1,1);lcd.print("   ");}}
   if(z1==3){lcd.setCursor(z0+1,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+1,1);lcd.write((uint8_t)2);}w2=0;}}

/////////////////////////// MIDDLE +/-20 dB ////////////////////////////////////////////////////////
   if(menu==2){
     if(ir.value==IR_3){middle++;gr1=1;gr2=0;cl1();w2=1;middle_func();audio();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){middle++;gr2=0;cl1();w2=1;middle_func();audio();}// кнопка >>>>>>
     if(ir.value==IR_4){middle--;gr1=0;gr2=1;cl1();w2=1;middle_func();audio();}// кнопка < 
     if(ir.value==0xFFFFFFFF and gr2==1){middle--;gr1=0;cl1();w2=1;middle_func();audio();}// кнопка <<<<<<
    
     if (newPosition != oldPosition) {
    oldPosition = newPosition;
    middle=middle+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;middle_func();audio();} 
   lcd.setCursor(0,0);lcd.print("MIDDLE  ");
   lcd.print(" ");lcd.print(middle);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");middle_d=middle+20;
   if(w2==1){
   for(z=0,z0=0,z1=0;z<=middle_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+1,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+1,1);lcd.print("   ");}}
   if(z1==3){lcd.setCursor(z0+1,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+1,1);lcd.write((uint8_t)2);}w2=0;}}

/////////////////////// BASS +/-20 dB ///////////////////////////////////////////////////////////
   if(menu==3){
     if(ir.value==IR_3){bass++;gr1=1;gr2=0;cl1();w2=1;bass_func();audio();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){bass++;gr2=0;cl1();w2=1;bass_func();audio();}// кнопка >>>>>>
     if(ir.value==IR_4){bass--;gr1=0;gr2=1;cl1();w2=1;bass_func();audio();}// кнопка < 
     if(ir.value==0xFFFFFFFF and gr2==1){bass--;gr1=0;cl1();w2=1;bass_func();audio();}// кнопка <<<<<<  
    
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    bass=bass+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;bass_func();audio();} 
   lcd.setCursor(0,0);lcd.print("BASS    ");
   lcd.print(" ");lcd.print(bass);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");bass_d=bass+20;
   if(w2==1){
   for(z=0,z0=0,z1=0;z<=bass_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+1,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+1,1);lcd.print("   ");}}
   if(z1==3){lcd.setCursor(z0+1,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+1,1);lcd.write((uint8_t)2);}w2=0;}}  

//////////////////////////  MENU 2 //////////////////////////////////////////////////////////////////////

//////////////// IN + GAIN /////////////////////////////////////////////////////////////
   if(menu2==0){ 
       switch(in){
     case 0: gain0 = gain1;break;
     case 1: gain0 = gain2;break;
     case 2: gain0 = gain3;break;
     }
     if(ir.value==IR_3){gain0++;gr1=1;gr2=0;cl1();w2=1;gain_func();audio();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){gain0++;gr2=0;cl1();w2=1;gain_func();audio();}// кнопка >>>>>>
     if(ir.value==IR_4){gain0--;gr1=0;gr2=1;cl1();w2=1;gain_func();audio();}// кнопка < 
     if(ir.value==0xFFFFFFFF and gr2==1){gain0--;gr1=0;cl1();w2=1;gain_func();audio();}// кнопка <<<<<<

    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    gain0=gain0+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;gain_func();audio();} 
   switch(in){
     case 0: gain1 = gain0;break;
     case 1: gain2 = gain0;break;
     case 2: gain3 = gain0;break;
     } 
    if(www==1){audio();www=0;}
  lcd.setCursor(0,0);lcd.print("Gain IN ");lcd.print(in+1);
      lcd.setCursor(10,0);lcd.print(" ");lcd.print(gain0);lcd.print(" ");lcd.setCursor(14,0);lcd.print("dB");gain_d=gain0*2;
   if(w2==1){
   for(z=0,z0=0,z1=0;z<=gain_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+1,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+1,1);lcd.print("   ");}}
   if(z1==3){lcd.setCursor(z0+1,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+1,1);lcd.write((uint8_t)2);}}w2=0;}

////////////////////////////// loudness ////////////////////////////////////////////////////
 if(menu2==1){  
     if(ir.value==IR_3){lon_f++;cl1();w2=1;lon_f_func();audio();}// кнопка > 
     if(ir.value==IR_4){lon_f--;cl1();w2=1;lon_f_func();audio();}// кнопка < 

  
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    lon_f=lon_f+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;lon_f_func();audio();} 

    lcd.setCursor(0,0);lcd.print("Loudness: ");
      switch(lon_f){
         case 0: lcd.print("250Hz ");break;
         case 1: lcd.print("400Hz ");break;
         case 2: lcd.print("800Hz ");break;
         case 3: lcd.print("FLAT  ");break;}}
   
//////////////////////////// loudness gain ////////////////////////////////////////////////
 if(menu2==2){
     if(ir.value==IR_3){lon++;gr1=1;gr2=0;cl1();w2=1;lon_func();audio();}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){lon++;gr2=0;cl1();w2=1;lon_func();audio();}// кнопка >>>>>>
     if(ir.value==IR_4){lon--;gr1=0;gr2=1;cl1();w2=1;lon_func();audio();}// кнопка < 
     if(ir.value==0xFFFFFFFF and gr2==1){lon--;gr1=0;cl1();w2=1;lon_func();audio();}// кнопка <<<<<< 
  
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      lon=lon+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;lon_func();audio();} 

   lcd.setCursor(0,0);lcd.print("Loud gain");
   lcd.print(" ");lcd.print(lon);lcd.print(" ");lcd.setCursor(13,0);lcd.print("dB");lon_d=lon*2;
   if(w2==1){
   for(z=0,z0=0,z1=0;z<=lon_d;z++,z1++){if(z1>2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+1,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+1,1);lcd.print("   ");}}
   if(z1==3){lcd.setCursor(z0+1,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+1,1);lcd.write((uint8_t)2);}w2=0;}}

 /////////////////////////// out /////////////////////////////////////////////////
 if(menu2==3){  
   if(digitalRead(3)==HIGH){out++;cl();time=millis();www=1;w=1;if(out>4){out=0;}} // перебор выходов кнопкой IN
   if(ir.value==IR_5){out++;cl();time=millis();www=1;w=1;if(out>4){out=0;}} // перебор выходов кнопкой IN
       switch(out){
          case 0:vol_out=rf;break;
          case 1:vol_out=lf;break;
          case 2:vol_out=rt;break;
          case 3:vol_out=lt;break;
          case 4:vol_out=sab;break;
          }

     if(ir.value==IR_3){vol_out++;gr1=1;gr2=0;cl1();w2=1;vol_out_func();time=millis();www=1;w=1;w2=1;}// кнопка > 
     if(ir.value==0xFFFFFFFF and gr1==1){vol_out++;gr2=0;cl1();w2=1;vol_out_func();time=millis();www=1;w=1;w2=1;}// кнопка >>>>>>
     if(ir.value==IR_4){vol_out--;gr1=0;gr2=1;cl1();w2=1;vol_out_func();time=millis();www=1;w=1;w2=1;}// кнопка < 
     if(ir.value==0xFFFFFFFF and gr2==1){vol_out--;gr1=0;cl1();w2=1;vol_out_func();time=millis();www=1;w=1;w2=1;}// кнопка <<<<<< 
          
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      vol_out=vol_out+newPosition;myEnc.write(0);newPosition=0;time=millis();www=1;w=1;w2=1;vol_out_func();} 
      
   lcd.setCursor(0,0);lcd.print("Volume OUT");lcd.setCursor(0,1);
      switch(out){
   case 0:rf=vol_out;lcd.print("RF:  ");lcd.print(rf);break;
   case 1:lf=vol_out;lcd.print("LF:  ");lcd.print(lf);break;
   case 2:rt=vol_out;lcd.print("RT:  ");lcd.print(rt);break;
   case 3:lt=vol_out;lcd.print("LT:  ");lcd.print(lt);break;
   case 4:sab=vol_out;lcd.print("SUBW:  ");lcd.print(sab);break;
   }
    if(www==1){audio();www=0;}
  lcd.print(" dB      ");}  

 /////////////////////////////////treble center//////////////////////////////////////////////////
 if(menu2==4){ 
     if(ir.value==IR_3){treb_c++;cl1();w2=1;treb_c_func();audio();}// кнопка > 
     if(ir.value==IR_4){treb_c--;cl1();w2=1;treb_c_func();audio();}// кнопка < 

  
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      treb_c=treb_c+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;treb_c_func();audio();} 
  
  lcd.setCursor(0,0);lcd.print("Treble Center ");
  lcd.setCursor(1,6);
    switch(treb_c){
      case 0: lcd.print(" 7.5 kHz");break;
      case 1: lcd.print("10.0 kHz");break;
      case 2: lcd.print("12.5 kHz");break;
      case 3: lcd.print("15.0 kHz");break;}}

 /////////////////////////////////middle center//////////////////////////////////////////////////
 if(menu2==5){ 
     if(ir.value==IR_3){mid_c++;cl1();w2=1;mid_c_func();audio();}// кнопка > 
     if(ir.value==IR_4){mid_c--;cl1();w2=1;mid_c_func();audio();}// кнопка < 
 
     
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      mid_c=mid_c+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;mid_c_func();audio();}   
    lcd.setCursor(0,0);lcd.print("Middle Center ");
    lcd.setCursor(1,6);
      switch(mid_c){
        case 0: lcd.print("0.5 kHz");break;
        case 1: lcd.print("1.0 kHz");break;
        case 2: lcd.print("1.5 kHz");break;
        case 3: lcd.print("2.5 kHz");break;}}     

////////////////////////////////////bass center/////////////////////////////////////////// 
 if(menu2==6){ 
     if(ir.value==IR_3){bas_c++;cl1();w2=1;bas_c_func();audio();}// кнопка > 
     if(ir.value==IR_4){bas_c--;cl1();w2=1;bas_c_func();audio();}// кнопка < 

     
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      bas_c=bas_c+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;bas_c_func();audio();}   
    lcd.setCursor(0,0);lcd.print("Bass Center ");
    lcd.setCursor(1,6);
      switch(bas_c){
         case 0: lcd.print("60 Hz ");break;
         case 1: lcd.print("80 Hz ");break;
         case 2: lcd.print("100 Hz");break;
         case 3: lcd.print("120 Hz");break;}}

//////////////////////////////////////subw//////////////////////////////////////////////// 
 if(menu2==7){ 
     if(ir.value==IR_3){sab_f++;cl1();w2=1;sab_f_func();audio();}// кнопка > 
     if(ir.value==IR_4){sab_f--;cl1();w2=1;sab_f_func();audio();}// кнопка < 
 
     
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      sab_f=sab_f+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;sab_f_func();audio();}   
    lcd.setCursor(0,0);lcd.print("Subwoofer Freq.");
    lcd.setCursor(1,6);
      switch(sab_f){
         case 0: lcd.print("FLAT  ");break;
         case 1: lcd.print("55 Hz ");break;
         case 2: lcd.print("85 Hz ");break;
         case 3: lcd.print("120 Hz");break; 
         case 4: lcd.print("160 Hz");break;}}  

 /////////////////////////////////treble Q//////////////////////////////////////////////////
 if(menu2==8){ 
     if(ir.value==IR_3){treb_q++;cl1();w2=1;treb_q_func();audio();}// кнопка > 
     if(ir.value==IR_4){treb_q--;cl1();w2=1;treb_q_func();audio();}// кнопка < 

  
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      treb_q=treb_q+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;treb_q_func();audio();} 
  
  lcd.setCursor(0,0);lcd.print("Treble Q ");
  lcd.setCursor(1,6);
    switch(treb_q){
      case 0: lcd.print("0.75");break;
      case 1: lcd.print("1.25");break;}}  

 /////////////////////////////////middle Q//////////////////////////////////////////////////
 if(menu2==9){ 
     if(ir.value==IR_3){mid_q++;cl1();w2=1;mid_q_func();audio();}// кнопка > 
     if(ir.value==IR_4){mid_q--;cl1();w2=1;mid_q_func();audio();}// кнопка < 
 
     
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      mid_q=mid_q+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;mid_q_func();audio();}   
    lcd.setCursor(0,0);lcd.print("Middle Q ");
    lcd.setCursor(1,6);
      switch(mid_q){
        case 0: lcd.print("0.75");break;
        case 1: lcd.print("1.00");break;
        case 2: lcd.print("1.25");break;
        case 3: lcd.print("1.50");break;}}    

 /////////////////////////////////bass Q//////////////////////////////////////////////////
 if(menu2==10){ 
     if(ir.value==IR_3){bas_q++;cl1();w2=1;bas_q_func();audio();}// кнопка > 
     if(ir.value==IR_4){bas_q--;cl1();w2=1;bas_q_func();audio();}// кнопка < 
 
     
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      bas_q=bas_q+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;bas_q_func();audio();}   
    lcd.setCursor(0,0);lcd.print("Bass Q ");
    lcd.setCursor(1,6);
      switch(bas_q){
        case 0: lcd.print("0.5");break;
        case 1: lcd.print("1.0");break;
        case 2: lcd.print("1.5");break;
        case 3: lcd.print("2.0");break;}}     

  /////////////////////////////////LPF Phase//////////////////////////////////////////////////
 if(menu2==11){ 
     if(ir.value==IR_3){faza++;cl1();w2=1;faza_func();audio();}// кнопка > 
     if(ir.value==IR_4){faza--;cl1();w2=1;faza_func();audio();}// кнопка < 
     
      if (newPosition != oldPosition) {
      oldPosition = newPosition;
      faza=faza+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;w2=1;faza_func();audio();}   
    lcd.setCursor(0,0);lcd.print("LPF Phase ");
    lcd.setCursor(1,6);
      switch(faza){
        case 0: lcd.print("  0");break;
        case 1: lcd.print("180");break;}}                  

///////////////////// EEPROM ///////////////////////////////////////////////////////////////         
  if(millis()-time>10000 && w==1 && power==0){
     EEPROM.update(0,vol+79);EEPROM.update(1,treb+20);EEPROM.update(2,middle+20);EEPROM.update(3,bass+20);EEPROM.update(4,in);
     EEPROM.update(5,gain1);EEPROM.update(6,gain2);EEPROM.update(7,gain3);EEPROM.update(8,lon);EEPROM.update(9,lon_f);
     EEPROM.update(10,rf+79);EEPROM.update(11,lf+79);EEPROM.update(12,rt+79);EEPROM.update(13,lt+79);EEPROM.update(14,sab+79);
     EEPROM.update(15,treb_c);EEPROM.update(16,mid_c);EEPROM.update(17,bas_c);EEPROM.update(18,sab_f);EEPROM.update(19,treb_q);
     EEPROM.update(20,mid_q);EEPROM.update(21,bas_q);EEPROM.update(22,faza);
     menu2=100;menu=0;w=0;w2=1;cl();}
  
  }// loop

void faza_func(){if(faza>1){faza=0;}if(faza<0){faza=1;}}
void bas_q_func(){if(bas_q>3){bas_q=0;}if(bas_q<0){bas_q=3;}}
void mid_q_func(){if(mid_q>3){mid_q=0;}if(mid_q<0){mid_q=3;}}
void treb_q_func(){if(treb_q>1){treb_q=0;}if(treb_q<0){treb_q=1;}}
void sab_f_func(){if(sab_f>4){sab_f=0;}if(sab_f<0){sab_f=4;}}
void bas_c_func(){if(bas_c>3){bas_c=0;}if(bas_c<0){bas_c=3;}}
void mid_c_func(){if(mid_c>3){mid_c=0;}if(mid_c<0){mid_c=3;}}
void treb_c_func(){if(treb_c>3){treb_c=0;}if(treb_c<0){treb_c=3;}}
void vol_out_func(){if(vol_out>15){vol_out=15;}if(vol_out<-79){vol_out=-79;}}
void lon_func(){if(lon>20){lon=20;}if(lon<0){lon=0;}}
void lon_f_func(){if(lon_f>3){lon_f=0;}if(lon_f<0){lon_f=3;}}
void gain_func(){if(gain0<0){gain0=0;}if(gain0>20){gain0=20;}}
void bass_func(){if(bass>20){bass=20;}if(bass<-20){bass=-20;}} 
void middle_func(){if(middle>20){middle=20;}if(middle<-20){middle=-20;}}
void treb_func(){if(treb>20){treb=20;}if(treb<-20){treb=-20;}}
void vol_func(){if(vol<-79){vol=-79;}if(vol>15){vol=15;}}
void cl(){ir.value=0;delay(300);lcd.clear();}
void cl1(){ir.value=0;delay(100);}
void to_Timer(){newPosition = myEnc.read()/4;}
void audio(){
   switch(in){
    case 2: in_dif = 0b00000110;break;
    case 1: in_dif = 0b00010000;break;
    case 0: in_dif = 0b00001111;break;
    }
   
   tda.setSetup_1(1,2,0); // default (1,2,0)
   tda.setSetup_2(sab_f,0,0,faza); 
                   // int sub_f ------ OFF 55Hz 85Hz 120Hz 160Hz = int 0...4
                   // int sub_out ---- LPF Front Rear Prohibition = int 0...3
                   // int level_metr - HOLD REST = int 0..1
                   // int faza ------- 0 180 = int 0...1
   tda.setLoudness_f(lon_f); // 250Hz 400Hz 800Hz Prohibition = int 0...3
   tda.setIn(in_dif); // 0...2
   tda.setIn_gain(gain0,mute); // in_gain -- 0...20 = 0...20 dB, mute -- 0 default 
   tda.setVol(vol); // -79...+15 dB = int -79...15
   tda.setFront_1(rf); // -79...+15 dB = int -79...15
   tda.setFront_2(lf); // -79...+15 dB = int -79...15
   tda.setRear_1(rt); // -79...+15 dB = int -79...15
   tda.setRear_2(lt); // -79...+15 dB = int -79...15
   tda.setSub(sab); // -79...+15 dB = int -79...15
   tda.mix();
   tda.setBass_setup(bas_q,bas_c); // 0.5 1.0 1.5 2.0 --- int 0...3, 60Hz 80Hz 100Hz 120Hz --- int 0...3
   tda.setMiddle_setup(mid_q,mid_c); // 0.75 1.0 1.25 1.5 --- int 0...3, 500Hz 1kHz 1.5kHz 2.5kHz --- int 0...3
   tda.setTreble_setup(treb_q,treb_c); // 0.75 1.25  --- int 0...1, 7.5kHz 10kHz 12.5kHz 15kHz --- int 0...3
   tda.setBass_gain(bass); // --20 ... +20 dB = int -20 ... 20  
   tda.setMiddle_gain(middle); // --20 ... +20 dB = int -20 ... 20
   tda.setTreble_gain(treb); // --20 ... +20 dB = int -20 ... 20   
   tda.setLoudness_gain(lon); // 0 ... 20 dB = int 0 ... 20
  }

96

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

Т.е. если скетч не менять, то мне надо подключить аудиоземлю ко 2 выводу процессора, а входы к 1 и 3 выводам, как на вашей схеме?
И чем отличаются аудиовходы AUX от дифференциальных входов?

97

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

Если скетч не менять, то у Вас 1 канал 1 и 2 выводы, 2 канал 3 и 4, 3 канал 5 и 6. Земля общая GND.

https://otvet.mail.ru/question/81802498

98

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

liman324 пишет:

Если скетч не менять, то у Вас 1 канал 1 и 2 выводы, 2 канал 3 и 4, 3 канал 5 и 6. Земля общая GND.

https://otvet.mail.ru/question/81802498

Спасибо за ответ!
Так и сделал подключение вначале - 1 и 2 выводы как вход, земля питания и аудио GND (использую только 1 канал), остальные каналы не подключены. Но при таком подключении был сильные помехи (писк, жужжание) в звуке от электрооборудования в автомобиле - такая специфика работы усилителей в машине, в домашней аудиосистеме этих помех не будет.
Поэтому сейчас подключил аудиоземлю к 3 выводу процессора - результат, как писал, хороший, но есть небольшое шипение в отсутствие сигнала. И не был уверен, что землю надо подключать именно к 3 выводу.

99

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

Почему именно к 3 выводу подключили землю, Вы просто подали землю на один из входов 2 канала.

100

Re: BD37534FV - Sound Processor with Built-in 3-band Equalizer

liman324 пишет:

Почему именно к 3 выводу подключили землю, Вы просто подали землю на один из входов 2 канала.

Но звук есть при таком подключении в левом и правом канале и регулируется процессором по отдельности.
Т.е. мне надо использовать 1 и 3 входы AUX? Землю подключить ко 2 выводу, так?
Что-то я запутался...