<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[forum.rcl-radio.ru &mdash; PT2314 - регулировка громкости и тембра при помощи потенциометров]]></title>
	<link rel="self" href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=146&amp;type=atom" />
	<updated>2020-03-15T12:40:48Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.rcl-radio.ru/viewtopic.php?id=146</id>
		<entry>
			<title type="html"><![CDATA[Re: PT2314 - регулировка громкости и тембра при помощи потенциометров]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=1153#p1153" />
			<content type="html"><![CDATA[<p>Без дисплея, только светодиоды.</p><p><strong>Скетч нуждается&nbsp; в тестировании!!!</strong></p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2020/03/2cd6c371ac10fcacccc0058231671337.png" alt="http://forum.rcl-radio.ru/uploads/images/2020/03/2cd6c371ac10fcacccc0058231671337.png" /></span> </p><p>При коротком нажатии кнопки ST-BY/MUTE срабатывает MUTE, при удержании кнопки STANDBY</p><div class="codebox"><pre><code>#include &lt;Wire.h&gt; 
#include &lt;PT2314.h&gt;  // http://forum.rcl-radio.ru/misc.php?action=pan_download&amp;item=434&amp;download=1
#include &lt;EEPROM.h&gt;
   PT2314 pt;

   int vol,bass,treb,vol_old,bass_old,treb_old,in,menu;
   byte power,mute,save,pin;
   unsigned long time0,w,w1;

void setup(){
  pinMode(A0,INPUT);// VOLUME
  pinMode(A1,INPUT);// BASS
  pinMode(A2,INPUT);// TREBLE
  pinMode(9,INPUT);// MUTE / STANDBY
  pinMode(10,INPUT);// IN
  pinMode(8,INPUT);// STANDBY OUTPUT
  pinMode(2,OUTPUT);// LED IN1
  pinMode(3,OUTPUT);// LED IN2
  pinMode(4,OUTPUT);// LED IN3
  pinMode(5,OUTPUT);// LED IN4
  pinMode(7,OUTPUT);// LED POWER
  pinMode(11,OUTPUT);// LED MUTE
  in = EEPROM.read(3);
  audio();
  }

void loop(){
////////////// mute power in //////////////////
if(digitalRead(9)==HIGH){delay(5);pin++;}
  if((pin&gt;0&amp;&amp;pin&lt;10&amp;&amp;digitalRead(9)==LOW)&amp;&amp;mute==0&amp;&amp;power==0){pin=0;mute=1;pt.setAttR(31);pt.setAttL(31);menu=100;digitalWrite(11,HIGH);delay(200);}// mute on
  if((pin&gt;0&amp;&amp;pin&lt;10&amp;&amp;digitalRead(9)==LOW)&amp;&amp;mute==1&amp;&amp;power==0){pin=0;mute=0;digitalWrite(11,LOW);audio();delay(200);}// mute off

  if((pin&gt;10)&amp;&amp;power==0){pin=0;power=1;save=1;pt.setAttR(31);pt.setAttL(31);digitalWrite(7,LOW);digitalWrite(2,LOW);digitalWrite(3,LOW);digitalWrite(4,LOW);digitalWrite(5,LOW);delay(1000);}// power off
  if((pin&gt;0)&amp;&amp;power==1){pin=0;power=0;digitalWrite(7,HIGH);audio();delay(200);}// power on

  if(mute==0&amp;&amp;power==0&amp;&amp;digitalRead(10)==HIGH){in++;in_func();}
  switch(in){
    case 0 : digitalWrite(2,HIGH);digitalWrite(3,LOW);digitalWrite(4,LOW);digitalWrite(5,LOW);break;
    case 1 : digitalWrite(2,LOW);digitalWrite(3,HIGH);digitalWrite(4,LOW);digitalWrite(5,LOW);break;
    case 2 : digitalWrite(2,LOW);digitalWrite(3,LOW);digitalWrite(4,HIGH);digitalWrite(5,LOW);break;
    case 3 : digitalWrite(2,LOW);digitalWrite(3,LOW);digitalWrite(4,LOW);digitalWrite(5,HIGH);break;
    }
  
  if(power==0){digitalWrite(8,HIGH);}else{digitalWrite(8,LOW);}
////////////////////////////////////////////
  
  vol_old = vol;
  bass_old = bass;
  treb_old = treb;
  
  vol = map(analogRead(A0),0,1023,0,57);
  bass = map(analogRead(A1),0,1023,-7,8);
  treb = map(analogRead(A2),0,1023,-7,8);

  if(vol_old!=vol||bass_old!=bass||treb_old!=treb||w==1){w=0;audio();delay(100);}

  /////////////////// eeprom ////////////////////////
  if(save==1){save=0;EEPROM.update(3,in);}
  ///////////////////////////////////////////////////
  }// loop  

void in_func(){if(in&gt;3){in=0;}}
void audio(){
  pt.setVolume(vol); // int 0...56 === -70...0 dB step 1.25 dB
  pt.setAttL(0); // int 0...24 === 0...-30 db step 1.25 dB &gt; int 31 === mute on     
  pt.setAttR(0); // int 0...24 === 0...-30 dB step 1.25 dB &gt; int 31 === mute on
  pt.setSwitch(in, 0, 0); 
        // input      int 0..3 === IN 1...4 
        // loudness   int 0...1 === 1-on 0-off
        // input gain int 0...3 === 0...11.25dB step 3.75 dB
  pt.setBass(bass);   // int -7...+7 === -14...+14 dB step 2 dB
  pt.setTreble(treb); // int -7...+7 === -14...+14 dB step 2 dB
  }</code></pre></div>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2020-03-15T12:40:48Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=1153#p1153</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[PT2314 - регулировка громкости и тембра при помощи потенциометров]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=1152#p1152" />
			<content type="html"><![CDATA[<p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2020/03/a5ad4d7a1914354b8b31044077dcddc0.png" alt="http://forum.rcl-radio.ru/uploads/images/2020/03/a5ad4d7a1914354b8b31044077dcddc0.png" /></span> </p><p>пробный скетч - не тестировался!!!</p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2020/03/ff773f40de2df7424fd52f6c27dbe2c7.png" alt="http://forum.rcl-radio.ru/uploads/images/2020/03/ff773f40de2df7424fd52f6c27dbe2c7.png" /></span> </p><p>При коротком нажатии кнопки ST-BY/MUTE срабатывает MUTE, при удержании кнопки STANDBY</p><div class="codebox"><pre><code>#include &lt;Wire.h&gt; 
#include &lt;PT2314.h&gt;  // http://forum.rcl-radio.ru/misc.php?action=pan_download&amp;item=434&amp;download=1
#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;
   PT2314 pt;
   LiquidCrystal_I2C lcd(0x27,16,2);  // Устанавливаем дисплей

   int vol,bass,treb,vol_old,bass_old,treb_old,in,menu;
   byte power,mute,save,pin;
   unsigned long time0,w;

void setup(){Serial.begin(9600);
  lcd.init();lcd.backlight();
  pinMode(A0,INPUT);    // VOLUME
  pinMode(A1,INPUT);    // BASS
  pinMode(A2,INPUT);    // TREBLE
  pinMode(9,INPUT);     // MUTE / STANDBY
  pinMode(10,INPUT);    // IN
  pinMode(8,INPUT);     // STANDBY OUTPUT
  in = EEPROM.read(3);
  }

void loop(){
////////////// mute power in //////////////////
if(digitalRead(9)==HIGH){delay(5);pin++;}
  if((pin&gt;0&amp;&amp;pin&lt;10&amp;&amp;digitalRead(9)==LOW)&amp;&amp;mute==0&amp;&amp;power==0){pin=0;mute=1;pt.setAttR(31);pt.setAttL(31);menu=100;cl();menu=1000;;lcd.setCursor(6,0);lcd.print(&quot;MUTE&quot;);delay(1000);}// mute on
  if((pin&gt;0&amp;&amp;pin&lt;10&amp;&amp;digitalRead(9)==LOW)&amp;&amp;mute==1&amp;&amp;power==0){pin=0;mute=0;cl();time0=millis();w=1;menu=0;audio();}// mute off

  if((pin&gt;10)&amp;&amp;power==0){pin=0;power=1;save=1;pt.setAttR(31);pt.setAttL(31);cl();lcd.setCursor(3,0);lcd.print(&quot;POWER  OFF&quot;);menu=100;delay(3000);lcd.noBacklight();}// power off
  if((pin&gt;0)&amp;&amp;power==1){pin=0;power=0;lcd.clear();lcd.setCursor(3,0);lcd.print(&quot;POWER   ON &quot;);time0=millis();w=1;menu=0;audio();lcd.backlight();delay(3000);cl();}// power on

  if(mute==0&amp;&amp;power==0&amp;&amp;digitalRead(10)==HIGH){in++;in_func();cl();w=1;lcd.setCursor(4,0);lcd.print(&quot;INPUT &quot;);lcd.print(in+1);delay(1000);}
  if(power==0){digitalWrite(8,HIGH);}else{digitalWrite(8,LOW);}
////////////////////////////////////////////
  
  vol_old = vol;
  bass_old = bass;
  treb_old = treb;
  
  vol = map(analogRead(A0),0,1023,0,57);
  bass = map(analogRead(A1),0,1023,-7,8);
  treb = map(analogRead(A2),0,1023,-7,8);
  
  if(menu==0&amp;&amp;(vol_old!=vol||bass_old!=bass||treb_old!=treb||w==1)){w=0;audio();
  lcd.setCursor(0,0);lcd.print(&quot;VOLUME &quot;);lcd.print(vol);lcd.print(&quot;  &quot;);
  lcd.setCursor(10,0);lcd.print(&quot;INPUT&quot;);lcd.print(in+1);
  lcd.setCursor(10,1);lcd.print(&quot;BASS &quot;);if(bass&lt;0){lcd.setCursor(14,1);}else{lcd.setCursor(15,1);}lcd.print(bass);lcd.print(&quot; &quot;);
  lcd.setCursor(0,1);lcd.print(&quot;TREBLE &quot;);if(treb&lt;0){lcd.setCursor(6,1);}else{lcd.setCursor(7,1);}lcd.print(treb);lcd.print(&quot; &quot;);
  
  }
  delay(100);
  /////////////////// eeprom ////////////////////////
  if(save==1){save=0;EEPROM.update(3,in);}
  ///////////////////////////////////////////////////
  }// loop  

void in_func(){if(in&gt;3){in=0;}}
void cl(){delay(300);lcd.clear();}
void audio(){
  pt.setVolume(vol); // int 0...56 === -70...0 dB step 1.25 dB
  pt.setAttL(0); // int 0...24 === 0...-30 db step 1.25 dB &gt; int 31 === mute on     
  pt.setAttR(0); // int 0...24 === 0...-30 dB step 1.25 dB &gt; int 31 === mute on
  pt.setSwitch(in, 0, 0); 
        // input      int 0..3 === IN 1...4 
        // loudness   int 0...1 === 1-on 0-off
        // input gain int 0...3 === 0...11.25dB step 3.75 dB
  pt.setBass(bass);   // int -7...+7 === -14...+14 dB step 2 dB
  pt.setTreble(treb); // int -7...+7 === -14...+14 dB step 2 dB
  }</code></pre></div>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2020-03-15T09:27:16Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=1152#p1152</id>
		</entry>
</feed>
