<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[forum.rcl-radio.ru &mdash; PT2323]]></title>
		<link>http://forum.rcl-radio.ru/viewtopic.php?id=728</link>
		<atom:link href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=728&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «PT2323».]]></description>
		<lastBuildDate>Sat, 14 Mar 2026 13:46:40 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: PT2323]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=12601#p12601</link>
			<description><![CDATA[<p>Здравствуйте! Скажите пожалуйста,что нужно изменить,чтобы при загрузке скетча уровни в меню ATT были в среднем значении, между -14 и 0? чтобы регулировать не только в большую,но и в меньшую сторону?</p>]]></description>
			<author><![CDATA[null@example.com (Игорёк 87)]]></author>
			<pubDate>Sat, 14 Mar 2026 13:46:40 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=12601#p12601</guid>
		</item>
		<item>
			<title><![CDATA[Re: PT2323]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=12463#p12463</link>
			<description><![CDATA[<p>vol_d=vol; надо поделить что бы шкала не выходила за пределы</p><p>vol_d=vol/2;</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Wed, 18 Feb 2026 11:36:08 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=12463#p12463</guid>
		</item>
		<item>
			<title><![CDATA[Re: PT2323]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=12462#p12462</link>
			<description><![CDATA[<p>теперь полная шкала при vol -32</p>]]></description>
			<author><![CDATA[null@example.com (Игорёк 87)]]></author>
			<pubDate>Wed, 18 Feb 2026 09:51:16 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=12462#p12462</guid>
		</item>
		<item>
			<title><![CDATA[Re: PT2323]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=12461#p12461</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>а ещё при регулировке громкости тембра и т.д шкала мерцает. как испрпвить?</p></blockquote></div><p>При регулировке шкала прорисовывается каждый раз по новой, поэтому происходит мерцание при регулировке.</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Wed, 18 Feb 2026 09:38:43 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=12461#p12461</guid>
		</item>
		<item>
			<title><![CDATA[Re: PT2323]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=12460#p12460</link>
			<description><![CDATA[<p>vol_d=vol-32;<br />заменить на <br />vol_d=vol;</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Wed, 18 Feb 2026 09:35:53 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=12460#p12460</guid>
		</item>
		<item>
			<title><![CDATA[Re: PT2323]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=12458#p12458</link>
			<description><![CDATA[<p>мерцает именно шкала,верхняя часть экрана в норме</p>]]></description>
			<author><![CDATA[null@example.com (Игорёк 87)]]></author>
			<pubDate>Wed, 18 Feb 2026 07:47:46 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=12458#p12458</guid>
		</item>
		<item>
			<title><![CDATA[Re: PT2323]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=12456#p12456</link>
			<description><![CDATA[<p>почему-то шкала громкости начинается с 45,это раз,а ещё при регулировке громкости тембра и т.д шкала мерцает. как испрпвить? заранее благодарен</p>]]></description>
			<author><![CDATA[null@example.com (Игорёк 87)]]></author>
			<pubDate>Tue, 17 Feb 2026 15:21:56 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=12456#p12456</guid>
		</item>
		<item>
			<title><![CDATA[Re: PT2323]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=12402#p12402</link>
			<description><![CDATA[<div class="codebox"><pre><code>#define  CH_UP     0x2FDD02F
#define  CH_DW     0x2FD32CD
#define  CH        0x2FDF50D
#define  IN        0x2FD6A95
#define  VOL_UP    0x2FD906F
#define  VOL_DW    0x2FDF20D
#define  IR_POWER  0x2FD00FF
#define  IR_MUTE   0x2FDB04F

// ENCODER
#define DT_EN   9
#define CLK_EN  8
#define SW_EN   10
// IR_PIN
#define IR_PIN  12
// BUTTON - кнопки
#define IN_SET  A1 
#define POWER   A2 
#define MUTE    A3 
// OUTPUN PIN - пины управления
#define PIN_STANDBY  13

#include &lt;Wire.h&gt;
#include &lt;PT2322.h&gt;
#include &lt;LiquidCrystal_I2C.h&gt;  // http://forum.rcl-radio.ru/misc.php?action=pan_download&amp;item=45&amp;download=1
#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;
  Encoder myEnc(CLK_EN, DT_EN);//CLK, DT подключение энкодера
  IRrecv irrecv(IR_PIN); // указываем вывод модуля IR приемника
  decode_results ir;
  LiquidCrystal_I2C lcd(0x27,16,2);  // Устанавливаем дисплей
   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;
   bool w1,power;
   
void setup() {
  Wire.begin();Serial.begin(9600);irrecv.enableIRIn(); // запускаем модуль IR
  lcd.init();lcd.backlight();
  lcd.createChar(0,a1);lcd.createChar(1,a2);lcd.createChar(2,a3);
  pinMode(SW_EN,INPUT_PULLUP); // menu кнопка энкодера 
  pinMode(MUTE,INPUT_PULLUP); // MUTE
  pinMode(IN_SET,INPUT_PULLUP); // IN
  pinMode(POWER,INPUT_PULLUP);   // КНОПКА POWER
  pinMode(PIN_STANDBY,OUTPUT);  // ВЫХОД УПРАВЛЕНИЯ STANDBY
  pinMode(6,OUTPUT); 
  pinMode(5,OUTPUT);  
  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);
  switch(in){
    case 0: digitalWrite(6,LOW);digitalWrite(5,LOW);break;
    case 1: digitalWrite(6,HIGH);digitalWrite(5,LOW);break;
    case 2: digitalWrite(6,LOW);digitalWrite(5,HIGH);break;
    }
  audio();
}
 void to_Timer(){newPosition = myEnc.read()/4;}
 
 void loop(){
  delay(10);
  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==0){g1=0;g2=0;}// запрет нажатий не активных кнопок пульта  
  
  if(power==0){
   if(digitalRead(SW_EN)==LOW){menu++;cl1();myEnc.write(0);time=millis();w=1;w1=1;if(menu&gt;11){menu=0;}}// меню
  
   if(ir.value==CH_UP){menu++;g1=0;g2=0;cl1();time=millis();w=1;w1=1;if(menu&gt;11){menu=0;}}// меню кнопка CH+
   if(ir.value==CH_DW){menu--;g1=0;g2=0;cl1();time=millis();w=1;w1=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(digitalRead(IN_SET)==LOW || ir.value==IN){in++;g1=0;g2=0;time=millis();w=1;w1=1;if(in&gt;2){in=0;}if(in&lt;0){in=2;}audio();cl1();
   switch(in){
    case 0: digitalWrite(6,LOW);digitalWrite(5,LOW);lcd.setCursor(0,0);lcd.print(&quot;      AUX1      &quot;);delay(1000);cl1();break;
    case 1: digitalWrite(6,HIGH);digitalWrite(5,LOW);lcd.setCursor(0,0);lcd.print(&quot;      AUX2      &quot;);delay(1000);cl1();break;
    case 2: digitalWrite(6,LOW);digitalWrite(5,HIGH);lcd.setCursor(0,0);lcd.print(&quot;      6CH      &quot;);delay(1000);cl1();break;
    }
   }//  кнопка IN 

  if((digitalRead(MUTE)==LOW || ir.value==IR_MUTE)&amp;&amp; mute==1){mute=0;menu=0;audio();cl1();w1=1;}  
  if((digitalRead(MUTE)==LOW || ir.value==IR_MUTE)&amp;&amp; mute==0){mute=1;menu=100;audio();cl1();w1=1;lcd.setCursor(0,0);lcd.print(&quot;      MUTE      &quot;);delay(300);}
  }

   if((ir.value==IR_POWER||digitalRead(POWER)==LOW)&amp;&amp;power==0){power=1;mute=1;cl1();lcd.setCursor(3,0);lcd.print(&quot;POWER  OFF&quot;);menu=100;audio();digitalWrite(PIN_STANDBY,HIGH);delay(1000);lcd.noBacklight();}// power off
   if((ir.value==IR_POWER||digitalRead(POWER)==LOW)&amp;&amp;power==1){power=0;mute=0;cl1();lcd.setCursor(3,0);lcd.backlight();lcd.print(&quot;POWER   ON &quot;);w1=1;menu=0;myEnc.write(0);audio();digitalWrite(PIN_STANDBY,LOW);delay(1000);cl();}// power on
 //////////////////////////////////////// Громкость -79...0 дБ //////////////////////////////////////
 if(menu==0){   
     if(ir.value==VOL_UP){vol++;g1=1;g2=0;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL+  0xFFA857
     if(ir.value==0xFFFFFFFF and g1==1){vol++;g2=0;cl();time=millis();w=1;w1=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){vol--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){vol--;g1=0;cl();time=millis();w=1;w1=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;w1=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;
   if(w1==1){w1=0;    
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==VOL_DW){bass--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
   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;w1=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;
   if(w1==1){w1=0; 
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==VOL_DW){mid--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
   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;w1=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;
   if(w1==1){w1=0; 
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==VOL_DW){treb--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
   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;w1=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;
   if(w1==1){w1=0; 
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==VOL_DW){tembro--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
      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;w1=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;w1=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){attfl++;g2=0;cl();time=millis();w=1;w1=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){attfl--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){attfl--;g1=0;cl();time=millis();w=1;w1=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;w1=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;
   if(w1==1){w1=0; 
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){attfr++;g2=0;cl();time=millis();w=1;w1=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){attfr--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){attfr--;g1=0;cl();time=millis();w=1;w1=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;w1=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;
   if(w1==1){w1=0; 
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){atttl++;g2=0;cl();time=millis();w=1;w1=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){atttl--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){atttl--;g1=0;cl();time=millis();w=1;w1=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;w1=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;
   if(w1==1){w1=0; 
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){atttr++;g2=0;cl();time=millis();w=1;w1=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){atttr--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){atttr--;g1=0;cl();time=millis();w=1;w1=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;w1=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;
   if(w1==1){w1=0; 
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){attcn++;g2=0;cl();time=millis();w=1;w1=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){attcn--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){attcn--;g1=0;cl();time=millis();w=1;w1=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;w1=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;
   if(w1==1){w1=0; 
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){attsub++;g2=0;cl();time=millis();w=1;w1=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;w1=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;w1=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;
   if(w1==1){w1=0; 
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==VOL_DW){ddd--;g1=0;g2=1;cl1();audio();}// кнопка VOL-
   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;w1=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;);} }  

   
   
   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;w1=1;cl();}
 
   
 }//loop
 
 void cl(){ir.value=0;delay(100);}
 void cl1(){ir.value=0;delay(300);lcd.clear();}

 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>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Sat, 07 Feb 2026 15:44:53 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=12402#p12402</guid>
		</item>
		<item>
			<title><![CDATA[Re: PT2323]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=12401#p12401</link>
			<description><![CDATA[<p>дисплей 1602 i2c</p>]]></description>
			<author><![CDATA[null@example.com (Игорёк 87)]]></author>
			<pubDate>Sat, 07 Feb 2026 14:58:02 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=12401#p12401</guid>
		</item>
		<item>
			<title><![CDATA[Re: PT2323]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=12400#p12400</link>
			<description><![CDATA[<p>кнопки IN_SET и POWER&nbsp; не реагируют. приоритет таков-режим выключения с кнопки и с пульта с гашением дисплея. переключение входов AUX1.AUX2.6CH (выходы d6 d5 соотв low low при aux1.&nbsp; high low при aux2. low high при 6сн)</p>]]></description>
			<author><![CDATA[null@example.com (Игорёк 87)]]></author>
			<pubDate>Sat, 07 Feb 2026 14:51:22 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=12400#p12400</guid>
		</item>
		<item>
			<title><![CDATA[Re: PT2323]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=12398#p12398</link>
			<description><![CDATA[<p>Удалил 2323</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

// ENCODER
#define DT_EN   9
#define CLK_EN  8
#define SW_EN   10
// IR_PIN
#define IR_PIN  12
// BUTTON - кнопки
#define IN_SET  A1 
#define POWER   A2 
#define MUTE    A3 

#include &lt;Wire.h&gt;
#include &lt;PT2322.h&gt;
#include &lt;LiquidCrystal_I2C.h&gt;  // http://forum.rcl-radio.ru/misc.php?action=pan_download&amp;item=45&amp;download=1
#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;
  Encoder myEnc(CLK_EN, DT_EN);//CLK, DT подключение энкодера
  IRrecv irrecv(IR_PIN); // указываем вывод модуля IR приемника
  decode_results ir;
  LiquidCrystal_I2C lcd(0x27,20,4);  // Устанавливаем дисплей
   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;
   bool w1;
   
void setup() {
  Wire.begin();Serial.begin(9600);irrecv.enableIRIn(); // запускаем модуль IR
  lcd.init();lcd.backlight();
  lcd.createChar(0,a1);lcd.createChar(1,a2);lcd.createChar(2,a3);
  pinMode(SW_EN,INPUT_PULLUP); // menu кнопка энкодера 
  pinMode(MUTE,INPUT_PULLUP); // MUTE
  pinMode(IN_SET,INPUT_PULLUP); // 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();
}
 void to_Timer(){newPosition = myEnc.read()/4;}
 
 void loop(){delay(10);
  if(digitalRead(SW_EN)==LOW){menu++;cl1();myEnc.write(0);time=millis();w=1;w1=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;w1=1;if(menu&gt;11){menu=0;}}// меню кнопка CH+
   if(ir.value==CH_DW){menu--;g1=0;g2=0;cl1();time=millis();w=1;w1=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;w1=1;audio();}//  кнопка IN 
 //////////////////////////////////////// Громкость -79...0 дБ //////////////////////////////////////
 if(menu==0){   
     if(ir.value==VOL_UP){vol++;g1=1;g2=0;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL+  0xFFA857
     if(ir.value==0xFFFFFFFF and g1==1){vol++;g2=0;cl();time=millis();w=1;w1=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){vol--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){vol--;g1=0;cl();time=millis();w=1;w1=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;w1=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;
   if(w1==1){w1=0;    
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==VOL_DW){bass--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
   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;w1=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;
   if(w1==1){w1=0; 
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==VOL_DW){mid--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
   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;w1=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;
   if(w1==1){w1=0; 
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==VOL_DW){treb--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
   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;w1=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;
   if(w1==1){w1=0; 
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==VOL_DW){tembro--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
      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;w1=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;w1=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){attfl++;g2=0;cl();time=millis();w=1;w1=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){attfl--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){attfl--;g1=0;cl();time=millis();w=1;w1=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;w1=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;
   if(w1==1){w1=0; 
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){attfr++;g2=0;cl();time=millis();w=1;w1=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){attfr--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){attfr--;g1=0;cl();time=millis();w=1;w1=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;w1=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;
   if(w1==1){w1=0; 
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){atttl++;g2=0;cl();time=millis();w=1;w1=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){atttl--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){atttl--;g1=0;cl();time=millis();w=1;w1=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;w1=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;
   if(w1==1){w1=0; 
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){atttr++;g2=0;cl();time=millis();w=1;w1=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){atttr--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){atttr--;g1=0;cl();time=millis();w=1;w1=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;w1=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;
   if(w1==1){w1=0; 
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){attcn++;g2=0;cl();time=millis();w=1;w1=1;audio();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
     if(ir.value==VOL_DW){attcn--;g1=0;g2=1;cl();time=millis();w=1;w1=1;audio();}// кнопка VOL-
     if(ir.value==0xFFFFFFFF and g2==1){attcn--;g1=0;cl();time=millis();w=1;w1=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;w1=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;
   if(w1==1){w1=0; 
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==0xFFFFFFFF and g1==1){attsub++;g2=0;cl();time=millis();w=1;w1=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;w1=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;w1=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;
   if(w1==1){w1=0; 
   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;w1=1;audio();}// кнопка VOL+
     if(ir.value==VOL_DW){ddd--;g1=0;g2=1;cl1();audio();}// кнопка VOL-
   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;w1=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(MUTE)==LOW)){mute=0;menu=0;audio();cl1();}  
  if(digitalRead(MUTE)==LOW){mute=1;menu=100;audio();cl1();}
  if(mute==1){lcd.setCursor(0,0);lcd.print(&quot;      MUTE      &quot;);delay(300);}

  
   
   
   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(){
  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>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Sat, 07 Feb 2026 13:50:31 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=12398#p12398</guid>
		</item>
		<item>
			<title><![CDATA[PT2323]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=12397#p12397</link>
			<description><![CDATA[<p>Здравствуйте! нужна Ваша помощь в написании скетча. Нужно управление процессором&nbsp; PT2322,как в Темброблок 5.1 на PT2323 и PT2322 (Arduino),но без 2323, коммутатор входов на 3 канала (aux1/aux2/6ch)будет на мс 4053,которые переключаются с определённого сигнала с вывода ардуинки. Энкодер и ик пульт присутствуют. Короче,как в статье,только вырезать всё,что касается 2323,сделать меню на 3 входа с соответствующими надписями и управлением. Дисплей i2c, режим st-by.</p>]]></description>
			<author><![CDATA[null@example.com (Игорёк 87)]]></author>
			<pubDate>Sat, 07 Feb 2026 12:52:52 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=12397#p12397</guid>
		</item>
	</channel>
</rss>
