<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[forum.rcl-radio.ru &mdash; Аудиопроцессоры]]></title>
	<link rel="self" href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;fid=2&amp;type=atom" />
	<updated>2026-01-05T16:31:23Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.rcl-radio.ru/index.php</id>
		<entry>
			<title type="html"><![CDATA[AX2358]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?id=725&amp;action=new" />
			<summary type="html"><![CDATA[<p><a href="http://rcl-radio.ru/wp-content/uploads/2026/01/AX2358_ETC.pdf">http://rcl-radio.ru/wp-content/uploads/ … 58_ETC.pdf</a></p><br /><p>ax2358.ino</p><div class="codebox"><pre><code>#include &lt;Wire.h&gt; 
#include &lt;AX2358.h&gt; 

AX2358 ax;

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

void loop() {
  // put your main code here, to run repeatedly:

}

void audio(){
        ax.setInput(1);// int 1,2,3,4 = input 1,2,3,4 | int 5 = input 6CH
        ax.setFunc_stereo(0); // 3d int 1...0 = on ... off 
        ax.setFunc_att(0);    // Stereo‑to‑CT/SUB Mixer with −6dB Attenuation | int 1...0 = on ... off 
        ax.setVol_master(65); //  int 0...79 
        ax.setMute(0);// mute 0 - off / 1 - on     
  }</code></pre></div><p><span class="attention-yellow"></span></p>]]></summary>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2026-01-05T16:31:23Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?id=725&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[M61541fp + PT2323 на Microlab H-600]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?id=695&amp;action=new" />
			<summary type="html"><![CDATA[<p>Восстановление Microlab H-600.<br />Отсутствие основного пульта, привело к изготовлению на основе Ардуино.<br />драйвера на процессор&nbsp; M61541 не нашел на просторах нета. Даташит на этот процессор&nbsp; сложный&nbsp; вроде 24 битный <br />Помогите в создании M61541.cpp &amp;M61541.h.</p>]]></summary>
			<author>
				<name><![CDATA[Alex8674]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=3411</uri>
			</author>
			<updated>2025-03-23T10:59:05Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?id=695&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[M62446]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?id=675&amp;action=new" />
			<summary type="html"><![CDATA[<p>Пожалуйста создайте скетч</p>]]></summary>
			<author>
				<name><![CDATA[shuhrat.ps]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1841</uri>
			</author>
			<updated>2024-10-05T05:47:40Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?id=675&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[pt2322 pt2323]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?id=593&amp;action=new" />
			<summary type="html"><![CDATA[<p>Какие команды надо изменять для lcd 2004 i2c </p><div class="codebox"><pre><code>#define  CH_UP  0x2FDF20D
#define  CH_DW  0x2FDF30D
#define  CH     0x2FDF50D
#define  IN     0x2FDF70D
#define  VOL_UP 0x2FDF40D
#define  VOL_DW 0x2FDF80D


#include &lt;Wire.h&gt;
#include &lt;PT2322.h&gt;
#include &lt;PT2323.h&gt;
#include &lt;LiquidCrystal.h&gt;
#include &lt;EEPROM.h&gt;
#include &lt;Encoder.h&gt;
#include &lt;MsTimer2.h&gt;
#include &lt;boarddefs.h&gt;
#include &lt;IRremote.h&gt;
 PT2322 pt; PT2323 pt0; 
  Encoder myEnc(9, 8);//CLK, DT подключение энкодера
  IRrecv irrecv(13); // указываем вывод модуля IR приемника
   decode_results ir;
 LiquidCrystal lcd(7, 6, 2, 3, 4, 5);// RS,E,D4,D5,D6,D7 подключение LCD
   byte a1[8]={0b00000,0b10101,0b10101,0b10101,0b10101,0b10101,0b10101,0b00000};
   byte a2[8]={0b00000,0b10100,0b10100,0b10100,0b10100,0b10100,0b10100,0b00000};
   byte a3[8]={0b00000,0b10000,0b10000,0b10000,0b10000,0b10000,0b10000,0b00000};
    unsigned long newPosition,time,oldPosition  = -999;
   int menu,menu2,w,vol,vol_d,z,z0,z1,in,bass,bass_d,mid,mid_d,treb,treb_d,attfl,attfl_d,attcn,attcn_d,attsub,attsub_d,ddd,tembro,x,attfr,attfr_d,atttl,atttl_d,atttr,atttr_d,mute;
   int g1,g2,inn;
   
void setup() {
  Wire.begin();Serial.begin(9600);irrecv.enableIRIn(); // запускаем модуль IR
  lcd.begin(16, 2);lcd.createChar(0,a1);lcd.createChar(1,a2);lcd.createChar(2,a3);
  pinMode(A0,INPUT); // menu кнопка энкодера 
  pinMode(12,INPUT); // MUTE
  pinMode(11,INPUT); // IN
  MsTimer2::set(2, to_Timer);MsTimer2::start();
   vol = EEPROM.read(0)-79;in = EEPROM.read(1);bass = EEPROM.read(2)-7;mid = EEPROM.read(3)-7;treb = EEPROM.read(4)-7;
  attfl = EEPROM.read(5)-14;attcn = EEPROM.read(7)-14;attsub = EEPROM.read(8)-14;ddd = EEPROM.read(9);tembro = EEPROM.read(10);
  attfr = EEPROM.read(11)-14;atttl = EEPROM.read(12)-14;atttr = EEPROM.read(13)-14;
  delay(500);
  audio();audio_in();
}
 void to_Timer(){newPosition = myEnc.read()/4;}
 
 void loop(){delay(10);
  if(analogRead(A0)&lt;900){menu++;cl1();myEnc.write(0);time=millis();w=1;if(menu&gt;11){menu=0;}}// меню
  if ( irrecv.decode( &amp;ir )) {Serial.print(&quot;0x&quot;);Serial.println( ir.value,HEX);time=millis();w=1;irrecv.resume();}// IR приемник  
  
   if(ir.value==CH_UP){menu++;g1=0;g2=0;cl1();time=millis();w=1;if(menu&gt;11){menu=0;}}// меню кнопка CH+
   if(ir.value==CH_DW){menu--;g1=0;g2=0;cl1();time=millis();w=1;if(menu&lt;0){menu=11;}}// меню кнопка CH-
   if(ir.value==CH){menu=0;g1=0;g2=0;cl1();time=millis();w=1;}// меню кнопка CH (menu===0)
   if(ir.value==IN){inn=1;g1=0;g2=0;time=millis();w=1;audio();}//  кнопка IN 
 //////////////////////////////////////// Громкость -79...0 дБ //////////////////////////////////////
 if(menu==0){   
     if(ir.value==VOL_UP){vol++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+  0xFFA857
     if(ir.value==0xFFFFFFFF and g1==1){vol++;g2=0;cl();time=millis();w=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){vol--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){vol--;g1=0;cl();time=millis();w=1;audio();}// кнопка &lt;&lt;&lt;&lt;&lt;&lt;
     if(vol&gt;79){vol=79;}if(vol&lt;0){vol=0;}
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    vol=vol+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(vol&gt;79){vol=79;}if(vol&lt;0){vol=0;}audio();}
  lcd.setCursor(0,0);lcd.print(&quot;Volume  &quot;);
  lcd.print(&quot; &quot;);lcd.print(-79+vol);lcd.print(&quot; &quot;);lcd.setCursor(13,0);lcd.print(&quot;dB&quot;);vol_d=vol-32;
   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,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1,1);lcd.print(&quot;    &quot;);}}
   if(z1==3){lcd.setCursor(z0,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0,1);lcd.write((uint8_t)2);}}
 //////////////////////////////////////// Тембр НЧ +-14 дБ //////////////////////////////////////
 if(menu==1){
     if(ir.value==VOL_UP){bass++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){bass++;g2=0;cl();time=millis();w=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){bass--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){bass--;g1=0;cl();time=millis();w=1;audio();}// кнопка &lt;&lt;&lt;&lt;&lt;&lt;
   if(bass&lt;-7){bass=-7;}if(bass&gt;7){bass=7;}
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    bass=bass+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(bass&lt;-7){bass=-7;}if(bass&gt;7){bass=7;}audio();}
  lcd.setCursor(0,0);lcd.print(&quot;Bass    &quot;);
  lcd.print(&quot; &quot;);lcd.print(bass*2);lcd.print(&quot; &quot;);lcd.setCursor(13,0);lcd.print(&quot;dB&quot;);bass_d=(bass+7)*2;
   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+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(&quot;    &quot;);}}
   if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}   
 //////////////////////////////////////// Тембр CЧ +-14 дБ //////////////////////////////////////
 if(menu==2){
     if(ir.value==VOL_UP){mid++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){mid++;g2=0;cl();time=millis();w=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){mid--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){mid--;g1=0;cl();time=millis();w=1;audio();}// кнопка &lt;&lt;&lt;&lt;&lt;&lt;
   if(mid&lt;-7){mid=-7;}if(mid&gt;7){mid=7;}
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    mid=mid+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(mid&lt;-7){mid=-7;}if(mid&gt;7){mid=7;}audio();}
  lcd.setCursor(0,0);lcd.print(&quot;Middle  &quot;);
  lcd.print(&quot; &quot;);lcd.print(mid*2);lcd.print(&quot; &quot;);lcd.setCursor(13,0);lcd.print(&quot;dB&quot;);mid_d=(mid+7)*2;
   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+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(&quot;   &quot;);}}
   if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}} 
 //////////////////////////////////////// Тембр BЧ +-14 дБ //////////////////////////////////////
 if(menu==3){
     if(ir.value==VOL_UP){treb++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){treb++;g2=0;cl();time=millis();w=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){treb--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){treb--;g1=0;cl();time=millis();w=1;audio();}// кнопка &lt;&lt;&lt;&lt;&lt;&lt;
   if(treb&lt;-7){treb=-7;}if(treb&gt;7){treb=7;}
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    treb=treb+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(treb&lt;-7){treb=-7;}if(treb&gt;7){treb=7;}audio();}
  lcd.setCursor(0,0);lcd.print(&quot;Treble  &quot;);
  lcd.print(&quot; &quot;);lcd.print(treb*2);lcd.print(&quot; &quot;);lcd.setCursor(13,0);lcd.print(&quot;dB&quot;);treb_d=(treb+7)*2;
   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+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(&quot;    &quot;);}}
   if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}    
   //////////////////////////////////// rock pop classic //////////////////////      
  if(menu==4){
     if(ir.value==VOL_UP){tembro++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){tembro++;g2=0;cl();time=millis();w=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){tembro--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){tembro--;g1=0;cl();time=millis();w=1;audio();}// кнопка &lt;&lt;&lt;&lt;&lt;&lt;
      if(tembro&gt;4){tembro=0;}if(tembro&lt;0){tembro=4;}
     if (newPosition != oldPosition) {
    oldPosition = newPosition;
    tembro=tembro+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(tembro&gt;4){tembro=0;}if(tembro&lt;0){tembro=4;}}
    lcd.setCursor(0,0);lcd.print(&quot; Preset timbre  &quot;);
    if(tembro==0){lcd.setCursor(0,1);lcd.print(&quot;  manual mode  &quot;);}
    if(tembro==1){lcd.setCursor(0,1);lcd.print(&quot;      ROCK     &quot;);bass=4,mid=-2;treb=5;x=1;}
    if(tembro==2){lcd.setCursor(0,1);lcd.print(&quot;      POP      &quot;);bass=-3,mid=3;treb=-2;x=1;}
    if(tembro==3){lcd.setCursor(0,1);lcd.print(&quot;    CLASSIC    &quot;);bass=0,mid=0;treb=-2;x=1;}
    if(tembro==4){lcd.setCursor(0,1);lcd.print(&quot;    default    &quot;);bass=0,mid=0;treb=0;x=1;}
    if(x==1){audio();x=0;}
  }
   
  /////////////////////// ATT FL ///////////////////
   if(menu==5){
     if(ir.value==VOL_UP){attfl++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){attfl++;g2=0;cl();time=millis();w=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){attfl--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){attfl--;g1=0;cl();time=millis();w=1;audio();}// кнопка &lt;&lt;&lt;&lt;&lt;&lt;
   if(attfl&lt;-14){attfl=-14;}if(attfl&gt;0){attfl=0;}
     
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    attfl=attfl+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(attfl&lt;-14){attfl=-14;}if(attfl&gt;0){attfl=0;}audio();}
  lcd.setCursor(0,0);lcd.print(&quot;ATT FL   &quot;);
  lcd.print(&quot; &quot;);lcd.print(attfl);lcd.print(&quot; &quot;);lcd.setCursor(13,0);lcd.print(&quot;dB&quot;);attfl_d=(attfl+14)*2;
   for(z=0,z0=0,z1=0;z&lt;=attfl_d;z++,z1++){if(z1&gt;2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(&quot;    &quot;);}}
   if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}  
  /////////////////////// ATT FR ///////////////////
   if(menu==6){
     if(ir.value==VOL_UP){attfr++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){attfr++;g2=0;cl();time=millis();w=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){attfr--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){attfr--;g1=0;cl();time=millis();w=1;audio();}// кнопка &lt;&lt;&lt;&lt;&lt;&lt;
   if(attfr&lt;-14){attfr=-14;}if(attfr&gt;0){attfr=0;}
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    attfr=attfr+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(attfr&lt;-14){attfr=-14;}if(attfr&gt;0){attfr=0;}audio();}
  lcd.setCursor(0,0);lcd.print(&quot;ATT FR   &quot;);
  lcd.print(&quot; &quot;);lcd.print(attfr);lcd.print(&quot; &quot;);lcd.setCursor(13,0);lcd.print(&quot;dB&quot;);attfr_d=(attfr+14)*2;
   for(z=0,z0=0,z1=0;z&lt;=attfr_d;z++,z1++){if(z1&gt;2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(&quot;    &quot;);}}
   if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}  
  /////////////////////// ATT TL ///////////////////
  if(menu==7){
     if(ir.value==VOL_UP){atttl++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){atttl++;g2=0;cl();time=millis();w=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){atttl--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){atttl--;g1=0;cl();time=millis();w=1;audio();}// кнопка &lt;&lt;&lt;&lt;&lt;&lt;
   if(atttl&lt;-14){atttl=-14;}if(atttl&gt;0){atttl=0;}
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    atttl=atttl+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(atttl&lt;-14){atttl=-14;}if(atttl&gt;0){atttl=0;}audio();}
  lcd.setCursor(0,0);lcd.print(&quot;ATT TL   &quot;);
  lcd.print(&quot; &quot;);lcd.print(atttl);lcd.print(&quot; &quot;);lcd.setCursor(13,0);lcd.print(&quot;dB&quot;);atttl_d=(atttl+14)*2;
   for(z=0,z0=0,z1=0;z&lt;=atttl_d;z++,z1++){if(z1&gt;2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(&quot;    &quot;);}}
   if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}} 
 /////////////////////// ATT TR ///////////////////
  if(menu==8){
     if(ir.value==VOL_UP){atttr++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){atttr++;g2=0;cl();time=millis();w=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){atttr--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){atttr--;g1=0;cl();time=millis();w=1;audio();}// кнопка &lt;&lt;&lt;&lt;&lt;&lt;
   if(atttr&lt;-14){atttr=-14;}if(atttr&gt;0){atttr=0;}
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    atttr=atttr+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(atttr&lt;-14){atttr=-14;}if(atttr&gt;0){atttr=0;}audio();}
  lcd.setCursor(0,0);lcd.print(&quot;ATT TR   &quot;);
  lcd.print(&quot; &quot;);lcd.print(atttr);lcd.print(&quot; &quot;);lcd.setCursor(13,0);lcd.print(&quot;dB&quot;);atttr_d=(atttr+14)*2;
   for(z=0,z0=0,z1=0;z&lt;=atttr_d;z++,z1++){if(z1&gt;2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(&quot;    &quot;);}}
   if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}} 
 /////////////////////// ATT CN ///////////////////
    if(menu==9){
     if(ir.value==VOL_UP){attcn++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){attcn++;g2=0;cl();time=millis();w=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){attcn--;g1=0;g2=1;cl();time=millis();w=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){attcn--;g1=0;cl();time=millis();w=1;audio();}// кнопка &lt;&lt;&lt;&lt;&lt;&lt;
      if(attcn&lt;-14){attcn=-14;}if(attcn&gt;0){attcn=0;}
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    attcn=attcn+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(attcn&lt;-14){attcn=-14;}if(attcn&gt;0){attcn=0;}audio();}
  lcd.setCursor(0,0);lcd.print(&quot;ATT CN   &quot;);
  lcd.print(&quot; &quot;);lcd.print(attcn);lcd.print(&quot; &quot;);lcd.setCursor(13,0);lcd.print(&quot;dB&quot;);attcn_d=(attcn+14)*2;
   for(z=0,z0=0,z1=0;z&lt;=attcn_d;z++,z1++){if(z1&gt;2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(&quot;    &quot;);}}
   if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}  
  /////////////////////// ATT SUB ///////////////////
     if(menu==10){
     if(ir.value==VOL_UP){attsub++;g1=1;g2=0;cl();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){attsub++;g2=0;cl();time=millis();w=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){attsub--;g1=0;g2=1;cl();audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){attsub--;g1=0;cl();time=millis();w=1;audio();}// кнопка &lt;&lt;&lt;&lt;&lt;&lt;
       if(attsub&lt;-14){attsub=-14;}if(attsub&gt;0){attsub=0;time=millis();}
    if (newPosition != oldPosition) {
    oldPosition = newPosition;
    attsub=attsub+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(attsub&lt;-14){attsub=-14;}if(attsub&gt;0){attsub=0;}audio();}
  lcd.setCursor(0,0);lcd.print(&quot;ATT SUB  &quot;);
  lcd.print(&quot; &quot;);lcd.print(attsub);lcd.print(&quot; &quot;);lcd.setCursor(13,0);lcd.print(&quot;dB&quot;);attsub_d=(attsub+14)*2;
   for(z=0,z0=0,z1=0;z&lt;=attsub_d;z++,z1++){if(z1&gt;2){z1=0;z0++;}
   if(z1==1){lcd.setCursor(z0+3,1);lcd.write((uint8_t)0);lcd.setCursor(z0+1+3,1);lcd.print(&quot;    &quot;);}}
   if(z1==3){lcd.setCursor(z0+3,1);lcd.write((uint8_t)1);}
   if(z1==2){lcd.setCursor(z0+3,1);lcd.write((uint8_t)2);}}  
   
  //////////////////////////// 3d ///////////////////////////////////////////////
 if(menu==11){
     if(ir.value==VOL_UP){ddd++;g1=1;g2=0;cl1();time=millis();w=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){ddd++;g2=0;cl1();time=millis();w=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){ddd--;g1=0;g2=1;cl1();audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){ddd--;g1=0;cl1();time=millis();w=1;audio();}// кнопка &lt;&lt;&lt;&lt;&lt;&lt;
   if(ddd&lt;0){ddd=1;}if(ddd&gt;1){ddd=0;}
   if (newPosition != oldPosition) {
    oldPosition = newPosition;
    ddd=ddd+newPosition;myEnc.write(0);newPosition=0;time=millis();w=1;if(ddd&lt;0){ddd=1;}if(ddd&gt;1){ddd=0;}audio();}
   lcd.setCursor(0,0); if(ddd==0){lcd.print(&quot;     3D  ON  &quot;);}else{lcd.print(&quot;     3D  OFF  &quot;);} }  
 //////////// mute ////////////////////////
  if(mute==1&amp;&amp;(digitalRead(12)==HIGH)){mute=0;menu=0;audio();cl1();}  
  if(digitalRead(12)==HIGH){mute=1;menu=100;audio();cl1();}
  if(mute==1){lcd.setCursor(0,0);lcd.print(&quot;      MUTE      &quot;);delay(300);}
   
   ////////////////////////////////////////////////////////////////////////////////
  if(digitalRead(11)==HIGH||inn==1){in++;if(in&gt;4){in=0;}audio_in();cl1();lcd.setCursor(0,0);lcd.print(&quot;    INPUT  &quot;);lcd.print(in+1);delay(2000);time=millis();w=1;inn=0;}// in
   
   if(millis()-time&gt;10000&amp;&amp; w==1&amp;&amp;mute==0){
     EEPROM.update(0,vol+79);EEPROM.update(1,in);EEPROM.update(2,bass+7);EEPROM.update(3,mid+7);EEPROM.update(4,treb+7);
     EEPROM.update(5,attfl+14);EEPROM.update(7,attcn+14);EEPROM.update(8,attsub+14);EEPROM.update(9,ddd);EEPROM.update(10,tembro);
     EEPROM.update(11,attfr+14);EEPROM.update(12,atttl+14);EEPROM.update(13,atttr+14);
     menu=0;w=0;cl();}
 
   
 }//loop
 
 void cl(){ir.value=0;delay(100);}
 void cl1(){ir.value=0;delay(300);lcd.clear();}
 void audio_in(){
  pt0.setInput(in); 
  pt0.setMute(0,0,0,0,0,0,0); 
  pt0.setFeature(1,1); 
}
 void audio(){
  pt.setFront_lk_att(abs(attfl));// att front L
  pt.setFront_rk_att(abs(attfr));// att front R
  pt.setCenter_att(abs(attcn));  // att center
  pt.setRear_lk_att(abs(atttl)); // att rear L
  pt.setRear_rk_att(abs(atttr)); // att rear R
  pt.setSub_att(abs(attsub));     // att sub
  pt.setFunc(mute,ddd,0); // mute,3d,тембр on/off
  pt.setBass(bass);            // BASS    -14...0...14 dB (int -7...0...7)
  pt.setMiddle(mid);          // MIDDLE  -14...0...14 dB (int -7...0...7)
  pt.setTreble(treb);          // TREBLE  -14...0...14 dB (int -7...0...7)
  pt.setVol(abs(vol)); // -79...0
}</code></pre></div>]]></summary>
			<author>
				<name><![CDATA[shuhrat.ps]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1841</uri>
			</author>
			<updated>2023-11-22T01:42:35Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?id=593&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Регулятор громкости и тембра на LC75421M + 0.96′ I2C 128X64 OLED (Ardu]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?id=587&amp;action=new" />
			<summary type="html"><![CDATA[<p>При компиляции скетча выдаёт ошибку (Скетч использует 24824 байт (80%) памяти устройства. Всего доступно 30720 байт.<br />Глобальные переменные используют 1710 байт (83%) динамической памяти, оставляя 338 байт для локальных переменных. Максимум: 2048 байт.<br />Недостаточно памяти, программа может работать нестабильно.)</p>]]></summary>
			<author>
				<name><![CDATA[senior.vovchenko]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2211</uri>
			</author>
			<updated>2023-10-25T15:51:56Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?id=587&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Расширение функционала TDA7419]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?id=554&amp;action=new" />
			<summary type="html"><![CDATA[<p>Возможно ли добавить&nbsp; Q фактор для регулировки добротности фильтра сч и нч, то есть добавить дополнительных два пункта во втором меню. </p><p>#include &lt;Wire.h&gt; <br />#include &lt;TDA7419.h&gt;<br />#include &lt;EEPROM.h&gt;//#include &lt;EEPROMex.h&gt;<br />#include &lt;LiquidCrystal.h&gt;<br />#include &lt;Encoder.h&gt;<br />#include &lt;MsTimer2.h&gt;<br />Encoder myEnc(9, 8);//CLK, DT<br />TDA7419 tda; LiquidCrystal lcd(7, 6, 2, 3, 4, 5);// RS,E,D4,D5,D6,D7<br />&nbsp; int menu,vol,bas,w,w1,vol_d,bass_d,treb,treble_d,middle,middle_d,z,in,gain0,gain1,gain2,gain3,gain_d,set;<br />&nbsp; int lon, lon_f, lon_d,out,vol_out,rf,lf,rt,lt,sab,treb_c,mid_c,bas_c,sab_f,mute=1,vol_ram;<br />&nbsp; unsigned long time, oldPosition&nbsp; = -999,time1;<br />&nbsp; byte a1[8]={0b00000,0b11011,0b11011,0b11011,0b11011,0b11011,0b11011,0b00000};<br />&nbsp; byte a2[8]={0b00000,0b11000,0b11000,0b11000,0b11000,0b11000,0b11000,0b00000};</p><p>void setup(){<br /> lcd.begin(16, 2);lcd.createChar(0,a1); lcd.createChar(1,a2);Wire.begin();Serial.begin(9600);<br />&nbsp; pinMode(13,INPUT);// set<br />&nbsp; pinMode(12,INPUT);// меню<br />&nbsp; pinMode(11,INPUT);// плюс<br />&nbsp; pinMode(10,INPUT);// минус<br />&nbsp; pinMode(A0,INPUT);// КНОПКА ЭНКОДЕРА<br />&nbsp; &nbsp;vol = EEPROM.read(0);treb = EEPROM.read(1)-15;middle = EEPROM.read(3)-15;bas = EEPROM.read(3)-15;<br />&nbsp; &nbsp;in = EEPROM.read(4);gain1 = EEPROM.read(5);gain2 = EEPROM.read(6);gain3 = EEPROM.read(7);<br />&nbsp; &nbsp;lon = EEPROM.read(8);lon_f = EEPROM.read(9);rf = EEPROM.read(10);lf = EEPROM.read(11);<br />&nbsp; &nbsp;rt = EEPROM.read(12);lt = EEPROM.read(13);sab = EEPROM.read(14);treb_c = EEPROM.read(15);<br />&nbsp; &nbsp;mid_c = EEPROM.read(16);bas_c = EEPROM.read(17);sab_f = EEPROM.read(18);<br />&nbsp; &nbsp; MsTimer2::set(1, to_Timer);MsTimer2::start();<br />&nbsp; &nbsp;audio();<br />}<br />long newPosition;</p><p>void to_Timer(){ //функция таймера<br /> newPosition = myEnc.read()/4;</p><p>}<br />void loop(){<br />&nbsp; if((analogRead(A0)&lt;900||digitalRead(12)==HIGH)&amp;&amp;menu&lt;4){menu++;cl();myEnc.write(0);time=millis();w1=1;if(menu&gt;3){menu=0;}}// меню<br />&nbsp; if(digitalRead(12)==HIGH&amp;&amp;menu&gt;=4){menu++;cl();myEnc.write(0);time=millis();w1=1;if(menu&gt;10){menu=0;}}// меню 2<br />&nbsp; if(digitalRead(12)==HIGH&amp;&amp;digitalRead(13)==HIGH){menu=4;cl();}<br />&nbsp; &nbsp;if(digitalRead(10)==HIGH&amp;&amp;digitalRead(11)==HIGH){mute++;w=1;if(mute&gt;1){mute=0;}}<br />//////////////////////////////////////// Volume -80 ... 0 дБ //////////////////////////////////////<br /> if(menu==0){<br />&nbsp; &nbsp; if (newPosition != oldPosition) {<br />&nbsp; &nbsp; oldPosition = newPosition;<br />&nbsp; &nbsp; vol=vol+newPosition;myEnc.write(0);newPosition=0;audio();lcd.clear();time=millis();w1=1;if(vol&gt;80){vol=80;}if(vol&lt;0){vol=0;}}</p><p>&nbsp; &nbsp;if(digitalRead(11)==HIGH){vol++;w=1;if(vol&gt;80){vol=80;}}// 80 максимальная громкость&nbsp; <br />&nbsp; &nbsp;if(digitalRead(10)==HIGH){vol--;w=1;if(vol&lt;0){vol=0;}}// 0 минимум громкости <br />&nbsp; &nbsp;if(w==1){audio();cl();time=millis();w=0;w1=1;}<br />&nbsp; lcd.setCursor(0,0);if(mute==1){lcd.print(&quot;Volume&nbsp; &nbsp;&quot;);}else{lcd.print(&quot;MUTE&nbsp; &nbsp; &nbsp;&quot;);}<br />&nbsp; lcd.print(-80+vol);lcd.setCursor(13,0);lcd.print(&quot;dB&quot;);vol_d=vol/2-17;<br />&nbsp; &nbsp;if(vol_d&gt;=0){for(z=0;z&lt;=vol_d;z++){lcd.setCursor(z/2,1);lcd.write((uint8_t)0);}}<br />&nbsp; &nbsp;if((vol_d)%2==0){lcd.setCursor(z/2,1);lcd.write((uint8_t)1);}<br />&nbsp; lcd.setCursor(13,1);lcd.print(vol);}<br /> /////////////////////////////////////////////////////////////////////////////////////<br />&nbsp; /////////////////////// индикация тембр ВЧ + управление кнопками -15...15 дБ ///////////////////<br />&nbsp; &nbsp;if(menu==1){<br />&nbsp; &nbsp; &nbsp;if (newPosition != oldPosition) {<br />&nbsp; &nbsp; oldPosition = newPosition;<br />&nbsp; &nbsp; treb=treb+newPosition;myEnc.write(0);newPosition=0;audio();lcd.clear();time=millis();w1=1;if(treb&gt;15){treb=15;}if(treb&lt;-15){treb=-15;}} </p><p>&nbsp; &nbsp;if(digitalRead(11)==HIGH){treb++;w=1;if(treb&gt;15){treb=15;}} <br />&nbsp; &nbsp;if(digitalRead(10)==HIGH){treb--;w=1;if(treb&lt;-15){treb=-15;}}<br />&nbsp; &nbsp;if(w==1){audio();cl();time=millis();w1=1;w=0;}<br />&nbsp; lcd.setCursor(0,0);lcd.print(&quot;Treble&nbsp; &nbsp;&quot;);<br />&nbsp; lcd.print(treb);lcd.setCursor(13,0);lcd.print(&quot;dB&quot;);treble_d=treb+15;<br />&nbsp; &nbsp;if(treble_d&gt;=0){for(z=0;z&lt;=treble_d;z++){lcd.setCursor(z/2,1);lcd.write((uint8_t)0);}}<br />&nbsp; &nbsp;if((treble_d)%2==0){lcd.setCursor(z/2,1);lcd.write((uint8_t)1);}}<br />/////////////////////////////////////////////////////////////////////////////////////<br /> /////////////////////// индикация тембр CЧ + управление кнопками -15...15 дБ ///////////////////<br />&nbsp; &nbsp;if(menu==2){<br />&nbsp; &nbsp; &nbsp; if (newPosition != oldPosition) {<br />&nbsp; &nbsp; oldPosition = newPosition;<br />&nbsp; &nbsp; middle=middle+newPosition;myEnc.write(0);newPosition=0;audio();lcd.clear();time=millis();w1=1;if(middle&gt;15){middle=15;}if(middle&lt;-15){middle=-15;}} </p><p>&nbsp; &nbsp;if(digitalRead(11)==HIGH){middle++;w=1;if(middle&gt;15){middle=15;}} <br />&nbsp; &nbsp;if(digitalRead(10)==HIGH){middle--;w=1;if(middle&lt;-15){middle=-15;}}<br />&nbsp; &nbsp;if(w==1){audio();cl();time=millis();w1=1;w=0;}<br />&nbsp; lcd.setCursor(0,0);lcd.print(&quot;Middle&nbsp; &nbsp;&quot;);<br />&nbsp; lcd.print(middle);lcd.setCursor(13,0);lcd.print(&quot;dB&quot;);middle_d=middle+15;<br />&nbsp; &nbsp;if(middle_d&gt;=0){for(z=0;z&lt;=middle_d;z++){lcd.setCursor(z/2,1);lcd.write((uint8_t)0);}}<br />&nbsp; &nbsp;if((middle_d)%2==0){lcd.setCursor(z/2,1);lcd.write((uint8_t)1);}}<br />/////////////////////////////////////////////////////////////////////////////////////<br /> /////////////////////// индикация тембр НЧ + управление кнопками -15...15 дБ ///////////////////<br />&nbsp; &nbsp;if(menu==3){<br />&nbsp; &nbsp; if (newPosition != oldPosition) {<br />&nbsp; &nbsp; oldPosition = newPosition;<br />&nbsp; &nbsp; bas=bas+newPosition;myEnc.write(0);newPosition=0;audio();lcd.clear();time=millis();w1=1;if(bas&gt;15){bas=15;}if(bas&lt;-15){bas=-15;}}&nbsp; &nbsp;</p><p>&nbsp; &nbsp;if(digitalRead(11)==HIGH){bas++;w=1;if(bas&gt;15){bas=15;}} <br />&nbsp; &nbsp;if(digitalRead(10)==HIGH){bas--;w=1;if(bas&lt;-15){bas=-15;}}<br />&nbsp; &nbsp;if(w==1){audio();cl();time=millis();w1=1;w=0;}<br />&nbsp; lcd.setCursor(0,0);lcd.print(&quot;Bass&nbsp; &nbsp; &nbsp; &quot;);<br />&nbsp; lcd.print(bas);lcd.setCursor(13,0);lcd.print(&quot;dB&quot;);bass_d=bas+15;<br />&nbsp; &nbsp;if(bass_d&gt;=0){for(z=0;z&lt;=bass_d;z++){lcd.setCursor(z/2,1);lcd.write((uint8_t)0);}}<br />&nbsp; &nbsp;if((bass_d)%2==0){lcd.setCursor(z/2,1);lcd.write((uint8_t)1);}}<br /> ////////////////////////////////////////////////////////////////////////////////////<br /> ///////////////////////////// вход 1...3 + предусилитель 0...15 дБ //////////////////////////////<br />&nbsp; &nbsp;if(menu==4){&nbsp; //рег. предусилителя - нажать и удерживать кнопку set, рег. кнопки плюс и минус<br />&nbsp; &nbsp;if(digitalRead(11)==HIGH&amp;&amp;digitalRead(13)==LOW){in++;w=1;if(in&gt;3){in=3;}} <br />&nbsp; &nbsp;if(digitalRead(10)==HIGH&amp;&amp;digitalRead(13)==LOW){in--;w=1;if(in&lt;1){in=1;}}<br />&nbsp; &nbsp;if(in==1){gain0=gain1;}if(in==2){gain0=gain2;}if(in==3){gain0=gain3;}<br />&nbsp; &nbsp;if(digitalRead(13)==HIGH&amp;&amp;digitalRead(11)==HIGH){gain0++;w=1;if(gain0&gt;15){gain0=15;}}<br />&nbsp; &nbsp;if(digitalRead(13)==HIGH&amp;&amp;digitalRead(10)==HIGH){gain0--;w=1;if(gain0&lt;0){gain0=0;}}<br />&nbsp; &nbsp;if(w==1){audio();cl();time=millis();w1=1;w=0;}<br />&nbsp; lcd.setCursor(0,0);lcd.print(&quot;Input: &quot;);lcd.print(in);gain_d=gain0;<br />&nbsp; &nbsp;if(gain_d&gt;=0){for(z=0;z&lt;=gain_d;z++){lcd.setCursor(z/2,1);lcd.write((uint8_t)0);}}<br />&nbsp; &nbsp;if((gain_d)%2==0){lcd.setCursor(z/2,1);lcd.write((uint8_t)1);}<br />&nbsp; &nbsp;if(in==1){gain1=gain0;}if(in==2){gain2=gain0;}if(in==3){gain3=gain0;}<br />&nbsp; &nbsp;lcd.setCursor(11,1);lcd.print(gain0);lcd.print(&quot; dB&nbsp; &quot;);} <br />/////////////////////////////////////////////////////////////////////////////////////////////<br />////////////////////////////// loudness ////////////////////////////////////////////////////<br /> if(menu==5){&nbsp; <br />&nbsp; &nbsp;if(digitalRead(11)==HIGH&amp;&amp;digitalRead(13)==LOW){lon_f++;w=1;if(lon_f&gt;3){lon_f=3;}} <br />&nbsp; &nbsp;if(digitalRead(10)==HIGH&amp;&amp;digitalRead(13)==LOW){lon_f--;w=1;if(lon_f&lt;0){lon_f=0;}}<br />&nbsp; &nbsp;if(digitalRead(13)==HIGH&amp;&amp;digitalRead(11)==HIGH){lon++;w=1;if(lon&gt;15){lon=15;}}<br />&nbsp; &nbsp;if(digitalRead(13)==HIGH&amp;&amp;digitalRead(10)==HIGH){lon--;w=1;if(lon&lt;0){lon=0;}}<br />&nbsp; &nbsp;if(w==1){audio();cl();time=millis();w1=1;w=0;}lon_d=lon;<br />&nbsp; lcd.setCursor(0,0);lcd.print(&quot;Loudness: &quot;);<br />&nbsp; &nbsp;switch(lon_f){case 0: lcd.print(&quot;FLAT&quot;);break;case 1: lcd.print(&quot;400Hz&quot;);break;<br />&nbsp; &nbsp;case 2: lcd.print(&quot;800Hz&quot;);break;case 3: lcd.print(&quot;2400Hz&quot;);break;} <br />&nbsp; &nbsp;lcd.setCursor(0,1);<br />&nbsp; &nbsp; if(lon_d&gt;=0){for(z=0;z&lt;=lon_d;z++){lcd.setCursor(z/2,1);lcd.write((uint8_t)0);}}<br />&nbsp; &nbsp;if((lon_d)%2==0){lcd.setCursor(z/2,1);lcd.write((uint8_t)1);}<br />&nbsp; &nbsp;lcd.setCursor(9,1);lcd.print(&quot;-&quot;);lcd.print(lon);lcd.print(&quot; dB&nbsp; &quot;);} <br />////////////////////////////////////////// out /////////////////////////////////////////////////<br /> if(menu==6){&nbsp; <br />&nbsp; &nbsp;if(digitalRead(11)==HIGH&amp;&amp;digitalRead(13)==LOW){out++;w=1;if(out&gt;4){out=4;}} <br />&nbsp; &nbsp;if(digitalRead(10)==HIGH&amp;&amp;digitalRead(13)==LOW){out--;w=1;if(out&lt;0){out=0;}}<br />&nbsp; &nbsp; switch(out){case 0:vol_out=rf;break;case 1:vol_out=lf;break;case 2:vol_out=rt;break;<br />&nbsp; &nbsp;case 3:vol_out=lt;break;case 4:vol_out=sab;break;}<br />&nbsp; &nbsp;if(digitalRead(13)==HIGH&amp;&amp;digitalRead(11)==HIGH){vol_out++;w=1;if(vol_out&gt;15){vol_out=15;}}<br />&nbsp; &nbsp;if(digitalRead(13)==HIGH&amp;&amp;digitalRead(10)==HIGH){vol_out--;w=1;if(vol_out&lt;0){vol_out=0;}}<br />&nbsp; &nbsp;lcd.setCursor(0,0);lcd.print(&quot;Volume OUT&quot;);lcd.setCursor(0,1);<br />&nbsp; &nbsp; switch(out){<br />&nbsp; &nbsp;case 0:rf=vol_out;lcd.print(&quot;RF:&nbsp; +&quot;);lcd.print(rf);break;<br />&nbsp; &nbsp;case 1:lf=vol_out;lcd.print(&quot;LF:&nbsp; +&quot;);lcd.print(lf);break;<br />&nbsp; &nbsp;case 2:rt=vol_out;lcd.print(&quot;RT:&nbsp; +&quot;);lcd.print(rt);break;<br />&nbsp; &nbsp;case 3:lt=vol_out;lcd.print(&quot;LT:&nbsp; +&quot;);lcd.print(lt);break;<br />&nbsp; &nbsp;case 4:sab=vol_out;lcd.print(&quot;SUBW:&nbsp; +&quot;);lcd.print(sab);break;}<br />&nbsp; lcd.print(&quot; dB&nbsp; &nbsp; &nbsp; &quot;);if(w==1){audio();cl();time=millis();w1=1;w=0;}}<br />&nbsp; &nbsp;/////////////////////////////////treble center//////////////////////////////////////////////////<br /> if(menu==7){ <br /> if(digitalRead(11)==HIGH){treb_c++;w=1;if(treb_c&gt;3){treb_c=3;}} <br />&nbsp; &nbsp;if(digitalRead(10)==HIGH){treb_c--;w=1;if(treb_c&lt;0){treb_c=0;}}<br />&nbsp; &nbsp;if(w==1){audio();cl();time=millis();w1=1;w=0;}<br />&nbsp; lcd.setCursor(0,0);lcd.print(&quot;Treble Center &quot;);<br />&nbsp; lcd.setCursor(1,6);switch(treb_c){<br />&nbsp; case 0: lcd.print(&quot;10.0 kHz&quot;);break;case 1: lcd.print(&quot;12.5 kHz&quot;);break;<br />&nbsp; case 2: lcd.print(&quot;15.0 kHz&quot;);break;case 3: lcd.print(&quot;17.5 kHz&quot;);break;}}&nbsp; <br />&nbsp; &nbsp;/////////////////////////////////middle center//////////////////////////////////////////////////<br /> if(menu==8){ <br /> if(digitalRead(11)==HIGH){mid_c++;w=1;if(mid_c&gt;3){mid_c=3;}} <br />&nbsp; &nbsp;if(digitalRead(10)==HIGH){mid_c--;w=1;if(mid_c&lt;0){mid_c=0;}}<br />&nbsp; &nbsp;if(w==1){audio();cl();time=millis();w1=1;w=0;}<br />&nbsp; lcd.setCursor(0,0);lcd.print(&quot;Middle Center &quot;);<br />&nbsp; lcd.setCursor(1,6);switch(mid_c){<br />&nbsp; case 0: lcd.print(&quot;0.5 kHz&quot;);break;case 1: lcd.print(&quot;1.0 kHz&quot;);break;<br />&nbsp; case 2: lcd.print(&quot;1.5 kHz&quot;);break;case 3: lcd.print(&quot;2.5 kHz&quot;);break;}}<br />////////////////////////////////////bass center/////////////////////////////////////////// <br /> if(menu==9){ <br /> if(digitalRead(11)==HIGH){bas_c++;w=1;if(bas_c&gt;3){bas_c=3;}} <br />&nbsp; &nbsp;if(digitalRead(10)==HIGH){bas_c--;w=1;if(bas_c&lt;0){bas_c=0;}}<br />&nbsp; &nbsp;if(w==1){audio();cl();time=millis();w1=1;w=0;}<br />&nbsp; lcd.setCursor(0,0);lcd.print(&quot;Bass Center &quot;);<br />&nbsp; lcd.setCursor(1,6);switch(bas_c){<br />&nbsp; case 0: lcd.print(&quot;60 Hz&quot;);break;case 1: lcd.print(&quot;80 Hz&quot;);break;<br />&nbsp; case 2: lcd.print(&quot;100 Hz&quot;);break;case 3: lcd.print(&quot;200 Hz&quot;);break;}}<br />//////////////////////////////////////subw//////////////////////////////////////////////// <br /> if(menu==10){ <br /> if(digitalRead(11)==HIGH){sab_f++;w=1;if(sab_f&gt;3){sab_f=3;}} <br />&nbsp; &nbsp;if(digitalRead(10)==HIGH){sab_f--;w=1;if(sab_f&lt;0){sab_f=0;}}<br />&nbsp; &nbsp;if(w==1){audio();cl();time=millis();w1=1;w=0;}<br />&nbsp; lcd.setCursor(0,0);lcd.print(&quot;Subwoofer Freq.&quot;);<br />&nbsp; lcd.setCursor(1,6);switch(sab_f){<br />&nbsp; case 0: lcd.print(&quot;FLAT&quot;);break;case 1: lcd.print(&quot;80 Hz&quot;);break;<br />&nbsp; case 2: lcd.print(&quot;120 Hz&quot;);break;case 3: lcd.print(&quot;160 Hz&quot;);break;}}<br />//////////////////////////////////////////////////////////////////////////////////////</p><p>Serial.println(time);</p><p> if(millis()-time&gt;10000 &amp;&amp; w1==1){<br />&nbsp; &nbsp; &nbsp;EEPROM.update(0,vol);EEPROM.update(1,treb+15);EEPROM.update(2,middle+15);EEPROM.update(3,bas+15);<br />&nbsp; &nbsp; &nbsp;EEPROM.update(4,in);EEPROM.update(5,gain1);EEPROM.update(6,gain2);EEPROM.update(7,gain3);<br />&nbsp; &nbsp; &nbsp;EEPROM.update(8,lon);EEPROM.update(9,lon_f);<br />&nbsp; &nbsp; &nbsp;EEPROM.update(10,rf);EEPROM.update(11,lf);EEPROM.update(12,rt);EEPROM.update(13,lt);<br />&nbsp; &nbsp; &nbsp;EEPROM.update(14,sab);EEPROM.update(15,treb_c);EEPROM.update(16,mid_c);EEPROM.update(17,bas_c);<br />&nbsp; &nbsp; &nbsp;EEPROM.update(18,sab_f);<br />&nbsp; &nbsp; &nbsp;menu=0;w1=0; myEnc.write(0);cl();}<br />}//loop<br /> void cl(){delay(300);lcd.clear();}<br /> void audio(){<br />tda.setInput(in,gain0,0);&nbsp; &nbsp; //вх1=1, вх2=2, вх3=3<br />tda.setInput2(0,0,0);&nbsp; &nbsp;// не используется<br />tda.setAtt_loudness(lon,lon_f,0,0);<br />tda.setSoft(mute,0,0,0,0);//mute off (не менять)<br />tda.setVolume(vol-79,0);&nbsp; &nbsp;// общая громкость от 0 до 79 макс<br />tda.setAtt_LF(64+lf,0);&nbsp; &nbsp;// гром. лк фронт<br />tda.setAtt_RF(64+rf,0);&nbsp; &nbsp;// гром. пк фронт<br />tda.setAtt_LT(64+lt,0);&nbsp; &nbsp;// гром. лк тыл<br />tda.setAtt_RT(64+rt,0);&nbsp; &nbsp;// гром. пк тыл<br />tda.setAtt_SUB(64+sab,0);&nbsp; // гром. савбуфер<br />tda.setAtt_Mix(79,0);&nbsp; &nbsp;// не использует<br />tda.setFilter_Treble(treb,treb_c,0); <br />tda.setFilter_Middle(middle,0,0);<br />tda.setFilter_Bass(bas,0,0);<br />tda.setSub_M_B(sab_f,mid_c,bas_c,0,0);<br />tda.setMix_Gain_Eff(1,0,0,0,0); // не используется<br />tda.setSpektor(0,0,1,0,1,0,0);<br />}</p>]]></summary>
			<author>
				<name><![CDATA[alekc7800]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2067</uri>
			</author>
			<updated>2023-04-14T15:12:38Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?id=554&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[LC75412]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?id=539&amp;action=new" />
			<summary type="html"><![CDATA[<div class="codebox"><pre><code>// LC75412
#define CE 3 // pin 24
#define DI 2 // pin 25
#define CL 4 // pin 26
#define MUTE 5

void setup(){
  Serial.begin(9600);
  pinMode(CE,OUTPUT);pinMode(DI,OUTPUT);pinMode(CL,OUTPUT);pinMode(MUTE,OUTPUT);
  digitalWrite(CL,LOW);digitalWrite(CE,LOW);digitalWrite(DI,LOW);
  delay(500);digitalWrite(MUTE,1);
  //      in  gain vol bass treb fader ch  r/f loud zero zero_s
    audio(0,  0,    0,  0,   0,   0,   3,  0,  0,   0,   3);
  }

void loop(){
    
  delay(1000);
  }


void audio(int in, int gain, int vol, int bass, int treb, int fader, int ch, int rf, int loud, int zero, int zero_s){
  digitalWrite(CL,LOW);
  digitalWrite(CE,LOW);
    byte addr = 0x81;                                         
 for(int i = 7; i &gt;= 0; i--){
   digitalWrite(CL,LOW);
   digitalWrite(DI, (addr &gt;&gt; i) &amp; 0x01);Serial.print((addr &gt;&gt; i) &amp; 0x01);
   digitalWrite(CL,HIGH);
   }
   Serial.print(&quot; &quot;); 
   digitalWrite(CL,LOW);
   digitalWrite(CE,HIGH);
   digitalWrite(CL,LOW);

/// input control //////////////////////////////////////
// ch1...ch6 = byte 0...5 --- 0...2 bit
for(int i = 0; i &lt;= 2; i++){
        digitalWrite(CL,LOW);
        switch(i){
         case 0: digitalWrite(DI, (in &amp; 0b001)&gt;&gt;0);Serial.print((in &amp; 0b001)&gt;&gt;0);break;
         case 1: digitalWrite(DI, (in &amp; 0b010)&gt;&gt;1);Serial.print((in &amp; 0b010)&gt;&gt;1);break;
         case 2: digitalWrite(DI, (in &amp; 0b100)&gt;&gt;2);Serial.print((in &amp; 0b100)&gt;&gt;2);break;
        } 
        digitalWrite(CL,HIGH);
        }     
        Serial.print(&quot; &quot;);

/// 3 bit to 0 normal   
        digitalWrite(CL,LOW);
        digitalWrite(DI, 0);Serial.print(0);Serial.print(&quot; &quot;);
        digitalWrite(CL,HIGH); 

/// input gain conrtol /////////////////////////////////
// 0...+18.75 dB = byte 0...15 --- 4...7 bit
    for(int i = 0; i &lt;= 3; i++){
       digitalWrite(CL,LOW);
    switch(i){
       case 0: digitalWrite(DI, (gain &amp; 0b0001)&gt;&gt;0);Serial.print((gain &amp; 0b001)&gt;&gt;0);break;
       case 1: digitalWrite(DI, (gain &amp; 0b0010)&gt;&gt;1);Serial.print((gain &amp; 0b010)&gt;&gt;1);break;
       case 2: digitalWrite(DI, (gain &amp; 0b0100)&gt;&gt;2);Serial.print((gain &amp; 0b100)&gt;&gt;2);break;
       case 3: digitalWrite(DI, (gain &amp; 0b1000)&gt;&gt;3);Serial.print((gain &amp; 0b100)&gt;&gt;3);break;
       } 
       digitalWrite(CL,HIGH);
       }
       Serial.print(&quot; &quot;);
       
/// volume conrtol /////////////////////////////////
// 0...-78 dB = byte 0...78 --- 8...15 bit
    for(int i = 0; i &lt;= 7; i++){
       digitalWrite(CL,LOW);
    switch(i){
       case 0: digitalWrite(DI, (vol &amp; 0b00000001)&gt;&gt;0);Serial.print((vol &amp; 0b00000001)&gt;&gt;0);break;
       case 1: digitalWrite(DI, (vol &amp; 0b00000010)&gt;&gt;1);Serial.print((vol &amp; 0b00000010)&gt;&gt;1);break;
       case 2: digitalWrite(DI, (vol &amp; 0b00000100)&gt;&gt;2);Serial.print((vol &amp; 0b00000100)&gt;&gt;2);break;
       case 3: digitalWrite(DI, (vol &amp; 0b00001000)&gt;&gt;3);Serial.print((vol &amp; 0b00001000)&gt;&gt;3);break;
       case 4: digitalWrite(DI, (vol &amp; 0b00010000)&gt;&gt;4);Serial.print((vol &amp; 0b00010000)&gt;&gt;4);break;
       case 5: digitalWrite(DI, (vol &amp; 0b00100000)&gt;&gt;5);Serial.print((vol &amp; 0b00100000)&gt;&gt;5);break;
       case 6: digitalWrite(DI, (vol &amp; 0b01000000)&gt;&gt;6);Serial.print((vol &amp; 0b01000000)&gt;&gt;6);break;
       case 7: digitalWrite(DI, (vol &amp; 0b10000000)&gt;&gt;7);Serial.print((vol &amp; 0b10000000)&gt;&gt;7);break;
       } 
       digitalWrite(CL,HIGH);
       } 
       Serial.print(&quot; &quot;);
       
/// bass conrtol /////////////////////////////////
// -18...+18 dB = int -18...0...+18 
// 16...19 bit
int bass_d;
switch(bass){
  case  18:bass_d = 0b1100;break;
  case  16:bass_d = 0b0100;break;
  case  14:bass_d = 0b1000;break;
  case  12:bass_d = 0b0110;break;
  case  10:bass_d = 0b1010;break;
  case  8 :bass_d = 0b0010;break;
  case  6 :bass_d = 0b1100;break;
  case  4 :bass_d = 0b0100;break;
  case  2 :bass_d = 0b1000;break;
  case  0 :bass_d = 0b0000;break;
  case  -2:bass_d = 0b1001;break;
  case  -4:bass_d = 0b0101;break;
  case  -6:bass_d = 0b1101;break;
  case  -8:bass_d = 0b0011;break;
  case -10:bass_d = 0b1011;break;
  case -12:bass_d = 0b0111;break;
  case -14:bass_d = 0b1001;break;
  case -16:bass_d = 0b0101;break;
  case -18:bass_d = 0b1101;break;
  }
 for(int i = 3; i &gt;= 0; i--){
   digitalWrite(CL,LOW);
   digitalWrite(DI, (bass_d &gt;&gt; i) &amp; 0x01);Serial.print((bass_d &gt;&gt; i) &amp; 0x01);
   digitalWrite(CL,HIGH);
   } 
   Serial.print(&quot; &quot;);
       
////////////////////////////////////
// 20..23 bit
for(int i = 0; i &lt;= 3; i++){
        digitalWrite(CL,LOW);
        digitalWrite(DI, 0);Serial.print(0);
        digitalWrite(CL,HIGH);
   } 
   Serial.print(&quot; &quot;);
/// treble conrtol /////////////////////////////////
// -18...+18 dB = int -18...0...+18 
// 24...27 bit
int treb_d;
switch(treb){
  case  18:treb_d = 0b1100;break;
  case  16:treb_d = 0b0100;break;
  case  14:treb_d = 0b1000;break;
  case  12:treb_d = 0b0110;break;
  case  10:treb_d = 0b1010;break;
  case  8 :treb_d = 0b0010;break;
  case  6 :treb_d = 0b1100;break;
  case  4 :treb_d = 0b0100;break;
  case  2 :treb_d = 0b1000;break;
  case  0 :treb_d = 0b0000;break;
  case  -2:treb_d = 0b1001;break;
  case  -4:treb_d = 0b0101;break;
  case  -6:treb_d = 0b1101;break;
  case  -8:treb_d = 0b0011;break;
  case -10:treb_d = 0b1011;break;
  case -12:treb_d = 0b0111;break;
  case -14:treb_d = 0b1001;break;
  case -16:treb_d = 0b0101;break;
  case -18:treb_d = 0b1101;break;
  }
 for(int i = 3; i &gt;= 0; i--){
   digitalWrite(CL,LOW);
   digitalWrite(DI, (treb_d &gt;&gt; i) &amp; 0x01);Serial.print((treb_d &gt;&gt; i) &amp; 0x01);
   digitalWrite(CL,HIGH);
   }    
   Serial.print(&quot; &quot;);
       
/// fader volume conrtol /////////////////////////////////
// byte 0...15 --- 28...31 bit
  for(int i = 0; i &lt;= 3; i++){
       digitalWrite(CL,LOW);
    switch(i){
       case 0: digitalWrite(DI, (fader &amp; 0b0001)&gt;&gt;0);Serial.print((fader &amp; 0b0001)&gt;&gt;0);break;
       case 1: digitalWrite(DI, (fader &amp; 0b0010)&gt;&gt;1);Serial.print((fader &amp; 0b0010)&gt;&gt;1);break;
       case 2: digitalWrite(DI, (fader &amp; 0b0100)&gt;&gt;2);Serial.print((fader &amp; 0b0100)&gt;&gt;2);break;
       case 3: digitalWrite(DI, (fader &amp; 0b1000)&gt;&gt;3);Serial.print((fader &amp; 0b1000)&gt;&gt;3);break;
       } 
       digitalWrite(CL,HIGH);
       }  
       Serial.print(&quot; &quot;);
          
/// ch selection conrtol /////////////////////////////////
// byte 0...3
// 32...33 bit
  for(int i = 0; i &lt;= 1; i++){
       digitalWrite(CL,LOW);
    switch(i){
       case 0: digitalWrite(DI, (ch &amp; 0b01)&gt;&gt;0);Serial.print((ch &amp; 0b0001)&gt;&gt;0);break;
       case 1: digitalWrite(DI, (ch &amp; 0b10)&gt;&gt;1);Serial.print((ch &amp; 0b0010)&gt;&gt;1);break;
       } 
       digitalWrite(CL,HIGH);
       }   
       Serial.print(&quot; &quot;);
/// read/front conrtol /////////////////////////////////
// byte 0...1
// 34 bit
        digitalWrite(CL,LOW);
        digitalWrite(DI,rf);Serial.print(rf);
        digitalWrite(CL,HIGH);
        Serial.print(&quot; &quot;);
/// loudness conrtol /////////////////////////////////
// byte 0...1
// 35 bit
        digitalWrite(CL,LOW);
        digitalWrite(DI,loud);Serial.print(loud);
        digitalWrite(CL,HIGH); 
        Serial.print(&quot; &quot;);            
/// zero-cross conrtol /////////////////////////////////
// byte 0...2
// 36...37 bit
  for(int i = 0; i &lt;= 1; i++){
       digitalWrite(CL,LOW);
    switch(i){
       case 0: digitalWrite(DI, (zero &amp; 0b01)&gt;&gt;0);Serial.print((zero &amp; 0b01)&gt;&gt;0);break;
       case 1: digitalWrite(DI, (zero &amp; 0b10)&gt;&gt;1);Serial.print((zero &amp; 0b10)&gt;&gt;1);break;
} 
       digitalWrite(CL,HIGH);
       } 
       Serial.print(&quot; &quot;); 
       
/// zero-cross signal conrtol /////////////////////////////////
// byte 0...2
// 38...39 bit
  for(int i = 0; i &lt;= 1; i++){
       digitalWrite(CL,LOW);
    switch(i){
       case 0: digitalWrite(DI, (zero_s &amp; 0b01)&gt;&gt;0);Serial.print((zero_s &amp; 0b01)&gt;&gt;0);break;
       case 1: digitalWrite(DI, (zero_s &amp; 0b10)&gt;&gt;1);Serial.print((zero_s &amp; 0b10)&gt;&gt;1);break;
       } 
       digitalWrite(CL,HIGH);
       } 
       Serial.print(&quot; &quot;);
       
/// bass conrtol d40 /////////////////////////////////
// 40 bit
switch(bass){
  case  18:bass_d = 1;break;
  case  16:bass_d = 1;break;
  case  14:bass_d = 1;break;
  case  12:bass_d = 0;break;
  case  10:bass_d = 0;break;
  case  8 :bass_d = 0;break;
  case  6 :bass_d = 0;break;
  case  4 :bass_d = 0;break;
  case  2 :bass_d = 0;break;
  case  0 :bass_d = 0;break;
  case  -2:bass_d = 0;break;
  case  -4:bass_d = 0;break;
  case  -6:bass_d = 0;break;
  case  -8:bass_d = 0;break;
  case -10:bass_d = 0;break;
  case -12:bass_d = 0;break;
  case -14:bass_d = 1;break;
  case -16:bass_d = 1;break;
  case -18:bass_d = 1;break;
  }
        digitalWrite(CL,LOW);
        digitalWrite(DI, bass_d);Serial.print(bass_d);
        digitalWrite(CL,HIGH);
        Serial.print(&quot; &quot;);
/// treb conrtol d41 /////////////////////////////////
// 41 bit
switch(treb){
  case  18:treb_d = 1;break;
  case  16:treb_d = 1;break;
  case  14:treb_d = 1;break;
  case  12:treb_d = 0;break;
  case  10:treb_d = 0;break;
  case  8 :treb_d = 0;break;
  case  6 :treb_d = 0;break;
  case  4 :treb_d = 0;break;
  case  2 :treb_d = 0;break;
  case  0 :treb_d = 0;break;
  case  -2:treb_d = 0;break;
  case  -4:treb_d = 0;break;
  case  -6:treb_d = 0;break;
  case  -8:treb_d = 0;break;
  case -10:treb_d = 0;break;
  case -12:treb_d = 0;break;
  case -14:treb_d = 1;break;
  case -16:treb_d = 1;break;
  case -18:treb_d = 1;break;
  }
        digitalWrite(CL,LOW);
        digitalWrite(DI, treb_d);Serial.print(treb_d);
        digitalWrite(CL,HIGH); 
        Serial.print(&quot; &quot;);
/// test mode conrtol /////////////////////////////////
// byte 0...3
// 42...43 bit
int test = 0;
for(int i = 0; i &lt;= 1; i++){
        digitalWrite(CL,LOW);
        digitalWrite(DI, (test &gt;&gt; i) &amp; 0x01);Serial.print(0);
        digitalWrite(CL,HIGH);
   }
//// end byte    
        digitalWrite(CL,LOW);
        delayMicroseconds(1);
        digitalWrite(CE,LOW);   
        delay(1);   
        Serial.println();    
  }  
    </code></pre></div>]]></summary>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2023-02-19T06:14:28Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?id=539&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[M61531FP]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?id=507&amp;action=new" />
			<summary type="html"><![CDATA[<p><span class="attention-yellow"></span> </p><div class="codebox"><pre><code>// M61531FP 
#define DATA     2
#define CLOCK    3
#define LATCH    4


void setup(){ 
  Serial.begin(9600);
  pinMode(DATA,OUTPUT);pinMode(CLOCK,OUTPUT);pinMode(LATCH,OUTPUT);
  digitalWrite(DATA,LOW);digitalWrite(CLOCK,LOW);digitalWrite(LATCH,LOW);

}
 
void loop(){ 
     //   input_sel, input_att, rec_out1, rec_out2, rec_out3, rec_out4, multi_input, lr_vol_in1, input_gain, ins10, all_ch_out_mute, multi_in_mute, lr_vol_in2
  slot0(  0,         0,         0,        0,        0,        0,        0,           0,          0,          0,     0,               0,             0);
     //   l_vol, r_vol, c_vol
  slot1(  0,     0,     0);
     //   sl_vol, sr_vol, sw_vol
  slot2(  0,      0,      0);
     //   bass, treb, tone_in_att, bypass_tone, tone_block, loud, loud_balance, lr_bupass
  slot3(  0,    0,    0,           0,           0,          0,    0,            0);
  delay(1000);
}

void slot0(int input_sel, int input_att, int rec_out1, int rec_out2, int rec_out3, int rec_out4, int multi_input, int lr_vol_in1, int input_gain, int ins10, int all_ch_out_mute, int multi_in_mute, int lr_vol_in2){
     digitalWrite(LATCH,LOW);
   
  for(int i=3;i&gt;=0; i--){
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, (input_sel &gt;&gt; i) &amp; 1);
     digitalWrite(CLOCK,HIGH);
     }
  for(int i=1;i&gt;=0; i--){
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, (input_att &gt;&gt; i) &amp; 1);
     digitalWrite(CLOCK,HIGH);
     }    
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, rec_out1);
     digitalWrite(CLOCK,HIGH);
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, rec_out2);
     digitalWrite(CLOCK,HIGH);        
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, rec_out3);
     digitalWrite(CLOCK,HIGH);
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, rec_out4);
     digitalWrite(CLOCK,HIGH);
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, multi_input);
     digitalWrite(CLOCK,HIGH); 
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, lr_vol_in1);
     digitalWrite(CLOCK,HIGH); 
  for(int i=1;i&gt;=0; i--){
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, (input_gain &gt;&gt; i) &amp; 1);
     digitalWrite(CLOCK,HIGH);
     }  
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, ins10);
     digitalWrite(CLOCK,HIGH);     
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, all_ch_out_mute);
     digitalWrite(CLOCK,HIGH); 
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, multi_in_mute);
     digitalWrite(CLOCK,HIGH); 
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, lr_vol_in2);
     digitalWrite(CLOCK,HIGH); 
     int stot_add0 = 0b0010;                
  for(int i=3;i&gt;=0; i--){
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, (stot_add0 &gt;&gt; i) &amp; 1);
     digitalWrite(CLOCK,HIGH);
     }                    
     digitalWrite(LATCH,HIGH);
     }

 void slot1(int l_vol, int r_vol, int c_vol){
     digitalWrite(LATCH,LOW);
   
  for(int i=6;i&gt;=0; i--){
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, (l_vol &gt;&gt; i) &amp; 1);
     digitalWrite(CLOCK,HIGH);
     }
  for(int i=6;i&gt;=0; i--){
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, (r_vol &gt;&gt; i) &amp; 1);
     digitalWrite(CLOCK,HIGH);
     }  
  for(int i=6;i&gt;=0; i--){
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, (c_vol &gt;&gt; i) &amp; 1);
     digitalWrite(CLOCK,HIGH);
     }          

     int stot_add1 = 0b000;                
  for(int i=2;i&gt;=0; i--){
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, (stot_add1 &gt;&gt; i) &amp; 1);
     digitalWrite(CLOCK,HIGH);
     }                    
     digitalWrite(LATCH,HIGH);
     }    

 void slot2(int sl_vol, int sr_vol, int sw_vol){
     digitalWrite(LATCH,LOW);
   
  for(int i=6;i&gt;=0; i--){
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, (sl_vol &gt;&gt; i) &amp; 1);
     digitalWrite(CLOCK,HIGH);
     }
  for(int i=6;i&gt;=0; i--){
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, (sr_vol &gt;&gt; i) &amp; 1);
     digitalWrite(CLOCK,HIGH);
     }  
  for(int i=6;i&gt;=0; i--){
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, (sw_vol &gt;&gt; i) &amp; 1);
     digitalWrite(CLOCK,HIGH);
     }          

     int stot_add2 = 0b001;                
  for(int i=2;i&gt;=0; i--){
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, (stot_add2 &gt;&gt; i) &amp; 1);
     digitalWrite(CLOCK,HIGH);
     }                    
     digitalWrite(LATCH,HIGH);
     }   

