<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[forum.rcl-radio.ru &mdash; BD3702 Sound Processor for car audio]]></title>
	<link rel="self" href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=121&amp;type=atom" />
	<updated>2024-02-28T16:50:17Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.rcl-radio.ru/viewtopic.php?id=121</id>
		<entry>
			<title type="html"><![CDATA[Re: BD3702 Sound Processor for car audio]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=9560#p9560" />
			<content type="html"><![CDATA[<p>Опубликуйте ссылку на скетч который используете (или сам скетч)</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2024-02-28T16:50:17Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=9560#p9560</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: BD3702 Sound Processor for car audio]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=9552#p9552" />
			<content type="html"><![CDATA[<p>Здраствуйте сделайте пожалуйста&nbsp; кнопку power и пин управляющий а так же при переходе на вход in1 включался пин любой для включения блютуз и переназвать название этого in 1 допустим блютуз он. И так же чтоб при переходе на другой вход пин блютуза отключался . Ну естественно кнопки все оставить и энкодер. За ранее спасибо!</p>]]></content>
			<author>
				<name><![CDATA[www.aleksandrov74]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1953</uri>
			</author>
			<updated>2024-02-26T17:01:22Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=9552#p9552</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: BD3702 Sound Processor for car audio]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7200#p7200" />
			<content type="html"><![CDATA[<p>да</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2023-01-17T00:13:33Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7200#p7200</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: BD3702 Sound Processor for car audio]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7199#p7199" />
			<content type="html"><![CDATA[<p>Все хорошо работает ,кнопки все на GND! D4 тоже работает как надо. Пульт теперь вижу в мониторе портов ! Но коды куда вписать ,сюда?<br />#define IR_1 0x2FDD02F // Кнопка вверх<br />#define IR_2 0x2FD32CD // Кнопка вниз<br />#define IR_3 0x2EFA857 // Кнопка &gt;<br />#define IR_4 0x2FDF20D // Кнопка &lt;<br />#define IR_5 0x2FD6A95 // Кнопка IN<br />#define IR_6 0x2FDB24D // Кнопка MENU<br />#define IR_7 0x2FDEA15 // Кнопка MUTE<br />#define IR_8 0xEFA25D // Кнопка POWER</p>]]></content>
			<author>
				<name><![CDATA[www.aleksandrov74]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1953</uri>
			</author>
			<updated>2023-01-16T19:52:10Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7199#p7199</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: BD3702 Sound Processor for car audio]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7198#p7198" />
			<content type="html"><![CDATA[<p>Скетч готов, тестируйте, пульт работает. Управление полностью кнопочное, дублируется пультом.</p><p>Mute только с пульта, STANDBY с пульта и кнопки. Выход для управления STANDBY D4.</p><p>Подсветку дисплея можно сделать от ШИМ выхода, то есть в режиме STANDBY будет гаснуть не полностью, а немного&nbsp; подсвечивать, можно вывести надпись или время.</p><br /><br /><div class="codebox"><pre><code>#define IR_1 0x2FDD02F // Кнопка вверх
#define IR_2 0x2FD32CD // Кнопка вниз
#define IR_3 0x2FD906F // Кнопка &gt;
#define IR_4 0x2FDF20D // Кнопка &lt;
#define IR_5 0x2FD6A95 // Кнопка IN
#define IR_6 0x2FDB24D // Кнопка MENU
#define IR_7 0x2FDEA15 // Кнопка MUTE
#define IR_8 0x2FD00FF // Кнопка POWER


#include &lt;Wire.h&gt; 
#include &lt;LiquidCrystal_I2C.h&gt;
#include &lt;BD3702.h&gt;
#include &lt;EEPROM.h&gt;
#include &lt;boarddefs.h&gt;
#include &lt;IRremote.h&gt;
   BD3702 bd;
   LiquidCrystal_I2C lcd(0x27,20,4);  // Устанавливаем дисплей
   IRrecv irrecv(12); // указываем вывод модуля IR приемника
   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,times_in,oldPosition  = -999,newPosition; 
   byte in,in_x,w,w1,w2[4],w3,z,z0,z1,q,i,www,gr1,gr2;
   int menu,menu0,menu_1,menu_2,vol,bass,treb,mid,vol_d,bass_d,treb_d,mid_d,mute;
   int temp0,gain0,gain1,gain2,gain3,gain_d;
   int bass_f,bass_q,treb_f,treb_q,mid_f,mid_q,loud_f,loud_g;
   int lf,rf,lr,rr,sub,sub_f;
   byte mesto[8]={4,13,4,13,4,13,4,13};
   byte mesto1[8]={0,0,1,1,2,2,3,3};
   byte mesto2[6]={0,11,0,11,0,11};
   byte mesto3[6]={0,0,1,1,3,3};
   String bass_nam[4]={&quot;60   Hz&quot;, &quot;80   Hz&quot;, &quot;100  Hz&quot;, &quot;120  Hz&quot;};
   String treb_nam[4]={&quot;7.5 kHz&quot;, &quot;10  kHz&quot;, &quot;12.5kHz&quot;, &quot;15  kHz&quot;};
   String mid_nam[4] ={&quot;500  Hz&quot;, &quot;1   kHz&quot;, &quot;1.5 kHz&quot;, &quot;2.5 kHz&quot;};
   String lon_nam[4] ={&quot;250  Hz&quot;, &quot;400  Hz&quot;, &quot;800  Hz&quot;, &quot;disable&quot;};
   String sub_nam[4] ={&quot; OFF   &quot;, &quot; 55  Hz&quot;, &quot; 85  Hz&quot;, &quot; 120 Hz&quot;};
   float bass_nam_1[4]={0.5, 1.0, 1.5, 2.0};
   float mid_nam_1[4]={0.75, 1.0, 1.25, 1.5};
   float treb_nam_1[2]={0.75, 1.25};
   bool power;

void setup() {
  irrecv.enableIRIn();lcd.init();lcd.backlight();
  Serial.begin(9600);
  lcd.setCursor(0,2);lcd.print(&quot;      BD3702FV   &quot;);lcd.setCursor(0,1);lcd.print(&quot;  Sound  Processor  &quot;); delay(2000);
  lcd.createChar(0,a1);lcd.createChar(1,a2);lcd.createChar(2,a3);
  pinMode(10,INPUT_PULLUP);  // МЕНЮ КНОПКА SW энкодера
  pinMode(2,INPUT_PULLUP);   // МЕНЮ НАСТРОЕК
  pinMode(3,INPUT_PULLUP);   // IN
  pinMode(A0,INPUT_PULLUP);  // UP
  pinMode(A1,INPUT_PULLUP);  // DW
  pinMode(A2,INPUT_PULLUP);  // POWER
  pinMode(4,OUTPUT);         // OUTPUT STANDBY
  if(EEPROM.read(100)!=0){for(int i=0;i&lt;101;i++){EEPROM.update(i,0);}}// очистка памяти при первом включении 
  vol = EEPROM.read(0)-79;treb = EEPROM.read(1)-20;mid = 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);
  bass_f = EEPROM.read(8);bass_q = EEPROM.read(9);treb_f = EEPROM.read(10);treb_q = EEPROM.read(11);
  mid_f = EEPROM.read(12);mid_q = EEPROM.read(13);loud_f = EEPROM.read(14);loud_g= EEPROM.read(15);
  lf = EEPROM.read(16)-79;rf = EEPROM.read(17)-79;lr = EEPROM.read(18)-79;rr = EEPROM.read(19)-79;sub = EEPROM.read(20)-79;sub_f = EEPROM.read(21);
  w2_arr();audio();cl();
}

void loop() {
if(power==0){
  if(digitalRead(10)==LOW&amp;&amp;menu0==0){menu++;delay(200);time=millis();w=1;w2_arr();if(menu&gt;3){menu=0;}}// меню 0
  if(digitalRead(10)==LOW&amp;&amp;menu0==1){menu_1++;delay(200);time=millis();w=1;if(menu_1&gt;7){menu_1=0;}}// меню 1
  if(digitalRead(10)==LOW&amp;&amp;menu0==2){menu_2++;delay(200);time=millis();w=1;if(menu_2&gt;5){menu_2=0;}}// меню 2
    
  if(digitalRead(2)==LOW &amp;&amp; in_x==0){menu0++;cl();delay(200);time=millis();w=1;w2_arr();menu=0;menu_1=0;menu_2=0;if(menu0&gt;2){menu0=0;}}// меню
  if(digitalRead(3)==LOW){in++;cl();times_in=millis();in_x=1;w3=1;www=1;menu0=100;if(in&gt;2){in=0;}}// IN
}
////////////////////// IR /////////////////////////////////////////////////
  if ( irrecv.decode( &amp;ir )) {Serial.print(&quot;0x&quot;);Serial.println( ir.value,HEX);irrecv.resume();time=millis();w=1;}// IR приемник - чтение, в мониторе порта отображаются коды кнопок
  if(ir.value==0){gr1=0;gr2=0;}// запрет нажатий не активных кнопок пульта

if(power==0){
   if(ir.value==IR_2&amp;&amp;menu0==0){menu++;gr1=0;gr2=0;cl1();time=millis();w=1;if(menu&gt;3){menu=0;}}//  кнопка вверх 
   if(ir.value==IR_1&amp;&amp;menu0==0){menu--;gr1=0;gr2=0;cl1();time=millis();w=1;if(menu&lt;0){menu=3;}}//  кнопка вниз
   if(ir.value==IR_2&amp;&amp;menu0==1){menu_1++;gr1=0;gr2=0;cl1();time=millis();w=1;if(menu_1&gt;7){menu_1=0;}}//  кнопка вверх 
   if(ir.value==IR_1&amp;&amp;menu0==1){menu_1--;gr1=0;gr2=0;cl1();time=millis();w=1;if(menu_1&lt;0){menu_1=7;}}//  кнопка вниз
   if(ir.value==IR_2&amp;&amp;menu0==2){menu_2++;gr1=0;gr2=0;cl1();time=millis();w=1;if(menu_2&gt;5){menu_2=0;}}//  кнопка вверх 
   if(ir.value==IR_1&amp;&amp;menu0==2){menu_2--;gr1=0;gr2=0;cl1();time=millis();w=1;if(menu_2&lt;0){menu_2=5;}}//  кнопка вниз

   if(ir.value==IR_6){menu0++;gr1=0;gr2=0;cl();time=millis();w=1;w2_arr();menu=0;menu_1;menu_2;if(menu0&gt;2){menu0=0;}}//  кнопка MENU
   if(ir.value==IR_5){in++;gr1=0;gr2=0;cl();times_in=millis();in_x=1;w3=1;www=1;menu0=100;if(in&gt;2){in=0;}}//  кнопка IN

  if(ir.value==IR_7&amp;&amp;mute==0){mute=1;gr1=0;gr2=0;cl();lcd.setCursor(0,1);lcd.print(&quot;        MUTE     &quot;);menu0=100;audio();}// mute on
  if(ir.value==IR_7&amp;&amp;mute==1){mute=0;gr1=0;gr2=0;cl();menu0=0;w2_arr();audio();}// mute off

}

 if((ir.value==IR_8||digitalRead(A2)==LOW)&amp;&amp;power==0){power=1;in_x=0;mute=1;cl();audio();lcd.setCursor(5,1);lcd.print(&quot;POWER  OFF&quot;);menu0=100;delay(3000);}// power off
 if((ir.value==IR_8||digitalRead(A2)==LOW)&amp;&amp;power==1){power=0;cl();lcd.setCursor(5,1);lcd.print(&quot;POWER   ON &quot;);w=1;w2_arr();
   menu0=0;mute=0;audio();delay(3000);cl();}// power on
 if(power==0){digitalWrite(4,HIGH);}else{digitalWrite(4,LOW);}  
  
/////////////////////////////// MENU0 = VOLUME TERBLE MIDDLE BASS ///////////////////////////////////////////////////////////////////////
  if(menu0==0){
    switch(menu){
      case 0: temp0 = vol;q=0;break;
      case 1: temp0 = bass;q=1;break;
      case 2: temp0 = mid;q=2;break;
      case 3: temp0 = treb;q=3;break;}

     if(ir.value==IR_3 || digitalRead(A0)==LOW){temp0++;gr1=1;gr2=0;cl1();time=millis();w=1;w2[q]=1;www=1;}// кнопка &gt; 
     if(ir.value==0xFFFFFFFF and gr1==1){temp0++;gr2=0;cl1();time=millis();;w=1;w2[q]=1;www=1;}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==IR_4 || digitalRead(A1)==LOW){temp0--;gr1=0;gr2=1;cl1();time=millis();;w=1;w2[q]=1;www=1;}// кнопка &lt;
     if(ir.value==0xFFFFFFFF and gr2==1){temp0--;gr1=0;cl1();time=millis();w=1;w2[q]=1;www=1;}// кнопка &lt;&lt;&lt;&lt;&lt;&lt;   

     switch(menu){
      case 0: vol = temp0;vol_func();break;
      case 1: bass = temp0;bass_func();break;
      case 2: mid = temp0;mid_func();break;
      case 3: treb = temp0;treb_func();break;}
      
   au();
   for(i=0;i&lt;4;i++){if(menu==i){lcd.setCursor(0,i);lcd.print(&quot;&gt;&quot;);}else{lcd.setCursor(0,i);lcd.print(&quot; &quot;);}}
   lcd.setCursor(1,0);lcd.print(&quot;VOLUME &quot;);if(vol&gt;=0){lcd.print(&quot; &quot;);}lcd.print(vol);lcd.print(&quot; &quot;);vol_d=map(vol,-79,15,0,24);
   lcd.setCursor(1,1);lcd.print(&quot;BASS   &quot;);if(bass&gt;=0){lcd.print(&quot; &quot;);}lcd.print(bass);lcd.print(&quot; &quot;);bass_d=map(bass,-20,20,0,24);
   lcd.setCursor(1,2);lcd.print(&quot;MIDDLE &quot;);if(mid&gt;=0){lcd.print(&quot; &quot;);}lcd.print(mid);lcd.print(&quot; &quot;);mid_d=map(mid,-20,20,0,24);
   lcd.setCursor(1,3);lcd.print(&quot;TREBLE &quot;);if(treb&gt;=0){lcd.print(&quot; &quot;);}lcd.print(treb);lcd.print(&quot; &quot;);treb_d=map(treb,-20,20,0,24);

   if(w2[0]==1){
   for(z=0,z0=0,z1=0;z&lt;=vol_d;z++,z1++){if(z1&gt;2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+12,0);lcd.write((uint8_t)0);lcd.setCursor(z0+1+12,0);lcd.print(&quot; &quot;);}}
   if(z1==3){lcd.setCursor(z0+12,0);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+12,0);lcd.write((uint8_t)2);}w2[0]=0;}
   if(w2[1]==1){
   for(z=0,z0=0,z1=0;z&lt;=bass_d;z++,z1++){if(z1&gt;2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+12,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+12,1);lcd.print(&quot; &quot;);}}
   if(z1==3){lcd.setCursor(z0+12,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+12,1);lcd.write((uint8_t)2);}w2[1]=0;}
   if(w2[2]==1){
   for(z=0,z0=0,z1=0;z&lt;=mid_d;z++,z1++){if(z1&gt;2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+12,2);lcd.write((uint8_t)0);lcd.setCursor(z0+1+12,2);lcd.print(&quot; &quot;);}}
   if(z1==3){lcd.setCursor(z0+12,2);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+12,2);lcd.write((uint8_t)2);}w2[2]=0;}   
   if(w2[3]==1){
   for(z=0,z0=0,z1=0;z&lt;=treb_d;z++,z1++){if(z1&gt;2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+12,3);lcd.write((uint8_t)0);lcd.setCursor(z0+1+12,3);lcd.print(&quot; &quot;);}}
   if(z1==3){lcd.setCursor(z0+12,3);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+12,3);lcd.write((uint8_t)2);}w2[3]=0;}
   }// menu0 = 0
///////////////////////////////////////////////////////////////////////////////////////////////

///////////////////// MENU 2 ////////////////////////////////////////////////////////
 if(menu0==1){
  switch(menu_1){
      case 0: temp0 = bass_f;break;
      case 1: temp0 = bass_q;break;
      case 2: temp0 = mid_f;break;
      case 3: temp0 = mid_q;break;
      case 4: temp0 = treb_f;break;
      case 5: temp0 = treb_q;break;
      case 6: temp0 = loud_f;break;
      case 7: temp0 = loud_g;break;}

     if(ir.value==IR_3 || digitalRead(A0)==LOW){temp0++;gr1=1;gr2=0;cl1();time=millis();w=1;www=1;}// кнопка &gt; 
     if(ir.value==0xFFFFFFFF and gr1==1){temp0++;gr2=0;cl1();time=millis();w=1;www=1;}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==IR_4 || digitalRead(A1)==LOW){temp0--;gr1=0;gr2=1;cl1();time=millis();;w=1;www=1;}// кнопка &lt;
     if(ir.value==0xFFFFFFFF and gr2==1){temp0--;gr1=0;cl1();time=millis();w=1;www=1;}// кнопка &lt;&lt;&lt;&lt;&lt;&lt;     
     

     switch(menu_1){
      case 0: bass_f = temp0;bass_f_func();break;
      case 1: bass_q = temp0;bass_q_func();break;
      case 2: mid_f = temp0;mid_f_func();break;
      case 3: mid_q = temp0;mid_q_func();break;
      case 4: treb_f = temp0;treb_f_func();break;
      case 5: treb_q = temp0;treb_q_func();break;
      case 6: loud_f = temp0;loud_f_func();break;
      case 7: loud_g = temp0;loud_g_func();break;}
      
  au();
  for(i=0;i&lt;8;i++){if(menu_1==i){lcd.setCursor(mesto[i],mesto1[i]);lcd.print(&quot;&gt;&quot;);}else{lcd.setCursor(mesto[i],mesto1[i]);lcd.print(&quot; &quot;);}}
  lcd.setCursor(0,0);lcd.print(&quot;BASS&quot;);lcd.setCursor(5,0);lcd.print(bass_nam[bass_f]);lcd.setCursor(14,0);lcd.print(&quot;Q &quot;);lcd.print(bass_nam_1[bass_q]);
  lcd.setCursor(0,1);lcd.print(&quot;MIDD&quot;);lcd.setCursor(5,1);lcd.print(mid_nam[mid_f]);lcd.setCursor(14,1);lcd.print(&quot;Q &quot;);lcd.print(mid_nam_1[mid_q]);
  lcd.setCursor(0,2);lcd.print(&quot;TREB&quot;);lcd.setCursor(5,2);lcd.print(treb_nam[treb_f]);lcd.setCursor(14,2);lcd.print(&quot;Q &quot;);lcd.print(treb_nam_1[treb_q]);
  lcd.setCursor(0,3);lcd.print(&quot;LOUD&quot;);lcd.setCursor(5,3);lcd.print(lon_nam[loud_f]);lcd.setCursor(14,3);lcd.print(&quot;G &quot;);lcd.print(loud_g/10);lcd.print(loud_g%10);lcd.setCursor(18,3);lcd.print(&quot;dB&quot;);
  }// menu0 = 1
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////


 if(menu0==2){
     switch(menu_2){
      case 0: temp0 = lf;break;
      case 1: temp0 = rf;break;
      case 2: temp0 = lr;break;
      case 3: temp0 = rr;break;
      case 4: temp0 = sub;break;
      case 5: temp0 = sub_f;break;}

     if(ir.value==IR_3 || digitalRead(A0)==LOW){temp0++;gr1=1;gr2=0;cl1();time=millis();w=1;www=1;}// кнопка &gt; 
     if(ir.value==0xFFFFFFFF and gr1==1){temp0++;gr2=0;cl1();time=millis();w=1;www=1;}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==IR_4 || digitalRead(A1)==LOW){temp0--;gr1=0;gr2=1;cl1();time=millis();;w=1;www=1;}// кнопка &lt;
     if(ir.value==0xFFFFFFFF and gr2==1){temp0--;gr1=0;cl1();time=millis();w=1;www=1;}// кнопка &lt;&lt;&lt;&lt;&lt;&lt;     

     switch(menu_2){
      case 0: lf = temp0;lf_func();break;
      case 1: rf = temp0;rf_func();break;
      case 2: lr = temp0;lr_func();break;
      case 3: rr = temp0;rr_func();break;
      case 4: sub = temp0;sub_func();break;
      case 5: sub_f = temp0;sub_f_func();break;}

  au();
  for(i=0;i&lt;6;i++){if(menu_2==i){lcd.setCursor(mesto2[i],mesto3[i]);lcd.print(&quot;&gt;&quot;);}else{lcd.setCursor(mesto2[i],mesto3[i]);lcd.print(&quot; &quot;);}}
  lcd.setCursor(1,0);lcd.print(&quot;LF&quot;);lcd.setCursor(4,0);lcd.print(lf);lcd.print(&quot; &quot;);lcd.setCursor(7,0);lcd.print(&quot;dB &quot;);lcd.setCursor(12,0);lcd.print(&quot;RF &quot;);lcd.print(rf);lcd.print(&quot; &quot;);lcd.setCursor(18,0);lcd.print(&quot;dB&quot;);
  lcd.setCursor(1,1);lcd.print(&quot;LR&quot;);lcd.setCursor(4,1);lcd.print(lr);lcd.print(&quot; &quot;);lcd.setCursor(7,1);lcd.print(&quot;dB &quot;);lcd.setCursor(12,1);lcd.print(&quot;RR &quot;);lcd.print(rr);lcd.print(&quot; &quot;);lcd.setCursor(18,1);lcd.print(&quot;dB&quot;);
  lcd.setCursor(0,2);lcd.print(&quot;  Subwoofer  setup  &quot;);
  lcd.setCursor(1,3);lcd.print(&quot;G &quot;);lcd.setCursor(4,3);lcd.print(sub);lcd.print(&quot; &quot;);lcd.setCursor(7,3);lcd.print(&quot;dB &quot;);lcd.setCursor(12,3);lcd.print(sub_nam[sub_f]);
 } // menu0 = 2

////////////////////////// GAIN IN /////////////////////////////////////////////////////////////////////////////////////
if(in_x==1){ menu0=100;
   switch(in){
     case 0: gain0 = gain1;break;
     case 1: gain0 = gain2;break;
     case 2: gain0 = gain3;break;}

     if(ir.value==IR_3 || digitalRead(A0)==LOW){gain0++;gr1=1;gr2=0;cl1();time=millis();times_in=millis();www=1;w=1;w3=1;gain_func();}// кнопка &gt; 
     if(ir.value==0xFFFFFFFF and gr1==1){gain0++;gr2=0;cl1();time=millis();times_in=millis();www=1;w=1;w3=1;gain_func();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==IR_4 || digitalRead(A1)==LOW){gain0--;gr1=0;gr2=1;cl1();time=millis();times_in=millis();www=1;w=1;w3=1;gain_func();}// кнопка &lt;
     if(ir.value==0xFFFFFFFF and gr2==1){gain0--;gr1=0;cl1();time=millis();times_in=millis();www=1;w=1;w3=1;gain_func();}// кнопка &lt;&lt;&lt;&lt;&lt;&lt;  
     
    
   switch(in){
     case 0: gain1 = gain0;break;
     case 1: gain2 = gain0;break;
     case 2: gain3 = gain0;break;}
      
  au();
  lcd.setCursor(2,1);lcd.print(&quot;Gain IN &quot;);lcd.print(in+1);lcd.setCursor(12,1);lcd.print(&quot; &quot;);lcd.print(gain0);lcd.print(&quot; &quot;);lcd.setCursor(16,1);lcd.print(&quot;dB&quot;);gain_d=gain0;
   if(w3==1){
   for(z=0,z0=0,z1=0;z&lt;=gain_d;z++,z1++){if(z1&gt;2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+7,2);lcd.write((uint8_t)0);lcd.setCursor(z0+1+7,2);lcd.print(&quot;   &quot;);}}
   if(z1==3){lcd.setCursor(z0+7,2);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+7,2);lcd.write((uint8_t)2);}} w3=0;
   if(millis()-times_in&gt;3000){in_x=0;cl();menu0=0;w2_arr();}}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////   

