<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[forum.rcl-radio.ru &mdash; LM1972]]></title>
	<link rel="self" href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=248&amp;type=atom" />
	<updated>2021-09-14T11:08:15Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.rcl-radio.ru/viewtopic.php?id=248</id>
		<entry>
			<title type="html"><![CDATA[Re: LM1972]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=4671#p4671" />
			<content type="html"><![CDATA[<p>Нет, готовое уст-во не делаю.</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2021-09-14T11:08:15Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=4671#p4671</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: LM1972]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=4670#p4670" />
			<content type="html"><![CDATA[<p>Можно у вас заказать готовое устройство Регулировки громкости с дисплеем если да то какая цена с уважением Николай</p>]]></content>
			<author>
				<name><![CDATA[1968nick]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=1448</uri>
			</author>
			<updated>2021-09-14T06:59:29Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=4670#p4670</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: LM1972]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=2690#p2690" />
			<content type="html"><![CDATA[<p>В железе не тестировалось</p><p>Управление - энкодер + кнопка энкодера</p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2020/12/2a742bec759ef4123b3be63cc9b6862b.png" alt="http://forum.rcl-radio.ru/uploads/images/2020/12/2a742bec759ef4123b3be63cc9b6862b.png" /></span> <br /><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2020/12/6a7b1e49047c7f1f61bd89502443b85d.png" alt="http://forum.rcl-radio.ru/uploads/images/2020/12/6a7b1e49047c7f1f61bd89502443b85d.png" /></span> </p><br /><div class="codebox"><pre><code>#define CS    2  // LOAD PIN 10  LM1972
#define CLK   3  // SCLK PIN 9   LM1972
#define DATA  4  // DATA PIN 11  LM1972

#include &lt;Wire.h&gt; 
#include &lt;EEPROM.h&gt;
#include &lt;Encoder.h&gt;  // http://rcl-radio.ru/wp-content/uploads/2019/05/Encoder.zip
#include &lt;MsTimer2.h&gt; // http://rcl-radio.ru/wp-content/uploads/2018/11/MsTimer2.zip
#include &lt;LiquidCrystal_I2C.h&gt; //Библиотека -  http://forum.rcl-radio.ru/misc.php?action=pan_download&amp;item=45&amp;download=1
  LiquidCrystal_I2C lcd(0x27,16,2);  // Устанавливаем дисплей 
  Encoder myEnc(9, 8);//CLK, DT
  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};  
  int vol,vol_d,z,z0,z1,vol_old;
  byte w,w1,mute;
  unsigned long times,oldPosition  = -999,newPosition;

void setup() {
  Wire.begin();Serial.begin(9600);
  lcd.init();lcd.backlight();
  MsTimer2::set(1, to_Timer);MsTimer2::start();
  lcd.createChar(0,a1);lcd.createChar(1,a2);lcd.createChar(2,a3);
  pinMode(CS,OUTPUT);
  pinMode(CLK,OUTPUT);
  pinMode(DATA,OUTPUT);
  pinMode(10,INPUT);       // кнопка энкодера MUTE   
  delay(100);
  vol = EEPROM.read(0);
  LM1972Write(0, vol);
  LM1972Write(1, vol); 
}

void loop() {
   /// MUTE ///////////////////////////////////////
   if(digitalRead(10)==LOW&amp;&amp;mute==0){mute=1;vol_old = vol;lcd.clear();lcd.setCursor(0,0);lcd.print(&quot;      MUTE   &quot;);
   LM1972Write(0, 255);
   LM1972Write(1, 255);
   delay(300);}
   if(digitalRead(10)==LOW&amp;&amp;mute==1){mute=0;vol=vol_old;lcd.clear();w1=1;
   LM1972Write(0, vol); 
   LM1972Write(1, vol); 
   delay(300);}
 
   /////////////// VOLUME /////////////////////////////////////////////////////////
   if(mute==0){
   if (newPosition != oldPosition&amp;&amp;mute==0){oldPosition = newPosition;
   vol=vol-newPosition;myEnc.write(0);newPosition=0;times=millis();w=1;w1=1;vol_func();
   LM1972Write(0, vol); 
   LM1972Write(1, vol); 
   } 
   vol_d=map(vol,0,126,0,45);
   if(w1==1){
   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);}w1=0;}
 
     lcd.setCursor(0,0);lcd.print(&quot;VOLUME    &quot;);
     lcd.print(vol);lcd.print(&quot; &quot;);
   } 


 //////// EEPROM //////////////////////////////////////////////////
  if(millis()-times&gt;10000 &amp;&amp; w==1 &amp;&amp; mute == 0){EEPROM.update(0,vol);w=0;w1=1;lcd.clear();}
}
void to_Timer(){newPosition = myEnc.read()/4;}
void vol_func(){if(vol&lt;0){vol=0;}if(vol&gt;126){vol=126;}}
void LM1972Write(byte ch, byte att){  
  digitalWrite(CLK,LOW);delay(1);digitalWrite(CS,LOW);
     for(int i = 7; i &gt;= 0; i--){
        digitalWrite(DATA, (ch &gt;&gt; i) &amp; 0x01);
        digitalWrite(CLK,HIGH);digitalWrite(CLK,LOW);}
     for(int i = 7; i &gt;= 0; i--){
        digitalWrite(DATA, (att &gt;&gt; i) &amp; 0x01);
        digitalWrite(CLK,HIGH);digitalWrite(CLK,LOW);}
        digitalWrite(CS,HIGH);delay(1);
        }</code></pre></div>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2020-12-16T15:57:38Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=2690#p2690</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: LM1972]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=2689#p2689" />
			<content type="html"><![CDATA[<p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2020/12/16bf7f07773db6cf02c61bbab9c9c521.png" alt="http://forum.rcl-radio.ru/uploads/images/2020/12/16bf7f07773db6cf02c61bbab9c9c521.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2020/12/03c2f716120c586f48aec1f36ddd427d.png" alt="http://forum.rcl-radio.ru/uploads/images/2020/12/03c2f716120c586f48aec1f36ddd427d.png" /></span> <br /><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2020/12/96897ebc1032f2aacafe50c0a2658e48.png" alt="http://forum.rcl-radio.ru/uploads/images/2020/12/96897ebc1032f2aacafe50c0a2658e48.png" /></span> <br /><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2020/12/c6e4f6e83dca2f1b8ec5d2bcaf5e1bc5.png" alt="http://forum.rcl-radio.ru/uploads/images/2020/12/c6e4f6e83dca2f1b8ec5d2bcaf5e1bc5.png" /></span></p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2020-12-16T15:30:08Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=2689#p2689</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[LM1972]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=2687#p2687" />
			<content type="html"><![CDATA[<p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2020/12/49f03937b1c266f1ef2f47e657b453fa.png" alt="http://forum.rcl-radio.ru/uploads/images/2020/12/49f03937b1c266f1ef2f47e657b453fa.png" /></span> </p><div class="codebox"><pre><code>#define CS    2  // LOAD PIN 10  LM1972
#define CLK   3  // SCLK PIN 9   LM1972
#define DATA  4  // DATA PIN 11  LM1972

void setup() {
  Serial.begin(9600);
  pinMode(CS,OUTPUT);
  pinMode(CLK,OUTPUT);
  pinMode(DATA,OUTPUT);
  delay(100);
}

void loop() {
delay(1000);
  LM1972Write(0, 255); // CH0 , 0dB
  LM1972Write(1, 255); // CH1 , 0dB
  // channel 0 = 0x00, 1 = 0x01
  // att = 0dB...-78dB = int 0...126 (0...-48 step 0.5dB, -48...-78 step 1dB) /// int 255 = MUTE
}

void LM1972Write(byte ch, byte att){  
  digitalWrite(CLK,LOW);delay(1);digitalWrite(CS,LOW);
     for(int i = 7; i &gt;= 0; i--){
        digitalWrite(DATA, (ch &gt;&gt; i) &amp; 0x01);
        digitalWrite(CLK,HIGH);digitalWrite(CLK,LOW);}
     for(int i = 7; i &gt;= 0; i--){
        digitalWrite(DATA, (att &gt;&gt; i) &amp; 0x01);
        digitalWrite(CLK,HIGH);digitalWrite(CLK,LOW);}
        digitalWrite(CS,HIGH);delay(1);}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2020-12-14T15:27:43Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=2687#p2687</id>
		</entry>
</feed>