void slot3(int bass, int treb, int tone_in_att, int bypass_tone, int tone_block, int loud, int loud_balance, int lr_bupass){
     digitalWrite(LATCH,LOW);
   
  for(int i=4;i&gt;=0; i--){
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, (bass &gt;&gt; i) &amp; 1);
     digitalWrite(CLOCK,HIGH);
     }
  for(int i=4;i&gt;=0; i--){
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, (treb &gt;&gt; i) &amp; 1);
     digitalWrite(CLOCK,HIGH);
     }  
  for(int i=1;i&gt;=0; i--){
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, (tone_in_att &gt;&gt; i) &amp; 1);
     digitalWrite(CLOCK,HIGH);
     }    
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, bypass_tone);
     digitalWrite(CLOCK,HIGH); 
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, tone_block);
     digitalWrite(CLOCK,HIGH); 
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, loud);
     digitalWrite(CLOCK,HIGH); 
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, loud_balance);
     digitalWrite(CLOCK,HIGH); 
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, lr_bupass);
     digitalWrite(CLOCK,HIGH);                           

     int stot_add3 = 0b00000011;                
  for(int i=7;i&gt;=0; i--){
     digitalWrite(CLOCK,LOW);
     digitalWrite(DATA, (stot_add3 &gt;&gt; i) &amp; 1);
     digitalWrite(CLOCK,HIGH);
     }                    
     digitalWrite(LATCH,HIGH);
     }          </code></pre></div>]]></summary>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2022-08-23T14:14:23Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?id=507&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[TDA7461D]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?id=506&amp;action=new" />
			<summary type="html"><![CDATA[<p>Здравствуйте нет ли у вас наработок по аудиопроцессору TDA7461d? Помогите пожалуйста реализовать управление громкостью аналоговым резистором или двумя кнопками на палате arduino nano. Имеется автомобильный усилитель kenwood из прошлого века, родную голову управления найти не могу, выбросить рука не поднимается, нужно ему дать вторую жизнь.</p>]]></summary>
			<author>
				<name><![CDATA[hunt20]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1830</uri>
			</author>
			<updated>2022-08-14T05:01:12Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?id=506&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[PT2314]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?id=497&amp;action=new" />
			<summary type="html"><![CDATA[<p>Hola. El proyecto con PT 2314 más lcd 1602 más rtc3231 , funciono correctamente. Quisiera agregarle alarma y además apagado de 10 minutos. Me podrán dar el codigo. Gracias . Saludos.</p>]]></summary>
			<author>
				<name><![CDATA[msanfelipe133]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1804</uri>
			</author>
			<updated>2022-07-12T01:15:17Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?id=497&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[PT2318]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?id=418&amp;action=new" />
			<summary type="html"><![CDATA[<p><span class="attention-yellow"></span></p>]]></summary>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2021-08-23T06:45:28Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?id=418&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[pt2329]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?id=396&amp;action=new" />
			<summary type="html"><![CDATA[<p><span class="attention-yellow"></span></p>]]></summary>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2021-07-20T05:49:45Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?id=396&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[M61538FP 6-Channel Electronic Volume]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?id=167&amp;action=new" />
			<summary type="html"><![CDATA[<p>M61538FP<br />6-Channel Electronic Volume </p><p><span class="attention-yellow"></span></p>]]></summary>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2020-05-23T09:25:50Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?id=167&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[pt2033]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?id=106&amp;action=new" />
			<summary type="html"><![CDATA[<p><span class="attention-yellow"></span></p>]]></summary>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2019-12-17T15:44:32Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?id=106&amp;action=new</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[M61540FP]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?id=84&amp;action=new" />
			<summary type="html"><![CDATA[<p>Description<br />M61540FP is an audio signal processor for home audio. This IC contains 6 channel electronic volume, gain control,<br />input selector and 2 band tone control.<br />Features<br />• Electric Volume 6 channel independent Electronic Volume with High Voltage Transistor.<br /> (0 to –99dB/1dBstep, –∞dB)<br />• Gain Control 6 channel independent Gain Control (0, 6, 12, 18dB)<br />• Input Selector L/R channel 5 Input Selector<br />• Multi Channel Input 6 channel Input<br />• Tone Control Bass: –14 to + 14dB(2dB step),<br />Treble: –14 to + 14dB(2dB step)<br />• REC Output Can use 2 Input for REC Output<br />• ADC Out Built-in ADC out<br />Recommended Operating Condition<br />Supply Voltage Range AVCC = 7.0V(typ), AVEE = –7.0V(typ), DVDD = 3.0 to 5.5V </p><p><span class="attention-yellow"></span></p>]]></summary>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2019-10-23T08:52:16Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?id=84&amp;action=new</id>
		</entry>
</feed>