///////////////////// EEPROM ///////////////////////////////////////////////////////////////         
  if(millis()-time&gt;10000 &amp;&amp; w==1){
     EEPROM.update(0,vol+79);EEPROM.update(1,treb+20);EEPROM.update(2,mid+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,bass_f);EEPROM.update(9,bass_q);EEPROM.update(10,treb_f);EEPROM.update(11,treb_q),
     EEPROM.update(12,mid_f);EEPROM.update(13,mid_q);EEPROM.update(14,loud_f);EEPROM.update(15,loud_g);
     EEPROM.update(16,lf+79);EEPROM.update(17,rf+79);EEPROM.update(18,lr+79);EEPROM.update(19,rr+79);EEPROM.update(20,sub+79);EEPROM.update(21,sub_f);
     menu=0;menu_1=0;menu_2=0;w=0;w2_arr();}
  
  }// loop

void sub_f_func(){if(sub_f&gt;3){sub_f=0;}if(sub_f&lt;0){sub_f=3;}}
void lf_func(){if(lf&lt;-79){lf=-79;}if(lf&gt;15){lf=15;}};
void rf_func(){if(rf&lt;-79){rf=-79;}if(rf&gt;15){rf=15;}};
void lr_func(){if(lr&lt;-79){lr=-79;}if(lr&gt;15){lr=15;}};
void rr_func(){if(rr&lt;-79){rr=-79;}if(rr&gt;15){rr=15;}};
void sub_func(){if(sub&lt;-79){sub=-79;}if(sub&gt;7){sub=7;}};
void au(){if(www==1){audio();www=0;}}
void loud_f_func(){if(loud_f&gt;3){loud_f=0;}if(loud_f&lt;0){loud_f=3;}}
void loud_g_func(){if(loud_g&gt;20){loud_g=20;}if(loud_g&lt;0){loud_g=0;}}
void mid_q_func(){if(mid_q&gt;3){mid_q=0;}if(mid_q&lt;0){mid_q=3;}}
void treb_q_func(){if(treb_q&gt;1){treb_q=0;}if(treb_q&lt;0){treb_q=1;}}
void bass_q_func(){if(bass_q&gt;3){bass_q=0;}if(bass_q&lt;0){bass_q=3;}}
void mid_f_func(){if(mid_f&gt;3){mid_f=0;}if(mid_f&lt;0){mid_f=3;}}
void treb_f_func(){if(treb_f&gt;3){treb_f=0;}if(treb_f&lt;0){treb_f=3;}}
void bass_f_func(){if(bass_f&gt;3){bass_f=0;}if(bass_f&lt;0){bass_f=3;}}
void gain_func(){if(gain0&lt;0){gain0=0;}if(gain0&gt;20){gain0=20;}}
void bass_func(){if(bass&gt;20){bass=20;}if(bass&lt;-20){bass=-20;}} 
void mid_func(){if(mid&gt;20){mid=20;}if(mid&lt;-20){mid=-20;}}
void treb_func(){if(treb&gt;20){treb=20;}if(treb&lt;-20){treb=-20;}}
void vol_func(){if(vol&lt;-79){vol=-79;}if(vol&gt;15){vol=15;}}
void w2_arr(){w2[0]=1;w2[1]=1;w2[2]=1;w2[3]=1;}
void cl(){ir.value=0;delay(300);lcd.clear();}
void cl1(){ir.value=0;delay(200);}

