<?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; Регулятор громкости и тембра на LC75341 + 0.96' I2C 128X64 OLED (Ardui]]></title>
		<link>http://forum.rcl-radio.ru/viewtopic.php?id=571</link>
		<atom:link href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=571&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Регулятор громкости и тембра на LC75341 + 0.96' I2C 128X64 OLED (Ardui».]]></description>
		<lastBuildDate>Wed, 16 Oct 2024 15:39:32 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Регулятор громкости и тембра на LC75341 + 0.96' I2C 128X64 OLED (Ardui]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=10913#p10913</link>
			<description><![CDATA[<p>Александр, подскажите, как можно интегрировать вот эту <a href="http://m.rcl-radio.ru/?p=82151">http://m.rcl-radio.ru/?p=82151</a> Вашу разработку в проект LC75341?</p>]]></description>
			<author><![CDATA[null@example.com (Karl2233)]]></author>
			<pubDate>Wed, 16 Oct 2024 15:39:32 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=10913#p10913</guid>
		</item>
		<item>
			<title><![CDATA[Re: Регулятор громкости и тембра на LC75341 + 0.96' I2C 128X64 OLED (Ardui]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=10563#p10563</link>
			<description><![CDATA[<div class="quotebox"><cite>NikolavRj пишет:</cite><blockquote><p> Реально ли к схеме прикрутить часы</p></blockquote></div><p>Наверное не к схеме а в программе, схема там простая будет:&nbsp; добавить модуль часов реального времени.<br />А вот места в памяти может не хватить...<br />Надо библиотеку и обработку кнопок в режиме StBy добавлять.<br />В теории не очень сложно: вместо вывода на дисплей надписи, выводить время. <br />Но как на практике - хз</p>]]></description>
			<author><![CDATA[null@example.com (Karl2233)]]></author>
			<pubDate>Tue, 30 Jul 2024 12:56:41 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=10563#p10563</guid>
		</item>
		<item>
			<title><![CDATA[Re: Регулятор громкости и тембра на LC75341 + 0.96' I2C 128X64 OLED (Ardui]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=10552#p10552</link>
			<description><![CDATA[<p>Добрый день! Я конечно понимаю, что статье уже больше года, но все-таки надеюсь на лучшее. Реально ли к схеме прикрутить часы, чтобы в режиме Standby на экране отображалось реальное время? <br />В электронике, да и в ардуино, я ну не прям совсем профан, могу спаять, прошить - глаза не боятся и руки делают)), но сам я не сделаю такого. Сможете мне помочь?</p>]]></description>
			<author><![CDATA[null@example.com (NikolavRj)]]></author>
			<pubDate>Tue, 09 Jul 2024 11:46:14 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=10552#p10552</guid>
		</item>
		<item>
			<title><![CDATA[Re: Регулятор громкости и тембра на LC75341 + 0.96' I2C 128X64 OLED (Ardui]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=10379#p10379</link>
			<description><![CDATA[<p>Второй сделал. <br /><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2024/05/ba4b399cc57d63d39311a24a468dfbaa.jpg" alt="http://forum.rcl-radio.ru/uploads/images/2024/05/ba4b399cc57d63d39311a24a468dfbaa.jpg" /></span> <br />Зачем?&nbsp; Подарю комунить. </p><p>Корпус от медиаплееоа Iconbit. </p><p>Что внутри: LM7293, два БП (ИИП для Атмеги, вентилятора и LC75341),&nbsp; трасформаторный для LM. <br />Два входа - линейный и блютуз. <br />Из-за высокой плотности монтажа кнеш сборка была с пинцетом в руках.</p>]]></description>
			<author><![CDATA[null@example.com (Karl2233)]]></author>
			<pubDate>Sun, 12 May 2024 23:26:36 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=10379#p10379</guid>
		</item>
		<item>
			<title><![CDATA[Re: Регулятор громкости и тембра на LC75341 + 0.96' I2C 128X64 OLED (Ardui]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=9073#p9073</link>
			<description><![CDATA[<p>Классно получилось!</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Sat, 23 Dec 2023 09:30:02 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=9073#p9073</guid>
		</item>
		<item>
			<title><![CDATA[Re: Регулятор громкости и тембра на LC75341 + 0.96' I2C 128X64 OLED (Ardui]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=9070#p9070</link>
			<description><![CDATA[<p>Закончил я свой долгострой.<br />Ещё раз спасибо liman324 за разработку и помощь в реализации. <br /><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/12/bfc01d4eb893cd16f61efa3d92ce4f8a.jpg" alt="http://forum.rcl-radio.ru/uploads/images/2023/12/bfc01d4eb893cd16f61efa3d92ce4f8a.jpg" /></span><br />Усилитель+встроил медиаплеер iconbit+блютуз и вот такой монстрик получился.</p>]]></description>
			<author><![CDATA[null@example.com (Karl2233)]]></author>
			<pubDate>Sat, 23 Dec 2023 08:46:47 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=9070#p9070</guid>
		</item>
		<item>
			<title><![CDATA[Re: Регулятор громкости и тембра на LC75341 + 0.96' I2C 128X64 OLED (Ardui]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=8983#p8983</link>
			<description><![CDATA[<p>if(in_reg&gt;3){in_reg=0;}</p><p>заменить на</p><p>if(in_reg&gt;1){in_reg=0;}</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Sun, 10 Dec 2023 04:45:50 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=8983#p8983</guid>
		</item>
		<item>
			<title><![CDATA[Re: Регулятор громкости и тембра на LC75341 + 0.96' I2C 128X64 OLED (Ardui]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=8982#p8982</link>
			<description><![CDATA[<p>Вопрос: Александр, подскажите плз, как можно ограничить количество входов до 2-3? <br />Что надо в скетче поправить?&nbsp; Так понимаю надо в двух местах это делать.</p>]]></description>
			<author><![CDATA[null@example.com (Karl2233)]]></author>
			<pubDate>Sun, 10 Dec 2023 03:34:26 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=8982#p8982</guid>
		</item>
		<item>
			<title><![CDATA[Re: Регулятор громкости и тембра на LC75341 + 0.96' I2C 128X64 OLED (Ardui]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=8639#p8639</link>
			<description><![CDATA[<p>Если что обращайтесь.</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Mon, 18 Sep 2023 13:22:14 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=8639#p8639</guid>
		</item>
		<item>
			<title><![CDATA[Re: Регулятор громкости и тембра на LC75341 + 0.96' I2C 128X64 OLED (Ardui]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=8638#p8638</link>
			<description><![CDATA[<p>Поменял как Вы написали.<br />В одном месте 79 на 71.<br />Работает как надо! <br />Проверил все режимы, кнопки и пульт - всё ОК. <br />Спасибо за разработку и помощь! <br />Закончу проект, выложу фото.</p><p>Ооо! Вы уже mute сделали с отдельным выходом!? <br />Вот это ваще класс!<br />В моей плате УМ есть свой режим mute,&nbsp; я его полевиком буду нажимать.<br />Ещё раз спасибо!</p><p>З. Ы. Думаю что когда Вы меняли это значение, я при тесте не очищал память - а там при загрузке скетча мусор всякий (значения 510 по всем параметрам, пока не крутанешь энкодер).<br />Мусор убираю один раз: после загрузки пробегаюсь по всем параметрам и нажимаю/кручу энкодер). <br />И вот при этом мусоре были дефекты.</p>]]></description>
			<author><![CDATA[null@example.com (Karl2233)]]></author>
			<pubDate>Mon, 18 Sep 2023 12:03:32 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=8638#p8638</guid>
		</item>
		<item>
			<title><![CDATA[Re: Регулятор громкости и тембра на LC75341 + 0.96' I2C 128X64 OLED (Ardui]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=8636#p8636</link>
			<description><![CDATA[<p>Добавил отключение звука как в power_off</p><div class="codebox"><pre><code>#define IR2   0xFF2FD0 // button encoder
#define IR3   0xFFAF50 // mute
#define IR4   0xFF8F70 // &gt;&gt;&gt;
#define IR5   0xFF4FB0 // &lt;&lt;&lt;
#define IR6   0xFFCF30 // INPUT 
#define POWER 0xFF0FF0 // STANDBY

#include &lt;LC75341.h&gt;           // http://rcl-radio.ru/wp-content/uploads/ … c75341.zip
#include &lt;Wire.h&gt;
#include &lt;MsTimer2.h&gt;          // http://rcl-radio.ru/wp-content/uploads/ … Timer2.zip
#include &lt;U8glib.h&gt;            // https://github.com/olikraus/u8glib/
#include &lt;Encoder.h&gt;           // http://rcl-radio.ru/wp-content/uploads/ … ncoder.zip
#include &lt;EEPROM.h&gt;
#include &lt;boarddefs.h&gt;         // входит в состав библиотеки IRremote
#include &lt;IRremote.h&gt;          // http://rcl-radio.ru/wp-content/uploads/ … remote.zip

Encoder myEnc(5, 6);// DT, CLK(8, 9)
U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST);  // Dev 0, Fast I2C / TWI
LC75341 lc(3,4,2);   // CE,DI,CL
IRrecv irrecv(12); // указываем вывод модуля IR приемника
decode_results ir;


long times,oldPosition  = -999,newPosition, times1, times2;
int vol_reg,menu,mute_reg,power,treb_reg,gain0,gain1,gain2,gain3,gain4,gain5,bass_reg,in_reg,ball,vol_old;
bool w,w2,gr1,gr2,www,oled_off,w_power;

void setup(){
  Wire.begin();
  irrecv.enableIRIn();
  Serial.begin(9600);
  MsTimer2::set(1, to_Timer);MsTimer2::start();
  pinMode(7,INPUT);        // encoder SW
  pinMode(10,INPUT_PULLUP);  // mute button
  pinMode(11,INPUT_PULLUP); // input button
  pinMode(8,OUTPUT);        // OUT STBY
  pinMode(9,INPUT_PULLUP);  // POWER BUTTON
  pinMode(13,OUTPUT);   // тут сразу пропадает напряжение при ВЫКЛ и появляется с задержкой при ВКЛ
  digitalWrite(13,LOW);  // input_out_pin
  pinMode(A0,OUTPUT);
  pinMode(A1,OUTPUT);
  pinMode(A2,OUTPUT);
  pinMode(A3,OUTPUT);
  vol_reg = EEPROM.read(0);treb_reg = EEPROM.read(1)-5;bass_reg = EEPROM.read(2);gain1 = EEPROM.read(4);
  gain2 = EEPROM.read(8);gain3 = EEPROM.read(9);gain4 = EEPROM.read(10);gain5 = EEPROM.read(5);
  in_reg = EEPROM.read(6);ball = EEPROM.read(7)-4;oled_off = EEPROM.read(11);
  if(oled_off&gt;1){oled_off=0;}
  switch(in_reg){
     case 0: gain0 = gain1;out_in(1,0,0,0);break;
     case 1: gain0 = gain2;out_in(0,1,0,0);break;
     case 2: gain0 = gain3;out_in(0,0,1,0);break;
     case 3: gain0 = gain4;out_in(0,0,0,1);break;
     }
  audio_L();
  audio_R();
  times2=millis();

}

void loop(){
//  Serial.println(menu);
/// IR ////////////////////////////////////////
   if ( irrecv.decode( &amp;ir )) {Serial.print(&quot;0x&quot;);Serial.println( ir.value,HEX);irrecv.resume();times=millis();w=1;w2=1;times1=millis();}// IR приемник - чтение, в мониторе порта отображаются коды кнопок
   if(ir.value==0){gr1=0;gr2=0;}// запрет нажатий не активных кнопок пульта   
//////// BUTTON /////////////////////////////////////////////////////////////////////////////////////////////////////////////
if(power==0){
if(mute_reg==0){
   if(digitalRead(7)==LOW||ir.value==IR2){menu++;times1=millis();gr1=0;gr2=0;cl();times=millis();w=1;w2=1;if(menu&gt;3){menu=0;}}
   if((digitalRead(11)==LOW||ir.value==IR6)){in_reg++;menu=4;cl();times1=millis();times=millis();w=1;w2=1;www=1;if(in_reg&gt;3){in_reg=0;}}
  }
   if((digitalRead(10)==LOW||ir.value==IR3)&amp;&amp;mute_reg==0){mute_reg=1;menu=100;cl();vol_old=vol_reg;vol_reg=79;audio_R();audio_L();
     u8g.firstPage();do {u8g.setFont(u8g_font_profont12r);u8g.drawStr(53,30,&quot;MUTE&quot;);} while( u8g.nextPage() );}
   if((digitalRead(10)==LOW||ir.value==IR3)&amp;&amp;mute_reg==1){mute_reg=0;times1=millis();w=1;menu=0;cl();vol_reg=vol_old;audio_R();audio_L();}
}
////////// POWER ///////////////////
  if((digitalRead(9)==LOW||ir.value==POWER)&amp;&amp;power==0){power=1;menu=100;cl();vol_old=vol_reg;vol_reg=79;audio_R();audio_L();times2=millis();digitalWrite(13,LOW);
     u8g.firstPage();do {u8g.setFont(u8g_font_profont12r);u8g.drawStr(40,30,&quot;POWER OFF&quot;);} while( u8g.nextPage() );
     MsTimer2::set(1, to_Timer);MsTimer2::stop();delay(1500);digitalWrite(5,LOW); u8g.firstPage();do {} while( u8g.nextPage() );}
   if((digitalRead(9)==LOW||ir.value==POWER)&amp;&amp;power==1){power=0;times1=millis();MsTimer2::set(1, to_Timer);MsTimer2::start();
     u8g.firstPage();do {u8g.setFont(u8g_font_profont12r);u8g.drawStr(42,30,&quot;POWER ON&quot;);} while( u8g.nextPage() );delay(1500);
   w=1;menu=0;cl();vol_reg=vol_old;audio_R();audio_L();}

   if(millis()-times2&gt;10000 &amp;&amp; power==0){digitalWrite(13,HIGH);}

   if(power==0 || mute_reg==1){digitalWrite(8,HIGH);}else{digitalWrite(8,LOW);}

   if(digitalRead(7)==LOW &amp;&amp; digitalRead(11)==LOW &amp;&amp; power==1 &amp;&amp; oled_off==0){oled_off=1;EEPROM.update(11,oled_off);
   u8g.firstPage();do {u8g.setFont(u8g_font_profont12r);u8g.drawStr(42,30,&quot;OLED OFF&quot;);} while( u8g.nextPage() );
   delay(2000);u8g.firstPage();do {} while( u8g.nextPage() );}
   if(digitalRead(7)==LOW &amp;&amp; digitalRead(11)==LOW &amp;&amp; power==1 &amp;&amp; oled_off==1){oled_off=0;EEPROM.update(11,oled_off);
   u8g.firstPage();do {u8g.setFont(u8g_font_profont12r);u8g.drawStr(42,30,&quot;OLED  ON&quot;);} while( u8g.nextPage() );
   delay(2000);u8g.firstPage();do {} while( u8g.nextPage() );}
   
//////// VOLUME ////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
  if(menu==0){
  if(newPosition != oldPosition){oldPosition = newPosition;if(newPosition&gt;1){newPosition=1;}if(newPosition&lt;-1){newPosition=-1;}
  vol_reg=vol_reg+newPosition;myEnc.write(0);newPosition=0;times1=millis();times=millis();w=1;w2=1;vol_func();audio_R();audio_L();}

   if(ir.value==IR5){vol_reg++;gr1=1;gr2=0;cl();times=millis();w=1;w2=1;vol_func();audio_R();audio_L();}// кнопка &gt;
   if(ir.value==0xFFFFFFFF and gr1==1){vol_reg++;gr2=0;cl();times=millis();w=1;w2=1;vol_func();audio_R();audio_L();}// кнопка &gt;&gt;&gt;&gt;&gt;&gt;
   if(ir.value==IR4){vol_reg--;gr1=0;gr2=1;cl();times=millis();w=1;w2=1;vol_func();audio_R();audio_L();}// кнопка &lt;
   if(ir.value==0xFFFFFFFF and gr2==1){vol_reg--;gr1=0;cl();times=millis();w=1;w2=1;vol_func();audio_R();audio_L();}// кнопка &lt;&lt;&lt;&lt;&lt;&lt;

  if(w==1){w=0;
  u8g.firstPage(); 
   do {
  u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,8,&quot;VOLUME&quot;);u8g.setFont(u8g_font_profont29r); u8g.setPrintPos(78, 22);u8g.print(71-vol_reg);
  u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,18,&quot;IN&quot;);
  u8g.setPrintPos(20, 18);u8g.print(in_reg+1);u8g.drawStr(0,28,&quot;GAIN&quot;);u8g.setPrintPos(30, 28);u8g.print(gain0*2);
  u8g.drawLine(0, 32, 128, 32);
  u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,44,&quot;TREBLE&quot;);u8g.setPrintPos(80, 44);u8g.print(treb_reg*2);u8g.drawStr(95,44,&quot;dB&quot;);
  u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,54,&quot;BASS&quot;);u8g.setPrintPos(80, 54);u8g.print(bass_reg*2);u8g.drawStr(95,54,&quot;dB&quot;);
  u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,64,&quot;BALANCE&quot;);u8g.setPrintPos(80, 64);u8g.print(ball);u8g.drawStr(95,64,&quot;dB&quot;);
   } while( u8g.nextPage() );
  }}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 

//////// TREBLE ////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
  if(menu==1){
  if(newPosition != oldPosition){oldPosition = newPosition;if(newPosition&gt;1){newPosition=1;}if(newPosition&lt;-1){newPosition=-1;}
  treb_reg=treb_reg-newPosition;myEnc.write(0);newPosition=0;times1=millis();times=millis();w=1;w2=1;treb_func();audio_R();audio_L();}

   if(ir.value==IR4){treb_reg++;gr1=1;gr2=0;cl();times=millis();w=1;w2=1;treb_func();audio_R();audio_L();}// кнопка &gt;
   if(ir.value==IR5){treb_reg--;gr1=0;gr2=1;cl();times=millis();w=1;w2=1;treb_func();audio_R();audio_L();}// кнопка &lt;

  if(w==1){w=0;
  u8g.firstPage(); 
   do {
  u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,8,&quot;TREBLE&quot;);u8g.setFont(u8g_font_profont29r); u8g.setPrintPos(78, 22);u8g.print(treb_reg*2); 
  u8g.setFont(u8g_font_profont12r);//u8g.drawStr(115,8,&quot;dB&quot;);
  u8g.drawLine(0, 32, 128, 32);
  u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,44,&quot;BASS&quot;);u8g.setPrintPos(80, 44);u8g.print(bass_reg*2);u8g.drawStr(95,44,&quot;dB&quot;);
  u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,54,&quot;BALANCE&quot;);u8g.setPrintPos(80, 54);u8g.print(ball);u8g.drawStr(95,54,&quot;dB&quot;);
  u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,64,&quot;VOLUME&quot;);u8g.setPrintPos(80, 64);u8g.print(79-vol_reg);//u8g.drawStr(95,64,&quot;dB&quot;);
   } while( u8g.nextPage() );
  }}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

//////// BASS ////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
  if(menu==2){
  if(newPosition != oldPosition){oldPosition = newPosition;if(newPosition&gt;1){newPosition=1;}if(newPosition&lt;-1){newPosition=-1;}
  bass_reg=bass_reg-newPosition;myEnc.write(0);newPosition=0;times1=millis();times=millis();w=1;w2=1;bass_func();audio_R();audio_L();}

   if(ir.value==IR4){bass_reg++;gr1=1;gr2=0;cl();times=millis();w=1;w2=1;bass_func();audio_R();audio_L();}// кнопка &gt;
   if(ir.value==IR5){bass_reg--;gr1=0;gr2=1;cl();times=millis();w=1;w2=1;bass_func();audio_R();audio_L();}// кнопка &lt;

  if(w==1){w=0;
  u8g.firstPage(); 
   do {
  u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,8,&quot;BASS&quot;);u8g.setFont(u8g_font_profont29r); u8g.setPrintPos(78, 22);u8g.print(bass_reg*2); 
  u8g.setFont(u8g_font_profont12r);//u8g.drawStr(115,8,&quot;dB&quot;);
  u8g.drawLine(0, 32, 128, 32);
  u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,44,&quot;BALANCE&quot;);u8g.setPrintPos(80, 44);u8g.print(ball);u8g.drawStr(95,44,&quot;dB&quot;);
  u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,54,&quot;VOLUME&quot;);u8g.setPrintPos(80, 54);u8g.print(79-vol_reg);//u8g.drawStr(95,54,&quot;dB&quot;);
  u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,64,&quot;TREBLE&quot;);u8g.setPrintPos(80, 64);u8g.print(treb_reg*2);u8g.drawStr(95,64,&quot;dB&quot;);
    } while( u8g.nextPage() );
  }}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
 
//////// BALANCE ////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
  if(menu==3){
  if(newPosition != oldPosition){oldPosition = newPosition;if(newPosition&gt;1){newPosition=1;}if(newPosition&lt;-1){newPosition=-1;}
  ball=ball-newPosition;myEnc.write(0);newPosition=0;times1=millis();times=millis();w=1;w2=1;ball_func();audio_R();audio_L();}

   if(ir.value==IR4){ball++;gr1=1;gr2=0;cl();times=millis();w=1;w2=1;ball_func();audio_R();audio_L();}// кнопка &gt;
   if(ir.value==IR5){ball--;gr1=0;gr2=1;cl();times=millis();w=1;w2=1;ball_func();audio_R();audio_L();}// кнопка &lt;

  if(w==1){w=0;
  u8g.firstPage(); 
   do {
  u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,8,&quot;BALANCE&quot;);u8g.setFont(u8g_font_profont29r); u8g.setPrintPos(78, 22);u8g.print(abs(ball)); 
  u8g.setFont(u8g_font_profont12r);//u8g.drawStr(115,8,&quot;dB&quot;);
  if(ball&lt;=0){u8g.drawStr(45,28,&quot;LCH&quot;);}
  if(ball&gt;=0){u8g.drawStr(105,28,&quot;RCH&quot;);}
  u8g.drawLine(0, 32, 128, 32);
  u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,44,&quot;VOLUME&quot;);u8g.setPrintPos(80, 44);u8g.print(79-vol_reg);//u8g.drawStr(95,44,&quot;dB&quot;);
  u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,54,&quot;TREBLE&quot;);u8g.setPrintPos(80, 54);u8g.print(treb_reg*2);u8g.drawStr(95,54,&quot;dB&quot;);
  u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,64,&quot;BASS&quot;);u8g.setPrintPos(80, 64);u8g.print(bass_reg*2);u8g.drawStr(95,64,&quot;dB&quot;);
    } while( u8g.nextPage() );
  }}
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

////////////// INPUT GAIN ///////////////////////////////////////////////////////////////////
if(menu==4){
  switch(in_reg){
     case 0: gain0 = gain1;out_in(1,0,0,0);break;
     case 1: gain0 = gain2;out_in(0,1,0,0);break;
     case 2: gain0 = gain3;out_in(0,0,1,0);break;
     case 3: gain0 = gain4;out_in(0,0,0,1);break;
     }

  if (newPosition != oldPosition){oldPosition = newPosition;gain0=gain0-newPosition;myEnc.write(0);newPosition=0;times1=millis();times=millis();www=1;w=1;w2=1;gain_func();}

   if(ir.value==IR4){gain0++;gr1=1;gr2=0;cl();times=millis();w=1;w2=1;gain_func();audio_R();audio_L();}// кнопка &gt;
   if(ir.value==IR5){gain0--;gr1=0;gr2=1;cl();times=millis();w=1;w2=1;gain_func();audio_R();audio_L();}// кнопка &lt;

  switch(in_reg){
     case 0: gain1 = gain0;break;
     case 1: gain2 = gain0;break;
     case 2: gain3 = gain0;break;
     case 3: gain4 = gain0;break;
     } 
  if(www==1){audio_R();audio_L();www=0;}

  if(w==1){w=0;
  u8g.firstPage(); 
   do {
  u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,8,&quot;INPUT&quot;);u8g.setFont(u8g_font_profont29r); u8g.setPrintPos(78, 22);u8g.print(in_reg+1); 
  u8g.setFont(u8g_font_profont12r);//u8g.drawStr(115,8,&quot;dB&quot;);
  u8g.drawLine(0, 32, 128, 32);
  u8g.setFont(u8g_font_profont12r);u8g.drawStr(0,44,&quot;GAIN&quot;);u8g.setFont(u8g_font_profont29r); u8g.setPrintPos(78, 60);u8g.print(gain0*2);
    } while( u8g.nextPage() );
  }}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////   

////////////////// EEPROM //////////////////////////////////////////////////////////////
if(millis()-times&gt;10000 &amp;&amp; w2==1 &amp;&amp; mute_reg==0 &amp;&amp; power==0){
     EEPROM.update(0,vol_reg);EEPROM.update(1,treb_reg+5);EEPROM.update(2,bass_reg);EEPROM.update(4,gain1);
     EEPROM.update(8,gain2);EEPROM.update(9,gain3);EEPROM.update(7,gain4);EEPROM.update(5,gain5);
     EEPROM.update(6,in_reg);EEPROM.update(10,ball+4);
     if(menu!=0){menu=0;}w=1;w2=0;} 
if(millis()-times1&gt;30000 &amp;&amp; mute_reg==0 &amp;&amp; oled_off==1){ u8g.firstPage();   do {}  while( u8g.nextPage() );}
}// end loop

void treb_func(){if(treb_reg&lt;-5){treb_reg=-5;}if(treb_reg&gt;5){treb_reg=5;}}
void gain_func(){{if(gain0&lt;0){gain0=0;}if(gain0&gt;15){gain0=15;}}}
void ball_func(){if(ball&gt;4){ball=4;}if(ball&lt;-4){ball=-4;}}
void bass_func(){if(bass_reg&lt;0){bass_reg=0;}if(bass_reg&gt;10){bass_reg=10;}}
void vol_func(){if(vol_reg&lt;0){vol_reg=0;}if(vol_reg&gt;71){vol_reg=71;}}
void to_Timer(){newPosition = myEnc.read()/4;}
void cl(){ir.value=0;delay(300);}
void out_in(bool o1, bool o2, bool o3, bool o4){digitalWrite(A0,o1);digitalWrite(A1,o2);digitalWrite(A2,o3);digitalWrite(A3,o4);}

void audio_L(){
  lc.addr();
  lc.set_input(in_reg);   // input 1...4 = byte 0...3 (byte 4...7 = All switches off)
  lc.set_gain(gain0);    // gain 0...30 dB step 2 dB = byte 0...15
  lc.set_volume(vol_reg+4-ball);  // volume 0...-79 dB = byte 0...79  71+4-4
  lc.set_treble(treb_reg);  // treble -10...10 dB step 2 dB = int -5...5
  lc.set_bass(bass_reg);    // bass 0...20 dB step 2 dB = int 0...10
  lc.set_ch(1);      // Channel Selection RCH = byte 2, LCH = byte 1, Left and right together = byte 3
  lc.test();
  }

void audio_R(){
  lc.addr();
  lc.set_input(in_reg);   // input 1...4 = byte 0...3 (byte 4...7 = All switches off)
  lc.set_gain(gain0);    // gain 0...30 dB step 2 dB = byte 0...15
  lc.set_volume(vol_reg+4+ball);  // volume 0...-79 dB = byte 0...79   71+4+4
  lc.set_treble(treb_reg);  // treble -10...10 dB step 2 dB = int -5...5
  lc.set_bass(bass_reg);    // bass 0...20 dB step 2 dB = int 0...10
  lc.set_ch(2);      // Channel Selection RCH = byte 2, LCH = byte 1, Left and right together = byte 3
  lc.test();
  }</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Mon, 18 Sep 2023 11:08:04 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=8636#p8636</guid>
		</item>
		<item>
			<title><![CDATA[Re: Регулятор громкости и тембра на LC75341 + 0.96' I2C 128X64 OLED (Ardui]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=8634#p8634</link>
			<description><![CDATA[<p>В on\off код аналогичен mute</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Mon, 18 Sep 2023 03:47:10 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=8634#p8634</guid>
		</item>
		<item>
			<title><![CDATA[Re: Регулятор громкости и тембра на LC75341 + 0.96' I2C 128X64 OLED (Ardui]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=8633#p8633</link>
			<description><![CDATA[<p>Попробую сегодня, отпишусь. </p><p>Вот какая мысль посетила: а что если сделать mute просто, как режим on-off? <br />Свободные ноги в Атмеге есть: вкл mute =1; выкл mute =0.<br />Это как план &quot;Б&quot;, если Ваши рекомендации не сработают.</p>]]></description>
			<author><![CDATA[null@example.com (Karl2233)]]></author>
			<pubDate>Mon, 18 Sep 2023 00:11:31 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=8633#p8633</guid>
		</item>
		<item>
			<title><![CDATA[Re: Регулятор громкости и тембра на LC75341 + 0.96' I2C 128X64 OLED (Ardui]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=8631#p8631</link>
			<description><![CDATA[<p>Еще надо проверить регулировку громкости с пульта, будут ли там щелчки.</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Sun, 17 Sep 2023 15:15:13 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=8631#p8631</guid>
		</item>
		<item>
			<title><![CDATA[Re: Регулятор громкости и тембра на LC75341 + 0.96' I2C 128X64 OLED (Ardui]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=8630#p8630</link>
			<description><![CDATA[<p>В этом блоке MUTE</p><p> if((digitalRead(10)==LOW||ir.value==IR3)&amp;&amp;mute_reg==0){mute_reg=1;menu=100;cl();vol_old=vol_reg;vol_reg=79;audio_R();audio_L();<br />&nbsp; &nbsp; &nbsp;u8g.firstPage();do {u8g.setFont(u8g_font_profont12r);u8g.drawStr(53,30,&quot;MUTE&quot;);} while( u8g.nextPage() );}<br />&nbsp; &nbsp;if((digitalRead(10)==LOW||ir.value==IR3)&amp;&amp;mute_reg==1){mute_reg=0;times1=millis();w=1;menu=0;cl();vol_reg=vol_old;audio_R();audio_L();}</p><p>переменную </p><p>vol_reg=79;</p><p>надо поменять на </p><p>vol_reg=71;</p><p>Но я это уже делал, не помогло.</p><p>Поменяйте в рабочем скетче, может я что напутал</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Sun, 17 Sep 2023 14:39:33 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=8630#p8630</guid>
		</item>
	</channel>
</rss>
