<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[forum.rcl-radio.ru &mdash; Восстановление MICROLAB FC550 (Управление - замена микроконтроллера)]]></title>
	<link rel="self" href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=524&amp;type=atom" />
	<updated>2023-05-26T14:58:20Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.rcl-radio.ru/viewtopic.php?id=524</id>
		<entry>
			<title type="html"><![CDATA[Re: Восстановление MICROLAB FC550 (Управление - замена микроконтроллера)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7848#p7848" />
			<content type="html"><![CDATA[<p>Поправил таблицу. Спасибо что заметили ошибку. Для FC730 схемы нет.</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2023-05-26T14:58:20Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7848#p7848</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Восстановление MICROLAB FC550 (Управление - замена микроконтроллера)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7847#p7847" />
			<content type="html"><![CDATA[<p>Добрый день. Обнаружил ошибку вывод №6 с микроконтроллера SG16C57D на ардуино надо подключать на d12, потому что с скейтче IR&nbsp; берет сигнал с 12 пина. У меня такая же проблема с SG16C57D только на FC730. Не подскажешь схему подключения? отличия от fc 550&nbsp; два 2-х разрядных семисегментных индикатора. <span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/05/c3ecc9b572eb3ceb83ef9427b80706bd.png" alt="http://forum.rcl-radio.ru/uploads/images/2023/05/c3ecc9b572eb3ceb83ef9427b80706bd.png" /></span></p>]]></content>
			<author>
				<name><![CDATA[gidon19880518]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1276</uri>
			</author>
			<updated>2023-05-26T14:45:48Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7847#p7847</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Восстановление MICROLAB FC550 (Управление - замена микроконтроллера)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7232#p7232" />
			<content type="html"><![CDATA[<p>Код написан под ATmega168.</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2023-01-19T11:52:03Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7232#p7232</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Восстановление MICROLAB FC550 (Управление - замена микроконтроллера)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=7230#p7230" />
			<content type="html"><![CDATA[<p>Александр а если убрать из&nbsp; Вашего скетча управление по Ик влезет ли код в 168 атмегу?</p>]]></content>
			<author>
				<name><![CDATA[derdemons]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=547</uri>
			</author>
			<updated>2023-01-19T09:03:11Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=7230#p7230</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Восстановление MICROLAB FC550 (Управление - замена микроконтроллера)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=6946#p6946" />
			<content type="html"><![CDATA[<p>Можно под&nbsp; атмегу 328 или ее клон китайских братьев тем более что LGT8F328P довольно дешевле оригинала</p>]]></content>
			<author>
				<name><![CDATA[derdemons]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=547</uri>
			</author>
			<updated>2022-11-04T06:26:42Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=6946#p6946</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Восстановление MICROLAB FC550 (Управление - замена микроконтроллера)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=6945#p6945" />
			<content type="html"><![CDATA[<p>Я подумаю над этим, но есть другая проблема:<br /></p><div class="quotebox"><blockquote><p>Скетч использует 15774 байт (99%) памяти устройства. Всего доступно 15872 байт.</p></blockquote></div>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2022-11-04T06:20:44Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=6945#p6945</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Восстановление MICROLAB FC550 (Управление - замена микроконтроллера)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=6944#p6944" />
			<content type="html"><![CDATA[<p>Например в штатном режиме&nbsp; энкодером идет управление громкостью , первое короткое нажатие на кнопку регулировка высоких частот энкодером, второе короткое нажатие нажатие регулировка низких частот энкодером. Длительное нажатие на кнопку переключение&nbsp; входа. В стандартном функционале этой акустической системы это не&nbsp; реализовано, только регулировка громкости всё остальное через пульт, а он как правило не всегда есть под рукой.</p>]]></content>
			<author>
				<name><![CDATA[derdemons]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=547</uri>
			</author>
			<updated>2022-11-04T06:18:17Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=6944#p6944</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Восстановление MICROLAB FC550 (Управление - замена микроконтроллера)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=6943#p6943" />
			<content type="html"><![CDATA[<p>Не вижу возможности как совместить кнопку выбора входа с регулировкой тембра. В оригинале эта кнопка управляет только селектором входов, регулировка тембра только с пульта. Если бы энкодер был с кнопкой, тогда проблем бы не было реализовать регулировку тембра, но в АС применяется энкодер без кнопки.</p><p>Но какие то переделки более не предполагаются, проект завершен, функционал АС полностью восстановлен.</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2022-11-04T05:55:58Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=6943#p6943</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Восстановление MICROLAB FC550 (Управление - замена микроконтроллера)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=6942#p6942" />
			<content type="html"><![CDATA[<p>Александр из скетча понял что кнопкой управляется только выбор входа. Так же как в стоковом варианте этого устройства. Хотелось бы что бы этой кнопкой можно было не только управлять переключением входов, но и регулировкой высоких и низких частот.</p>]]></content>
			<author>
				<name><![CDATA[derdemons]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=547</uri>
			</author>
			<updated>2022-11-04T05:52:12Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=6942#p6942</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Восстановление MICROLAB FC550 (Управление - замена микроконтроллера)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=6926#p6926" />
			<content type="html"><![CDATA[<p>Основная статья - <a href="http://rcl-radio.ru/?p=129576">http://rcl-radio.ru/?p=129576</a></p><p><div class="fancy_video_tag_player"><iframe class="youtube-player" type="text/html" width="640" height="385" src="https://www.youtube.com/embed/l-qyKlHnpX8" frameborder="0"></iframe></div></p><div class="codebox"><pre><code>#define IR_1 0x2FDD02F // VOLUME UP
#define IR_2 0x2FD32CD // VOLUME DOWN
#define IR_3 0x2FDAA55 // BASS UP
#define IR_4 0x2FDCA35 // BASS DOWN
#define IR_5 0x2FDE817 // TREB UP
#define IR_6 0x2FDA857 // TREB DOWN
#define IR_7 0x2FD6A95 // 3D
#define IR_8 0x2FD00FF // POWER
#define IR_9 0x2FDB04F // INPUT

#include &lt;Wire.h&gt; 
#include &lt;R2S15900SP.h&gt;         // https://github.com/liman324/R2S15900SP.git  
#include &lt;boarddefs.h&gt;          // входит в состав библиотеки IRremote
#include &lt;IRremote.h&gt;           // http://rcl-radio.ru/wp-content/uploads/2019/06/IRremote.zip
#include &lt;EEPROM.h&gt;


  R2S15900SP r2s;
  IRrecv irrecv(12); // указываем вывод модуля IR приемника
  decode_results ir; 

  int an, segm,data,i;
  byte a[2];
  bool w,sur_3d;
  unsigned long times,times0;

  volatile uint8_t _prevValueAB = 0;    
  volatile uint8_t _currValueAB = 0;
  volatile int16_t _counter = 0;
  
  int position = -999;
  int old_vol,volume,in,bass,treb;
  int menu;
  bool power=1,bassf,trebf,in1,in2,ddd;
  bool gr1,gr2,q1,q2,q3,q4,q5,q6,mute,k=1;
  

 
void setup(){  
    Wire.begin();
    Serial.begin(9600);
    irrecv.enableIRIn();
    cli();
    TCCR2B |= (1&lt;&lt;CS20)|(1&lt;&lt;CS22); 
    TIMSK2 |= (1&lt;&lt;TOIE2); 
    //F_TIMER2 = 16 000 000 / 128 / 256 = 488 Hz  
    sei();
    sur_3d=1;audio();delay(500);sur_3d=0;audio();delay(500);pin1();
    pinMode(10,INPUT);  // enc clk
    pinMode(11,INPUT);  // enc dt
    pinMode(A0,INPUT);  // A0 button input 
    volume = EEPROM.read(0);in = EEPROM.read(1);bass = EEPROM.read(2)-15;treb = EEPROM.read(3)-15;sur_3d = EEPROM.read(4);
    if(in&gt;2 || in&lt;1){in=1;}
    inn();
    audio();
}
 
void loop(){ 
  if(irrecv.decode( &amp;ir )) {Serial.print(&quot;0x&quot;);Serial.println(ir.value,HEX);irrecv.resume();}
  
  if(ir.value==0){gr1=0;gr2=0;q1=0;q2=0;q4=0;q5=0;q5=0;q6=0;}// запрет нажатий не активных кнопок пульта
//// volume 
  old_vol=volume; 
  if(getPosition() != position){position = getPosition();volume = volume+getPosition();
    setPosition(0);menu=0;vol_conf();audio();w=1;times=millis();k=1;}
  v_old();
  if(power==0){
  if(ir.value==IR_1){q1=1;q2=0;gr1=1;gr2=0;volume--;vol_conf();cl1();menu=0;}
  if(ir.value==IR_2){q1=0;q2=1;gr1=0;gr2=1;volume++;vol_conf();cl1();menu=0;}
  if(ir.value==0xFFFFFFFF &amp;&amp; gr1==1 &amp;&amp; q1==1){gr2=0;volume--;vol_conf();cl1();menu=0;}
  if(ir.value==0xFFFFFFFF &amp;&amp; gr2==1 &amp;&amp; q2==1){gr1=0;volume++;vol_conf();cl1();menu=0;}
  v_old();
//// bass
  if(ir.value==IR_4){q5=1;q6=0;gr1=1;gr2=0;bass--;if(bass&lt;-15){bass=-15;}cl1();bassf=1;menu=1;}
  if(ir.value==IR_3){q5=0;q6=1;gr1=0;gr2=1;bass++;if(bass&gt;15){bass=15;}cl1();bassf=1;menu=1;}
  if(ir.value==0xFFFFFFFF &amp;&amp; gr1==1 &amp;&amp; q5==1){gr2=0;bass--;if(bass&lt;-15){bass=-15;}cl1();bassf=1;menu=1;}
  if(ir.value==0xFFFFFFFF &amp;&amp; gr2==1 &amp;&amp; q6==1){gr1=0;bass++;if(bass&gt;15){bass=15;}cl1();bassf=1;menu=1;}  
//// treb
  if(ir.value==IR_6){q3=1;q4=0;gr1=1;gr2=0;treb--;if(treb&lt;-15){treb=-15;}cl1();trebf=1;menu=2;}
  if(ir.value==IR_5){q3=0;q4=1;gr1=0;gr2=1;treb++;if(treb&gt;15){treb=15;}cl1();trebf=1;menu=2;}
  if(ir.value==0xFFFFFFFF &amp;&amp; gr1==1 &amp;&amp; q3==1){gr2=0;treb--;if(treb&lt;-15){treb=-15;}cl1();trebf=1;menu=2;}
  if(ir.value==0xFFFFFFFF &amp;&amp; gr2==1 &amp;&amp; q4==1){gr1=0;treb++;if(treb&gt;15){treb=15;}cl1();trebf=1;menu=2;}    
//// input
  if((digitalRead(A0)==0 || ir.value==IR_9) &amp;&amp; in==1){in=2;in1=1;in2=0;cl1();}
  if((digitalRead(A0)==0 || ir.value==IR_9) &amp;&amp; in==2){in=1;in1=0;in2=1;cl1();}
  inn();
//// 3d
  if(ir.value==IR_7 &amp;&amp; sur_3d==0){sur_3d=1;ddd=1;cl1();}
  if(ir.value==IR_7 &amp;&amp; sur_3d==1){sur_3d=0;ddd=0;cl1();}
  if(sur_3d==1){ddd=1;}else{ddd=0;}
  }
  
  if(menu==0){data=84-volume;a[0]=data/10;a[1]=data%10;}
  if(menu==1){trebf=0;
    if(bass&gt;=-9&amp;&amp;bass&lt;=-1){data=abs(bass);a[0]=11;a[1]=data%10;}
    if(bass&lt;=-10){data=abs(bass);a[0]=12;a[1]=data%10;}
    if(bass&gt;=0){data=bass;a[0]=data/10;a[1]=data%10;}
    }
  if(menu==2){bassf=0;
    if(treb&gt;=-9&amp;&amp;treb&lt;=-1){data=abs(treb);a[0]=11;a[1]=data%10;}
    if(treb&lt;=-10){data=abs(treb);a[0]=12;a[1]=data%10;}
    if(treb&gt;=0){data=treb;a[0]=data/10;a[1]=data%10;}
    }  
  if(menu==3){a[0]=10;a[1]=10;}  
  

 if(ir.value==IR_8 &amp;&amp; power==1){k=1;power=0;menu=0;cl1();}
 if(ir.value==IR_8 &amp;&amp; power==0){k=1;power=1;cl1();}
 if(power==0&amp;&amp;k==1){k=0;mute=1;audio();}
 if(power==1&amp;&amp;k==1){k=0;mute=0;audio();menu=3;in1=0;in2=0;ddd=0;} 

 
 if(millis()-times&gt;5000&amp;&amp;power==0){w=0;bassf=0;trebf=0;menu=0;
   EEPROM.update(0,volume);EEPROM.update(1,in);EEPROM.update(2,bass+15);EEPROM.update(3,treb+15);EEPROM.update(4,sur_3d);
   }

 
 }// loop
void vol_conf(){if(volume&lt;0){volume=0;}if(volume&gt;84){volume=84;}} 
void v_old(){if(old_vol!=volume){menu=0;bassf=0;trebf=0;power=0;}} 
void inn(){if(in==1){in1=1;in2=0;}if(in==2){in2=1;in1=0;}}
void cl1(){ir.value=0;delay(200);w=1;times=millis();audio();}
void pin0(){pinMode(A1,INPUT);pinMode(A2,INPUT);pinMode(A3,INPUT);pinMode(2,INPUT);pinMode(3,INPUT);pinMode(4,INPUT);pinMode(5,INPUT);  
    pinMode(6,INPUT);pinMode(7,INPUT);pinMode(8,INPUT);pinMode(9,INPUT);pinMode(13,INPUT);} 
void pin1(){
    pinMode(A3,OUTPUT);pinMode(A2,OUTPUT);pinMode(2,OUTPUT);pinMode(3,OUTPUT);pinMode(4,OUTPUT);pinMode(5,OUTPUT);pinMode(6,OUTPUT);  
    pinMode(7,OUTPUT);pinMode(8,OUTPUT);pinMode(9,OUTPUT);pinMode(13,INPUT); pinMode(A1,INPUT);  }  
void audio(){            
  r2s.setVol_l(volume);  // volume left &gt;&gt; int 84...0 === -84...0 dB
  r2s.setVol_r(volume);  // volume_right &gt;&gt; int 84...0 === -84...0 dB
  r2s.setInput(in, 1, mute);     
             // input &gt;&gt; int 0 === all off | int 1...5 === input 1...5 
             // gain &gt;&gt; int 0...1 === 0 dB...+4.5 dB
             // mute &gt;&gt; int 1...0 === mute off...mute on
  r2s.set_Bass(sur_3d, 3, bass);
             // surround mode &gt;&gt; int 0...1 === low level...high level
             // mode selector &gt;&gt; int 0...3 === bypass tone tone&amp;Pseudo_stereo tone&amp;Surround
             // tone control bass &gt;&gt; int -15...15 === -15dB...+15dB
  r2s.set_Treb(treb);   // tone control treble &gt;&gt; int -15...15 === -15dB...+15dB
} 

ISR(TIMER2_OVF_vect){
  switch(i){
    case 0: pin1();segm = 10;segment();segm=a[0]; an=0; anod(); segment();break;
    case 1: pin1();segm = 10;segment();segm=a[1]; an=1; anod(); segment();break;
    case 2: pin0();pinMode(A1,OUTPUT);
              if(power==1){pinMode(8,OUTPUT);ch(8,1);ch(A1,0);}
              if(bassf==1){pinMode(5,OUTPUT);ch(5,1);ch(A1,0);}
              if(trebf==1){pinMode(4,OUTPUT);ch(4,1);ch(A1,0);}
              if(in2==1){pinMode(13,OUTPUT);ch(13,1);ch(A1,0);}
              if(ddd==1){pinMode(2,OUTPUT);ch(2,1);ch(A1,0);}
            break;
    case 3: pin0();pinMode(A3,OUTPUT);
              if(in1==1){pinMode(13,OUTPUT);ch(13,1);ch(A3,0);}            
    }
    i++;if(i&gt;3){i=0;}
  
  bool pinA = digitalRead(10);
  bool pinB = digitalRead(11);
   _currValueAB  = pinA &lt;&lt; 1;
   _currValueAB |= pinB;
   switch ((_prevValueAB | _currValueAB)){
    case 0b0001: _counter++;break;
    case 0b0100: _counter--;break;
  }
  _prevValueAB = _currValueAB &lt;&lt; 2;     
  }
 
int16_t getPosition(){return _counter;}
void setPosition(int16_t position){_counter = position;}
void segment(){
  switch(segm){                                                                 
             //  A       B       C       D       E       F       G  
    case 0: ch(4,1);ch(8,1);ch(9,1);ch(6,1);ch(7,1);ch(5,1);ch(2,0);break;// 0 
    case 1: ch(4,0);ch(8,1);ch(9,1);ch(6,0);ch(7,0);ch(5,0);ch(2,0);break;// 1
    case 2: ch(4,1);ch(8,1);ch(9,0);ch(6,1);ch(7,1);ch(5,0);ch(2,1);break;// 2
    case 3: ch(4,1);ch(8,1);ch(9,1);ch(6,1);ch(7,0);ch(5,0);ch(2,1);break;// 3   
    case 4: ch(4,0);ch(8,1);ch(9,1);ch(6,0);ch(7,0);ch(5,1);ch(2,1);break;// 4 
    case 5: ch(4,1);ch(8,0);ch(9,1);ch(6,1);ch(7,0);ch(5,1);ch(2,1);break;// 5 
    case 6: ch(4,1);ch(8,0);ch(9,1);ch(6,1);ch(7,1);ch(5,1);ch(2,1);break;// 6 
    case 7: ch(4,1);ch(8,1);ch(9,1);ch(6,0);ch(7,0);ch(5,0);ch(2,0);break;// 7 
    case 8: ch(4,1);ch(8,1);ch(9,1);ch(6,1);ch(7,1);ch(5,1);ch(2,1);break;// 8
    case 9: ch(4,1);ch(8,1);ch(9,1);ch(6,1);ch(7,0);ch(5,1);ch(2,1);break;// 9 
    case 10: ch(4,0);ch(8,0);ch(9,0);ch(6,0);ch(7,0);ch(5,0);ch(2,0);break;//
    case 11: ch(4,0);ch(8,0);ch(9,0);ch(6,0);ch(7,0);ch(5,0);ch(2,1);break;// - 
    case 12: ch(4,0);ch(8,1);ch(9,1);ch(6,0);ch(7,0);ch(5,0);ch(2,1);break;// -1 
  }}
void anod(){
  switch(an){                                                             
    case 0:ch(A2,0);ch(A3,1);  break;  
    case 1:ch(A2,1);ch(A3,0);  break; 
  }}
void ch(int pin, int logic){digitalWrite(pin,logic);}</code></pre></div><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2022/11/1590966b891c0d7f8ded353ca123fc30.png" alt="http://forum.rcl-radio.ru/uploads/images/2022/11/1590966b891c0d7f8ded353ca123fc30.png" /></span></p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2022-11-02T16:47:44Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=6926#p6926</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Восстановление MICROLAB FC550 (Управление - замена микроконтроллера)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=6917#p6917" />
			<content type="html"><![CDATA[<p>Мой контроллер от MICROLAB FC550 исправен, если кому надо оставьте сообщение (меняю на коды кнопок пульта, родного пульта у меня нет)</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2022-10-29T11:34:23Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=6917#p6917</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Восстановление MICROLAB FC550 (Управление - замена микроконтроллера)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=6916#p6916" />
			<content type="html"><![CDATA[<p>Тестовый запуск</p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2022/10/d910c7ddf74e227fd4835a815a7cb033.png" alt="http://forum.rcl-radio.ru/uploads/images/2022/10/d910c7ddf74e227fd4835a815a7cb033.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2022/10/e473e10554e05aa4d083f18955829bb5.png" alt="http://forum.rcl-radio.ru/uploads/images/2022/10/e473e10554e05aa4d083f18955829bb5.png" /></span> </p><p>Подключаем к Arduino шину I2C<br /><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2022/10/fcb4c4d69a2e614fe481d806c90f25c0.png" alt="http://forum.rcl-radio.ru/uploads/images/2022/10/fcb4c4d69a2e614fe481d806c90f25c0.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2022/10/b6b5f936f05e7121d93d193273dcff59.png" alt="http://forum.rcl-radio.ru/uploads/images/2022/10/b6b5f936f05e7121d93d193273dcff59.png" /></span> </p><p>На шину I2C нужно поставить подтягивающие резисторы 4,7 К на +5В</p><div class="codebox"><pre><code>#include &lt;Wire.h&gt;
#include &lt;R2S15900SP.h&gt;  // https://github.com/liman324/R2S15900SP.git
  R2S15900SP r2s;

bool sur_3d=0;
int bass=14,treb=5,vol;

void setup() {
  audio();
}

void loop() {
 
    
  audio();
  delay(1000);
  
}

void audio(){             
  r2s.setVol_l(10);  // volume left &gt;&gt; int 84...0 === -84...0 dB
  r2s.setVol_r(10);  // volume_right &gt;&gt; int 84...0 === -84...0 dB
  r2s.setInput(2, 1, 1);     
             // input &gt;&gt; int 0 === all off | int 1...5 === input 1...5 
             // gain &gt;&gt; int 0...1 === 0 dB...+4.5 dB
             // mute &gt;&gt; int 1...0 === mute off...mute on
  r2s.set_Bass(sur_3d, 3, bass);
             // surround mode &gt;&gt; int 0...1 === low level...high level
             // mode selector &gt;&gt; int 0...3 === bypass tone tone&amp;Pseudo_stereo tone&amp;Surround
             // tone control bass &gt;&gt; int -15...15 === -15dB...+15dB
  r2s.set_Treb(treb);   // tone control treble &gt;&gt; int -15...15 === -15dB...+15dB
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2022-10-29T11:17:31Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=6916#p6916</id>
		</entry>
</feed>