void audio(){
    // Advanced switch time of Mute === 0.6 1.0 1.4 3.2 ms = int 0...3
    // Advanced switch time of Input gain/Volume/Tone/Fader/Loudness === 4.7 7.1 11.2 14.4 ms = int 0...3
    // Advanced switch ON/OFF === OFF ON = int 0...1    
  bd.setInitial_1(0, 0, 1); // 0x01
    // Subwoofer LPF fc === OFF 55Hz 85Hz 120Hz = int 0...3
    // Subwoofer Output Select === LPF Front Rear Prohibition = int 0...3
    // Level Meter RESET === HOLD RESET = int 0...1
  bd.setInitial_2(sub_f, 0, 0); // 0x02  
    // Loudness fo === 250Hz 400Hz 800Hz Prohibition = int 0...3
  bd.setInitial_3(loud_f); // 0x03
    // Input Selector === A B C D_single E1_single E2_single D_diff E_full_diff Input_SHORT = int 0...8 
    // Full-diff Bias Type Select === Negative_Input Bias = int 0...1
  bd.setIn(in, 0); // 0x05
    // Input Gain === 0...20 dB = int 0...20
    // MUTE ON/OFF === OFF ON = int 0...1    
  bd.setIn_gain(gain0, mute); // 0x06
    // VOL === -79...+15 dB = int -79...15
  bd.setVol(vol); // 0x20
    // FADER FRONT 1CH === -79...+15 dB = int -79...15
  bd.setFront_1(lf); // 0x28
    // FADER FRONT 2CH === -79...+15 dB = int -79...15
  bd.setFront_2(rf); // 0x29
    // FADER REAR 1CH === -79...+15 dB = int -79...15
  bd.setRear_1(lr); // 0x2A
    // FADER REAR 2CH === -79...+15 dB = int -79...15
  bd.setRear_2(rr); // 0x2B
    // FADER SUB === -79...+15 dB = int -79...15
  bd.setSub(sub); // 0x2C
    // Mixing Gain === -79...+7 dB = int -79...7
  bd.setMix_gain(-79); // 0x30
    // Bass Q factor === 0.5 1.0 1.5 2.0 = int 0...3
    // Bass fo === 60Hz 80Hz 100Hz 120Hz = int 0...3
  bd.setBass_setup(bass_q, bass_f); // 0x41
    // Middle Q factor === 0.75 1.0 1.25 1.5 = int 0...3
    // Middle fo === 500Hz 1kHz 1.5kHz 2.5kHz = int 0...3
  bd.setMiddle_setup(mid_q, mid_f); // 0x44
    // Treble Q factor === 0.75 1.25 = int 0...1
    // Treble fo === 7.5kHz 10kHz 12.5kHz 15kHz = int 0...3
  bd.setTreble_setup(treb_q, mid_f); // 0x47
    // Bass Gain === -20...+20 dB = int -20...20
  bd.setBass_gain(bass); // 0x51
    // Middle Gain === -20...+20 dB = int -20...20
  bd.setMiddle_gain(mid); // 0x54
    // Treble Gain === -20...+20 dB = int -20...20
  bd.setTreble_gain(treb); // 0x57
    // Loudness Gain === 0...20 dB = int 0...20
  bd.setLoudness_gain(loud_g); // 0x75
    // Setup 4 = not param
  bd.setInitial_4(); // 0x90
  }
 </code></pre></div>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2023-01-16T17:09:28Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7198#p7198</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: BD3702 Sound Processor for car audio]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7197#p7197" />
			<content type="html"><![CDATA[<p>Для теста использую 16 2 с I2C но скоро приедет LCD2004 в принципе видно частично</p>]]></content>
			<author>
				<name><![CDATA[www.aleksandrov74]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1953</uri>
			</author>
			<updated>2023-01-16T17:01:03Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7197#p7197</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: BD3702 Sound Processor for car audio]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7195#p7195" />
			<content type="html"><![CDATA[<p>Дисплей используете LCD2004 с модулем I2C?</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2023-01-16T16:31:56Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7195#p7195</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: BD3702 Sound Processor for car audio]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7194#p7194" />
			<content type="html"><![CDATA[<p>Спасибо! Вот печатка вдруг кому пригодится. Перед печатью зеркалить.<span class="attention-yellow"></span></p>]]></content>
			<author>
				<name><![CDATA[www.aleksandrov74]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1953</uri>
			</author>
			<updated>2023-01-16T16:16:55Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7194#p7194</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: BD3702 Sound Processor for car audio]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7193#p7193" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>Вытравил печатку под BD3207 Все четко работает ! И кнопки и энкодер. Про NEC&nbsp; понял не знал извините ! Стандбая не хватает отдельной кнопкой и вывода И лично мне бы от энкодера избавится только кнопки и пульт.Можно вас попросить сделать это</p></blockquote></div><p>Завтра постараюсь сделать.</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2023-01-16T16:15:51Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7193#p7193</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: BD3702 Sound Processor for car audio]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7192#p7192" />
			<content type="html"><![CDATA[<p>Да я полностью программу сносил и все следы от нее и поновой ставил Светик моргает</p>]]></content>
			<author>
				<name><![CDATA[www.aleksandrov74]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1953</uri>
			</author>
			<updated>2023-01-16T16:14:37Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7192#p7192</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: BD3702 Sound Processor for car audio]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7191#p7191" />
			<content type="html"><![CDATA[<p>Светодиод на платке ИК датчика мигает если нажать кнопку пульта?</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2023-01-16T16:12:37Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7191#p7191</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: BD3702 Sound Processor for car audio]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7190#p7190" />
			<content type="html"><![CDATA[<p>Ранее была установлена библиотека IRremote не с моего сайта? Если была то надо перед установкой удалить папку со старой библиотекой.</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2023-01-16T16:11:48Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7190#p7190</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: BD3702 Sound Processor for car audio]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7189#p7189" />
			<content type="html"><![CDATA[<p>Вытравил печатку под BD3207 Все четко работает ! И кнопки и энкодер. Про NEC&nbsp; понял не знал извините ! Стандбая не хватает отдельной кнопкой и вывода И лично мне бы от энкодера избавится только кнопки и пульт.Можно вас попросить сделать это</p>]]></content>
			<author>
				<name><![CDATA[www.aleksandrov74]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1953</uri>
			</author>
			<updated>2023-01-16T16:09:55Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7189#p7189</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: BD3702 Sound Processor for car audio]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7188#p7188" />
			<content type="html"><![CDATA[<p>Библиотека поддерживает только формат NEC</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2023-01-16T16:08:41Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7188#p7188</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: BD3702 Sound Processor for car audio]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7187#p7187" />
			<content type="html"><![CDATA[<p>Уже вторую ардуину нано думал дело в ней пульт использую RC5&nbsp; Да и пробовал LG</p>]]></content>
			<author>
				<name><![CDATA[www.aleksandrov74]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1953</uri>
			</author>
			<updated>2023-01-16T16:05:34Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7187#p7187</id>
		</entry>
</feed>
