<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[forum.rcl-radio.ru &mdash; Импульсный генератор + частотомер (Arduino)]]></title>
	<link rel="self" href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=579&amp;type=atom" />
	<updated>2023-09-20T18:15:29Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.rcl-radio.ru/viewtopic.php?id=579</id>
		<entry>
			<title type="html"><![CDATA[Re: Импульсный генератор + частотомер (Arduino)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=8666#p8666" />
			<content type="html"><![CDATA[<p>спасибо за ответ</p>]]></content>
			<author>
				<name><![CDATA[sabicoha]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2175</uri>
			</author>
			<updated>2023-09-20T18:15:29Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=8666#p8666</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Импульсный генератор + частотомер (Arduino)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=8665#p8665" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>если можно то и в генераторе задавать частоту в герцах</p></blockquote></div><p>Не получится, библиотека позволяет задавать только период.</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2023-09-20T16:55:18Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=8665#p8665</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Импульсный генератор + частотомер (Arduino)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=8664#p8664" />
			<content type="html"><![CDATA[<p>Спасибо в частотомере поменялось</p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/09/fb399557d30fea9a3883ea25fcc6d3b2.jpg" alt="http://forum.rcl-radio.ru/uploads/images/2023/09/fb399557d30fea9a3883ea25fcc6d3b2.jpg" /></span> <br />если можно то и в генераторе задавать частоту в герцах<span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/09/e168fee65ef2d6f9c76ef1409e4f072e.jpg" alt="http://forum.rcl-radio.ru/uploads/images/2023/09/e168fee65ef2d6f9c76ef1409e4f072e.jpg" /></span></p>]]></content>
			<author>
				<name><![CDATA[sabicoha]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2175</uri>
			</author>
			<updated>2023-09-20T16:52:57Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=8664#p8664</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Импульсный генератор + частотомер (Arduino)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=8663#p8663" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>#include &lt;LiquidCrystal_I2C.h&gt;  // http://forum.rcl-radio.ru/misc.php?action=pan_download&amp;item=45&amp;download=1
//#include &lt;LiquidCrystal.h&gt;
#include &lt;Encoder.h&gt;
#include &lt;TimerOne.h&gt;
#include &lt;FreqCount.h&gt;
//LiquidCrystal lcd(6, 7, 8, 11, 12, 13);// RS,E,D4,D5,D6,D7
LiquidCrystal_I2C lcd(0x27,16,2);
Encoder myEnc(2, 3);// CLK, DT
 
void setup() {
  pinMode(4,INPUT); // КНОПКА ЭНКОДЕРА
  pinMode(A0,INPUT_PULLUP); // КНОПКА ПРИНУДИТЕЛЬНОГО ВКЛЮЧЕНИЯ ГЕНЕРАЦИИ
  pinMode(A1,INPUT_PULLUP); // ЧАСТОТОМЕР/ГЕНЕРАТОР
  //lcd.begin(16, 2);// LCD 16X2
  lcd.init();lcd.backlight();
}
 
unsigned long f_sum,time;
long f[8]{0,0,0,0,0,0,0,512};
int i,x,y,cursor,h_g;
long oldPosition  = -999,newPosition;
float t;
const float popravka = 1.0004502;// поправочный коэффициент для повышения точности генератора (если нет эталона то коэффициент = 1.0000000)

unsigned long f_0;float f0;
int x1,n=3,r;
 
void loop() {
  if(digitalRead(A1)==LOW){h_g++;y=0;delay(300);if(h_g&gt;1){h_g=0;}}// ГЕНЕРАТОР/ЧАСТОТОМЕР (ПО УМОЛЧАНИЮ ПЕРВЫЙ ГЕНЕРАТОР)
 
  if(h_g==1){ i=0; // ЧАСТОТОМЕР ////////////////////////////////////////////////////////////////////
  if(y==1){FreqCount.begin(1000);}
 
  if(digitalRead(4)==LOW){n++;x1=0;delay(100);}// ВЫБОР ВРЕМЕНИ ИЗМЕРЕНИЯ ПРИ ПОМОЩИ КНОПКИ ЭНКОДЕРА
    lcd.setCursor(0,1);
  if(n==1){x1++;if(x1==1){FreqCount.begin(100);}r=-1;lcd.print(&quot;T = 0.1 s &quot;);}
  if(n==2){x1++;if(x1==1){FreqCount.begin(10000);}r=1;lcd.print(&quot;T = 10 s &quot;);}
  if(n==3){x1++;if(x1==1){FreqCount.begin(1000);}r=0;lcd.print(&quot;T = 1 s  &quot;);}
  if(n&gt;3){n=1;} 
    lcd.setCursor(0,0);
    lcd.print(&quot;F = &quot;); // ВЫВОД ЧАСТОТЫ 

  if(n==3){f0=f_0;lcd.print(f0,0);lcd.print(&quot; Hz&quot;);}

  if(n==1){f0=f_0*1000/100.0;lcd.print(f0,0);lcd.print(&quot; Hz&quot;);}

  if(n==2){f0=f_0*1000/10000.0;lcd.print(f0,0);lcd.print(&quot; Hz&quot;);}
  

  if (FreqCount.available()) { 
 
    f_0 = FreqCount.read(); // ИЗМЕРЕНИЕ ЧАСТОТЫ
 
   lcd.setCursor(10,1);lcd.print(&quot;***&quot;);// ИНДИКАЦИЯ ИЗМЕРЕНИЯ
  }
   delay(200);
   lcd.clear();
}
 
  if(h_g==0){// ГЕНЕРАТОР //////////////////////////////////////////////////////////////////
 
   if(i==8){   lcd.setCursor(10,1); lcd.print(&quot;ON &quot;);// ГЕНЕРАЦИЯ ВКЛЮЧЕНА
   if(y==1){ Timer1.initialize(f_sum * popravka); // период  - запускаем только один раз после выхода из режима изминения параметров 
   Timer1.pwm(9, f[7]);} // k - коэффициет заполнения 0-1023. Сигнал снимаем с выхода 9
   delay(100);
 }
 
  if(digitalRead(4)==LOW){delay(300);i++;if(i&gt;8){i=0;} myEnc.write(f[i]*4);// ОПРОС КНОПКИ ЭНКОДЕРА
  if(i==8){y=0;cursor=0;}}
  if(digitalRead(A0)==LOW){delay(300);i=8;y=0;}// КНОПКА ПРИНУДИТЕЛЬНОГО ВКЛЮЧЕНИЯ ГЕНЕРАЦИИ
 
  if(i&lt;8||cursor==1){ // В РЕЖИМЕ ИЗМИНЕНИЯ ПЕРИОДА И ЗАПОЛНЕНИЯ ШИМ ГЕНЕРАЦИЯ ОТКЛЮЧЕНА
  lcd.setCursor(10,1); lcd.print(&quot;OFF&quot;);// ГЕНЕРАЦИЯ ВЫКЛЮЧЕНА
  Timer1.pwm(9, 0);
 long newPosition = myEnc.read()/4; // ОПРОС ЭНКОДЕРА
 
  if (newPosition != oldPosition) {
    oldPosition = newPosition;
    f[i]=newPosition;
 
    if(i&lt;7){ // ОГРАНИЧЕНИЕ ПРИ ИЗМИНЕНИИ ПЕРИОДА ОТ 0 ДО 9
    if(f[i]&gt;9){myEnc.write(0);}
    if(f[i]&lt;0){myEnc.write(9*4);}}
    else{// ОГРАНИЧЕНИЕ ПРИ ИЗМИНЕНИИ ЗАПОЛНЕНИЯ ШИМ ОТ 0 ДО 1023
    if(f[7]&gt;1023){f[7]=1023;}
    if(f[7]&lt;0){f[7]=0;}}
  }
   f_sum=f[6]*1000000+f[5]*100000+f[4]*10000+f[3]*1000+f[2]*100+f[1]*10+f[0];// ПЕРИОД
   lcd.setCursor(0,0);// ВЫВОД ИНФОРМАЦИИ НА LCD 
   lcd.print(&quot;T = &quot;);
   for(x=6;x&gt;=0;x--){
   if(x==5||x==2){lcd.print(&quot;.&quot;);}// ВСАВЛЯЕМ РАЗДЕЛИТЬ РАЗРЯДА
   if(cursor==1&amp;&amp;i==x){lcd.print(&quot; &quot;);}else{lcd.print(f[x]);}
   }
   lcd.print(&quot; uS &quot;);
 
     // МИГАНИЕ КУРСОРА ПРИ ИЗМИНЕНИИ ПАРАМЕТРОВ 
 
   if(millis()-time&lt;200){cursor=1;}// 200 МС ПРОБЕЗ ВМЕСТО ЦИФРЫ
   if(millis()-time&gt;200){cursor=0;}// 800 МС ПОКАЗЫВАЕМ ЦИФРУ
   if(millis()-time&gt;1000){time=millis();}// ОТСЧЕТ 1 СЕКУНДЫ
  }
 
   // ВЫВОД НА LCD % ЗАПОНЕНИЯ ШИМ
   t=f[7]*100.0/1023;
   lcd.setCursor(0,1);lcd.print(t,1);if(cursor==1&amp;&amp;i==7){lcd.print(&quot;    &quot;);}else{ lcd.print(&quot; %   &quot;);}
  }
y++;
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2023-09-20T13:53:03Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=8663#p8663</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Импульсный генератор + частотомер (Arduino)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=8662#p8662" />
			<content type="html"><![CDATA[<p>проверил на плате&nbsp; скетч на LCD1602_I2C и кнопки &gt; нажатие кнопки === замыкание на землю, без резисторов все работает.А реально&nbsp; задавать генератору&nbsp; частоту в герцах и чтоб на экран выводилась частота генератора в герцах</p>]]></content>
			<author>
				<name><![CDATA[sabicoha]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2175</uri>
			</author>
			<updated>2023-09-19T19:39:43Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=8662#p8662</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Импульсный генератор + частотомер (Arduino)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=8661#p8661" />
			<content type="html"><![CDATA[<p>Что бы ни чего не менять, в Вашем скетче после строки:<br />&nbsp; lcd.setCursor(10,1); lcd.print(&quot;OFF&quot;);// ГЕНЕРАЦИЯ ВЫКЛЮЧЕНА<br />добавить:<br />&nbsp; Timer1.pwm(9, 0);&nbsp; &nbsp; &nbsp; &nbsp;Добавил все прекрасно заработало спасибо. Скетч&nbsp; LCD1602_I2C и кнопки &gt; нажатие кнопки === замыкание на землю, без резисторов я так понял тоже генератор+частотомер только экран подключаем на 4 провода + - а5 а4 тогда эта строчка //LiquidCrystal lcd(6, 7, 8, 11, 12, 13);// RS,E,D4,D5,D6,D7&nbsp; нужна ?</p>]]></content>
			<author>
				<name><![CDATA[sabicoha]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2175</uri>
			</author>
			<updated>2023-09-19T19:28:58Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=8661#p8661</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Импульсный генератор + частотомер (Arduino)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=8646#p8646" />
			<content type="html"><![CDATA[<p>При генерации импульсов, при нажатии кнопки энкодера или кнопки генератор/частотомер генерация отключается.</p><p>Ниже опубликован скетч, он&nbsp; LCD1602_I2C и кнопки &gt; нажатие кнопки === замыкание на землю, без резисторов</p><p>Что бы ни чего не менять, в Вашем скетче после строки:<br />&nbsp; lcd.setCursor(10,1); lcd.print(&quot;OFF&quot;);// ГЕНЕРАЦИЯ ВЫКЛЮЧЕНА<br />добавить:<br />&nbsp; Timer1.pwm(9, 0);&nbsp; </p><br /><br /><div class="codebox"><pre><code>#include &lt;LiquidCrystal_I2C.h&gt;  // http://forum.rcl-radio.ru/misc.php?action=pan_download&amp;item=45&amp;download=1
//#include &lt;LiquidCrystal.h&gt;
#include &lt;Encoder.h&gt;
#include &lt;TimerOne.h&gt;
#include &lt;FreqCount.h&gt;
//LiquidCrystal lcd(6, 7, 8, 11, 12, 13);// RS,E,D4,D5,D6,D7
LiquidCrystal_I2C lcd(0x27,16,2);
Encoder myEnc(2, 3);// CLK, DT
 
void setup() {
  pinMode(4,INPUT); // КНОПКА ЭНКОДЕРА
  pinMode(A0,INPUT_PULLUP); // КНОПКА ПРИНУДИТЕЛЬНОГО ВКЛЮЧЕНИЯ ГЕНЕРАЦИИ
  pinMode(A1,INPUT_PULLUP); // ЧАСТОТОМЕР/ГЕНЕРАТОР
  //lcd.begin(16, 2);// LCD 16X2
  lcd.init();lcd.backlight();
}
 
unsigned long f_sum,time;
long f[8]{0,0,0,0,0,0,0,512};
int i,x,y,cursor,h_g;
long oldPosition  = -999,newPosition;
float t;
const float popravka = 1.0004502;// поправочный коэффициент для повышения точности генератора (если нет эталона то коэффициент = 1.0000000)

unsigned long f_0;float f0;
int x1,n=3,r;
 
void loop() {
  if(digitalRead(A1)==LOW){h_g++;y=0;delay(300);if(h_g&gt;1){h_g=0;}}// ГЕНЕРАТОР/ЧАСТОТОМЕР (ПО УМОЛЧАНИЮ ПЕРВЫЙ ГЕНЕРАТОР)
 
  if(h_g==1){ i=0; // ЧАСТОТОМЕР ////////////////////////////////////////////////////////////////////
  if(y==1){FreqCount.begin(1000);}
 
  if(digitalRead(4)==LOW){n++;x1=0;delay(100);}// ВЫБОР ВРЕМЕНИ ИЗМЕРЕНИЯ ПРИ ПОМОЩИ КНОПКИ ЭНКОДЕРА
    lcd.setCursor(0,1);
  if(n==1){x1++;if(x1==1){FreqCount.begin(100);}r=-1;lcd.print(&quot;T = 0.1 s &quot;);}
  if(n==2){x1++;if(x1==1){FreqCount.begin(10000);}r=1;lcd.print(&quot;T = 10 s &quot;);}
  if(n==3){x1++;if(x1==1){FreqCount.begin(1000);}r=0;lcd.print(&quot;T = 1 s  &quot;);}
  if(n&gt;3){n=1;} 
    lcd.setCursor(0,0);
    lcd.print(&quot;F = &quot;); // ВЫВОД ЧАСТОТЫ 
  if(f_0&gt;=1000000 &amp;&amp; n==3){f0=f_0/1000000.0;lcd.print(f0,6+r);lcd.print(&quot; MHz&quot;);}
  if(f_0&lt;1000000 &amp;&amp; n==3){f0=f_0/1000.0;lcd.print(f0,3+r);lcd.print(&quot; kHz&quot;);}
  if(f_0&gt;=100000 &amp;&amp; n==1){f0=f_0/100000.0;lcd.print(f0,6+r);lcd.print(&quot; MHz&quot;);}
  if(f_0&lt;100000 &amp;&amp; n==1){f0=f_0/100.0;lcd.print(f0,3+r);lcd.print(&quot; kHz&quot;);}
  if(f_0&gt;=10000000 &amp;&amp; n==2){f0=f_0/10000000.0;lcd.print(f0,6+r);lcd.print(&quot;MHz&quot;);}
  if(f_0&lt;10000000 &amp;&amp; n==2){f0=f_0/10000.0;lcd.print(f0,3+r);lcd.print(&quot; kHz&quot;);}
  

  if (FreqCount.available()) { 
 
    f_0 = FreqCount.read(); // ИЗМЕРЕНИЕ ЧАСТОТЫ
 
   lcd.setCursor(10,1);lcd.print(&quot;***&quot;);// ИНДИКАЦИЯ ИЗМЕРЕНИЯ
  }
   delay(200);
   lcd.clear();
}
 
  if(h_g==0){// ГЕНЕРАТОР //////////////////////////////////////////////////////////////////
 
   if(i==8){   lcd.setCursor(10,1); lcd.print(&quot;ON &quot;);// ГЕНЕРАЦИЯ ВКЛЮЧЕНА
   if(y==1){ Timer1.initialize(f_sum * popravka); // период  - запускаем только один раз после выхода из режима изминения параметров 
   Timer1.pwm(9, f[7]);} // k - коэффициет заполнения 0-1023. Сигнал снимаем с выхода 9
   delay(100);
 }
 
  if(digitalRead(4)==LOW){delay(300);i++;if(i&gt;8){i=0;} myEnc.write(f[i]*4);// ОПРОС КНОПКИ ЭНКОДЕРА
  if(i==8){y=0;cursor=0;}}
  if(digitalRead(A0)==LOW){delay(300);i=8;y=0;}// КНОПКА ПРИНУДИТЕЛЬНОГО ВКЛЮЧЕНИЯ ГЕНЕРАЦИИ
 
  if(i&lt;8||cursor==1){ // В РЕЖИМЕ ИЗМИНЕНИЯ ПЕРИОДА И ЗАПОЛНЕНИЯ ШИМ ГЕНЕРАЦИЯ ОТКЛЮЧЕНА
  lcd.setCursor(10,1); lcd.print(&quot;OFF&quot;);// ГЕНЕРАЦИЯ ВЫКЛЮЧЕНА
  Timer1.pwm(9, 0);
 long newPosition = myEnc.read()/4; // ОПРОС ЭНКОДЕРА
 
  if (newPosition != oldPosition) {
    oldPosition = newPosition;
    f[i]=newPosition;
 
    if(i&lt;7){ // ОГРАНИЧЕНИЕ ПРИ ИЗМИНЕНИИ ПЕРИОДА ОТ 0 ДО 9
    if(f[i]&gt;9){myEnc.write(0);}
    if(f[i]&lt;0){myEnc.write(9*4);}}
    else{// ОГРАНИЧЕНИЕ ПРИ ИЗМИНЕНИИ ЗАПОЛНЕНИЯ ШИМ ОТ 0 ДО 1023
    if(f[7]&gt;1023){f[7]=1023;}
    if(f[7]&lt;0){f[7]=0;}}
  }
   f_sum=f[6]*1000000+f[5]*100000+f[4]*10000+f[3]*1000+f[2]*100+f[1]*10+f[0];// ПЕРИОД
   lcd.setCursor(0,0);// ВЫВОД ИНФОРМАЦИИ НА LCD 
   lcd.print(&quot;T = &quot;);
   for(x=6;x&gt;=0;x--){
   if(x==5||x==2){lcd.print(&quot;.&quot;);}// ВСАВЛЯЕМ РАЗДЕЛИТЬ РАЗРЯДА
   if(cursor==1&amp;&amp;i==x){lcd.print(&quot; &quot;);}else{lcd.print(f[x]);}
   }
   lcd.print(&quot; uS &quot;);
 
     // МИГАНИЕ КУРСОРА ПРИ ИЗМИНЕНИИ ПАРАМЕТРОВ 
 
   if(millis()-time&lt;200){cursor=1;}// 200 МС ПРОБЕЗ ВМЕСТО ЦИФРЫ
   if(millis()-time&gt;200){cursor=0;}// 800 МС ПОКАЗЫВАЕМ ЦИФРУ
   if(millis()-time&gt;1000){time=millis();}// ОТСЧЕТ 1 СЕКУНДЫ
  }
 
   // ВЫВОД НА LCD % ЗАПОНЕНИЯ ШИМ
   t=f[7]*100.0/1023;
   lcd.setCursor(0,1);lcd.print(t,1);if(cursor==1&amp;&amp;i==7){lcd.print(&quot;    &quot;);}else{ lcd.print(&quot; %   &quot;);}
  }
y++;
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2023-09-19T13:27:47Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=8646#p8646</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Импульсный генератор + частотомер (Arduino)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=8644#p8644" />
			<content type="html"><![CDATA[<p>Изменение длительности импульсов и скважности происходит при помощи энкодера, при нажатии на кнопку энкодера начнет мигать курсор в самом младшем разряде, при помощи ручки энкодера можно установить значение от 0 до 9, при повторном нажатии кнопки энкодера курсор перемещается на следующий разряд и так далее, до регулировки скважности, если нажать кнопку энкодера еще раз, то включится режим генерации и на экране LCD индикатора появится надпись «ON»если нажать еще раз&nbsp; на экране LCD индикатора появится надпись «OFF» а режим генерации не прекращается.прекращается&nbsp; при нажатии кнопки&nbsp; «генер./част.»</p>]]></content>
			<author>
				<name><![CDATA[sabicoha]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2175</uri>
			</author>
			<updated>2023-09-18T18:27:55Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=8644#p8644</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Импульсный генератор + частотомер (Arduino)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=8643#p8643" />
			<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>2023-09-18T17:51:40Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=8643#p8643</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Импульсный генератор + частотомер (Arduino)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=8642#p8642" />
			<content type="html"><![CDATA[<p>энкодер работает с кнопкой понять бы</p>]]></content>
			<author>
				<name><![CDATA[sabicoha]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2175</uri>
			</author>
			<updated>2023-09-18T17:34:30Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=8642#p8642</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Импульсный генератор + частотомер (Arduino)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=8641#p8641" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>#include &lt;LiquidCrystal.h&gt;
#include &lt;Encoder.h&gt;
#include &lt;TimerOne.h&gt;
#include &lt;FreqCount.h&gt;
LiquidCrystal lcd(6, 7, 8, 11, 12, 13);// RS,E,D4,D5,D6,D7
Encoder myEnc(2, 3);// CLK, DT
 
void setup() {
  pinMode(4,INPUT); // КНОПКА ЭНКОДЕРА
  pinMode(A5,INPUT); // КНОПКА ПРИНУДИТЕЛЬНОГО ВКЛЮЧЕНИЯ ГЕНЕРАЦИИ
  pinMode(A4,INPUT); // ЧАСТОТОМЕР/ГЕНЕРАТОР
  lcd.begin(16, 2);// LCD 16X2
}
 
unsigned long f_sum,time;
long f[8]{0,0,0,0,0,0,0,512};
int i,x,y,cursor,h_g;
long oldPosition  = -999,newPosition;
float t;
const float popravka = 1.0004502;// поправочный коэффициент для повышения точности генератора (если нет эталона то коэффициент = 1.0000000)

unsigned long f_0;float f0;
int x1,n=3,r;
 
void loop() {
  if(digitalRead(A4)==HIGH){h_g++;y=0;delay(300);if(h_g&gt;1){h_g=0;}}// ГЕНЕРАТОР/ЧАСТОТОМЕР (ПО УМОЛЧАНИЮ ПЕРВЫЙ ГЕНЕРАТОР)
 
  if(h_g==1){ i=0; // ЧАСТОТОМЕР ////////////////////////////////////////////////////////////////////
  if(y==1){FreqCount.begin(1000);}
 
  if(digitalRead(4)==LOW){n++;x1=0;delay(100);}// ВЫБОР ВРЕМЕНИ ИЗМЕРЕНИЯ ПРИ ПОМОЩИ КНОПКИ ЭНКОДЕРА
    lcd.setCursor(0,1);
  if(n==1){x1++;if(x1==1){FreqCount.begin(100);}r=-1;lcd.print(&quot;T = 0.1 s &quot;);}
  if(n==2){x1++;if(x1==1){FreqCount.begin(10000);}r=1;lcd.print(&quot;T = 10 s &quot;);}
  if(n==3){x1++;if(x1==1){FreqCount.begin(1000);}r=0;lcd.print(&quot;T = 1 s  &quot;);}
  if(n&gt;3){n=1;} 
    lcd.setCursor(0,0);
    lcd.print(&quot;F = &quot;); // ВЫВОД ЧАСТОТЫ 
  if(f_0&gt;=1000000 &amp;&amp; n==3){f0=f_0/1000000.0;lcd.print(f0,6+r);lcd.print(&quot; MHz&quot;);}
  if(f_0&lt;1000000 &amp;&amp; n==3){f0=f_0/1000.0;lcd.print(f0,3+r);lcd.print(&quot; kHz&quot;);}
  if(f_0&gt;=100000 &amp;&amp; n==1){f0=f_0/100000.0;lcd.print(f0,6+r);lcd.print(&quot; MHz&quot;);}
  if(f_0&lt;100000 &amp;&amp; n==1){f0=f_0/100.0;lcd.print(f0,3+r);lcd.print(&quot; kHz&quot;);}
  if(f_0&gt;=10000000 &amp;&amp; n==2){f0=f_0/10000000.0;lcd.print(f0,6+r);lcd.print(&quot;MHz&quot;);}
  if(f_0&lt;10000000 &amp;&amp; n==2){f0=f_0/10000.0;lcd.print(f0,3+r);lcd.print(&quot; kHz&quot;);}
  

  if (FreqCount.available()) { 
 
    f_0 = FreqCount.read(); // ИЗМЕРЕНИЕ ЧАСТОТЫ
 
   lcd.setCursor(10,1);lcd.print(&quot;***&quot;);// ИНДИКАЦИЯ ИЗМЕРЕНИЯ
  }
   delay(200);
   lcd.clear();
}
 
  if(h_g==0){// ГЕНЕРАТОР //////////////////////////////////////////////////////////////////
 
   if(i==8){   lcd.setCursor(10,1); lcd.print(&quot;ON &quot;);// ГЕНЕРАЦИЯ ВКЛЮЧЕНА
   if(y==1){ Timer1.initialize(f_sum * popravka); // период  - запускаем только один раз после выхода из режима изминения параметров 
   Timer1.pwm(9, f[7]);} // k - коэффициет заполнения 0-1023. Сигнал снимаем с выхода 9
   delay(100);
 }
 
  if(digitalRead(4)==LOW){delay(300);i++;if(i&gt;8){i=0;} myEnc.write(f[i]*4);// ОПРОС КНОПКИ ЭНКОДЕРА
  if(i==8){y=0;cursor=0;}}
  if(digitalRead(A5)==HIGH){delay(300);i=8;y=0;}// КНОПКА ПРИНУДИТЕЛЬНОГО ВКЛЮЧЕНИЯ ГЕНЕРАЦИИ
 
  if(i&lt;8||cursor==1){ // В РЕЖИМЕ ИЗМИНЕНИЯ ПЕРИОДА И ЗАОЛНЕНИЯ ШИМ ГЕНЕРАЦИЯ ОТКЛЮЧЕНА
  lcd.setCursor(10,1); lcd.print(&quot;OFF&quot;);// ГЕНЕРАЦИЯ ВЫКЛЮЧЕНА
 
 long newPosition = myEnc.read()/4; // ОПРОС ЭНКОДЕРА
 
  if (newPosition != oldPosition) {
    oldPosition = newPosition;
    f[i]=newPosition;
 
    if(i&lt;7){ // ОГРАНИЧЕНИЕ ПРИ ИЗМИНЕНИИ ПЕРИОДА ОТ 0 ДО 9
    if(f[i]&gt;9){myEnc.write(0);}
    if(f[i]&lt;0){myEnc.write(9*4);}}
    else{// ОГРАНИЧЕНИЕ ПРИ ИЗМИНЕНИИ ЗАПОЛНЕНИЯ ШИМ ОТ 0 ДО 1023
    if(f[7]&gt;1023){f[7]=1023;}
    if(f[7]&lt;0){f[7]=0;}}
  }
   f_sum=f[6]*1000000+f[5]*100000+f[4]*10000+f[3]*1000+f[2]*100+f[1]*10+f[0];// ПЕРИОД
   lcd.setCursor(0,0);// ВЫВОД ИНФОРМАЦИИ НА LCD 
   lcd.print(&quot;T = &quot;);
   for(x=6;x&gt;=0;x--){
   if(x==5||x==2){lcd.print(&quot;.&quot;);}// ВСАВЛЯЕМ РАЗДЕЛИТЬ РАЗРЯДА
   if(cursor==1&amp;&amp;i==x){lcd.print(&quot; &quot;);}else{lcd.print(f[x]);}
   }
   lcd.print(&quot; uS&quot;);
 
     // МИГАНИЕ КУРСОРА ПРИ ИЗМИНЕНИИ ПАРАМЕТРОВ 
 
   if(millis()-time&lt;200){cursor=1;}// 200 МС ПРОБЕЗ ВМЕСТО ЦИФРЫ
   if(millis()-time&gt;200){cursor=0;}// 800 МС ПОКАЗЫВАЕМ ЦИФРУ
   if(millis()-time&gt;1000){time=millis();}// ОТСЧЕТ 1 СЕКУНДЫ
  }
 
   // ВЫВОД НА LCD % ЗАПОНЕНИЯ ШИМ
   t=f[7]*100.0/1023;
   lcd.setCursor(0,1);lcd.print(t,1);if(cursor==1&amp;&amp;i==7){lcd.print(&quot;    &quot;);}else{ lcd.print(&quot; %   &quot;);}
  }
y++;
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2023-09-18T17:20:04Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=8641#p8641</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Импульсный генератор + частотомер (Arduino)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=8640#p8640" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>#include &lt;LiquidCrystal.h&gt;
#include &lt;Encoder.h&gt;
#include &lt;TimerOne.h&gt;
#include &lt;FreqCount.h&gt;
LiquidCrystal lcd(6, 7, 8, 11, 12, 13);// RS,E,D4,D5,D6,D7
Encoder myEnc(2, 3);// CLK, DT
 
void setup() {
  pinMode(4,INPUT); // КНОПКА ЭНКОДЕРА
  pinMode(A5,INPUT); // КНОПКА ПРИНУДИТЕЛЬНОГО ВКЛЮЧЕНИЯ ГЕНЕРАЦИИ
  pinMode(A4,INPUT); // ЧАСТОТОМЕР/ГЕНЕРАТОР
  lcd.begin(16, 2);// LCD 16X2
}
 
unsigned long f_sum,time;
long f[8]{0,0,0,0,0,0,0,512};
int i,x,y,cursor,h_g;
long oldPosition  = -999,newPosition;
float t;
const float popravka = 1.0004502;// поправочный коэффициент для повышения точности генератора (если нет эталона то коэффициент = 1.0000000)

unsigned long f_0;float f0;
int x1,n=3,r;
 
void loop() {
  if(analogRead(4)&gt;600){h_g++;y=0;delay(300);if(h_g&gt;1){h_g=0;}}// ГЕНЕРАТОР/ЧАСТОТОМЕР (ПО УМОЛЧАНИЮ ПЕРВЫЙ ГЕНЕРАТОР)
 
  if(h_g==1){ i=0; // ЧАСТОТОМЕР ////////////////////////////////////////////////////////////////////
  if(y==1){FreqCount.begin(1000);}
 
  if(digitalRead(4)==LOW){n++;x1=0;delay(100);}// ВЫБОР ВРЕМЕНИ ИЗМЕРЕНИЯ ПРИ ПОМОЩИ КНОПКИ ЭНКОДЕРА
    lcd.setCursor(0,1);
  if(n==1){x1++;if(x1==1){FreqCount.begin(100);}r=-1;lcd.print(&quot;T = 0.1 s &quot;);}
  if(n==2){x1++;if(x1==1){FreqCount.begin(10000);}r=1;lcd.print(&quot;T = 10 s &quot;);}
  if(n==3){x1++;if(x1==1){FreqCount.begin(1000);}r=0;lcd.print(&quot;T = 1 s  &quot;);}
  if(n&gt;3){n=1;} 
    lcd.setCursor(0,0);
    lcd.print(&quot;F = &quot;); // ВЫВОД ЧАСТОТЫ 
  if(f_0&gt;=1000000 &amp;&amp; n==3){f0=f_0/1000000.0;lcd.print(f0,6+r);lcd.print(&quot; MHz&quot;);}
  if(f_0&lt;1000000 &amp;&amp; n==3){f0=f_0/1000.0;lcd.print(f0,3+r);lcd.print(&quot; kHz&quot;);}
  if(f_0&gt;=100000 &amp;&amp; n==1){f0=f_0/100000.0;lcd.print(f0,6+r);lcd.print(&quot; MHz&quot;);}
  if(f_0&lt;100000 &amp;&amp; n==1){f0=f_0/100.0;lcd.print(f0,3+r);lcd.print(&quot; kHz&quot;);}
  if(f_0&gt;=10000000 &amp;&amp; n==2){f0=f_0/10000000.0;lcd.print(f0,6+r);lcd.print(&quot;MHz&quot;);}
  if(f_0&lt;10000000 &amp;&amp; n==2){f0=f_0/10000.0;lcd.print(f0,3+r);lcd.print(&quot; kHz&quot;);}
  

  if (FreqCount.available()) { 
 
    f_0 = FreqCount.read(); // ИЗМЕРЕНИЕ ЧАСТОТЫ
 
   lcd.setCursor(10,1);lcd.print(&quot;***&quot;);// ИНДИКАЦИЯ ИЗМЕРЕНИЯ
  }
   delay(200);
   lcd.clear();
}
 
  if(h_g==0){// ГЕНЕРАТОР //////////////////////////////////////////////////////////////////
 
   if(i==8){   lcd.setCursor(10,1); lcd.print(&quot;ON &quot;);// ГЕНЕРАЦИЯ ВКЛЮЧЕНА
   if(y==1){ Timer1.initialize(f_sum * popravka); // период  - запускаем только один раз после выхода из режима изминения параметров 
   Timer1.pwm(9, f[7]);} // k - коэффициет заполнения 0-1023. Сигнал снимаем с выхода 9
   delay(100);
 }
 
  if(digitalRead(4)==LOW){delay(300);i++;if(i&gt;8){i=0;} myEnc.write(f[i]*4);// ОПРОС КНОПКИ ЭНКОДЕРА
  if(i==8){y=0;cursor=0;}}
  if(analogRead(5)&gt;600){delay(300);i=8;y=0;}// КНОПКА ПРИНУДИТЕЛЬНОГО ВКЛЮЧЕНИЯ ГЕНЕРАЦИИ
 
  if(i&lt;8||cursor==1){ // В РЕЖИМЕ ИЗМИНЕНИЯ ПЕРИОДА И ЗАОЛНЕНИЯ ШИМ ГЕНЕРАЦИЯ ОТКЛЮЧЕНА
  lcd.setCursor(10,1); lcd.print(&quot;OFF&quot;);// ГЕНЕРАЦИЯ ВЫКЛЮЧЕНА
 
 long newPosition = myEnc.read()/4; // ОПРОС ЭНКОДЕРА
 
  if (newPosition != oldPosition) {
    oldPosition = newPosition;
    f[i]=newPosition;
 
    if(i&lt;7){ // ОГРАНИЧЕНИЕ ПРИ ИЗМИНЕНИИ ПЕРИОДА ОТ 0 ДО 9
    if(f[i]&gt;9){myEnc.write(0);}
    if(f[i]&lt;0){myEnc.write(9*4);}}
    else{// ОГРАНИЧЕНИЕ ПРИ ИЗМИНЕНИИ ЗАПОЛНЕНИЯ ШИМ ОТ 0 ДО 1023
    if(f[7]&gt;1023){f[7]=1023;}
    if(f[7]&lt;0){f[7]=0;}}
  }
   f_sum=f[6]*1000000+f[5]*100000+f[4]*10000+f[3]*1000+f[2]*100+f[1]*10+f[0];// ПЕРИОД
   lcd.setCursor(0,0);// ВЫВОД ИНФОРМАЦИИ НА LCD 
   lcd.print(&quot;T = &quot;);
   for(x=6;x&gt;=0;x--){
   if(x==5||x==2){lcd.print(&quot;.&quot;);}// ВСАВЛЯЕМ РАЗДЕЛИТЬ РАЗРЯДА
   if(cursor==1&amp;&amp;i==x){lcd.print(&quot; &quot;);}else{lcd.print(f[x]);}
   }
   lcd.print(&quot; uS&quot;);
 
     // МИГАНИЕ КУРСОРА ПРИ ИЗМИНЕНИИ ПАРАМЕТРОВ 
 
   if(millis()-time&lt;200){cursor=1;}// 200 МС ПРОБЕЗ ВМЕСТО ЦИФРЫ
   if(millis()-time&gt;200){cursor=0;}// 800 МС ПОКАЗЫВАЕМ ЦИФРУ
   if(millis()-time&gt;1000){time=millis();}// ОТСЧЕТ 1 СЕКУНДЫ
  }
 
   // ВЫВОД НА LCD % ЗАПОНЕНИЯ ШИМ
   t=f[7]*100.0/1023;
   lcd.setCursor(0,1);lcd.print(t,1);if(cursor==1&amp;&amp;i==7){lcd.print(&quot;    &quot;);}else{ lcd.print(&quot; %   &quot;);}
  }
y++;
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[sabicoha]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2175</uri>
			</author>
			<updated>2023-09-18T17:11:37Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=8640#p8640</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Импульсный генератор + частотомер (Arduino)]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=8632#p8632" />
			<content type="html"><![CDATA[<div class="codebox"><pre><code>#include &lt;LiquidCrystal.h&gt;
#include &lt;Encoder.h&gt;
#include &lt;TimerOne.h&gt;
#include &lt;FreqCount.h&gt;
LiquidCrystal lcd(6, 7, 8, 11, 12, 13);// RS,E,D4,D5,D6,D7
Encoder myEnc(4, 3);// CLK, DT
 
void setup() {
  pinMode(2,INPUT); // КНОПКА ЭНКОДЕРА
  pinMode(A5,INPUT); // КНОПКА ПРИНУДИТЕЛЬНОГО ВКЛЮЧЕНИЯ ГЕНЕРАЦИИ
  pinMode(A4,INPUT); // ЧАСТОТОМЕР/ГЕНЕРАТОР
  lcd.begin(16, 2);// LCD 16X2
}
 
unsigned long f_sum,time;
long f[8]{0,0,0,0,0,0,0,512};
int i,x,y,cursor,h_g;
long oldPosition  = -999,newPosition;
float t;
const float popravka = 1.0004502;// поправочный коэффициент для повышения точности генератора (если нет эталона то коэффициент = 1.0000000)
 
unsigned long f_0;float f0;
int x1,n=3,r;
 
void loop() {
  if(digitalRead(A4)==HIGH){h_g++;y=0;delay(300);if(h_g&gt;1){h_g=0;}}// ГЕНЕРАТОР/ЧАСТОТОМЕР (ПО УМОЛЧАНИЮ ПЕРВЫЙ ГЕНЕРАТОР)
 
  if(h_g==1){ i=0; // ЧАСТОТОМЕР ////////////////////////////////////////////////////////////////////
  if(y==1){FreqCount.begin(1000);}
 
  if(digitalRead(2)==LOW){n++;x1=0;delay(100);}// ВЫБОР ВРЕМЕНИ ИЗМЕРЕНИЯ ПРИ ПОМОЩИ КНОПКИ ЭНКОДЕРА
    lcd.setCursor(0,1);
  if(n==1){x1++;if(x1==1){FreqCount.begin(100);}r=-1;lcd.print(&quot;T = 0.1 s &quot;);}
  if(n==2){x1++;if(x1==1){FreqCount.begin(10000);}r=1;lcd.print(&quot;T = 10 s &quot;);}
  if(n==3){x1++;if(x1==1){FreqCount.begin(1000);}r=0;lcd.print(&quot;T = 1 s  &quot;);}
  if(n&gt;3){n=1;} 
    lcd.setCursor(0,0);
    lcd.print(&quot;F = &quot;); // ВЫВОД ЧАСТОТЫ 
  if(f_0&gt;=1000000 &amp;&amp; n==3){f0=f_0/1000000.0;lcd.print(f0,6+r);lcd.print(&quot; MHz&quot;);}
  if(f_0&lt;1000000 &amp;&amp; n==3){f0=f_0/1000.0;lcd.print(f0,3+r);lcd.print(&quot; kHz&quot;);}
  if(f_0&gt;=100000 &amp;&amp; n==1){f0=f_0/100000.0;lcd.print(f0,6+r);lcd.print(&quot; MHz&quot;);}
  if(f_0&lt;100000 &amp;&amp; n==1){f0=f_0/100.0;lcd.print(f0,3+r);lcd.print(&quot; kHz&quot;);}
  if(f_0&gt;=10000000 &amp;&amp; n==2){f0=f_0/10000000.0;lcd.print(f0,6+r);lcd.print(&quot;MHz&quot;);}
  if(f_0&lt;10000000 &amp;&amp; n==2){f0=f_0/10000.0;lcd.print(f0,3+r);lcd.print(&quot; kHz&quot;);}
 
  if (FreqCount.available()) { 
 
    f_0 = FreqCount.read(); // ИЗМЕРЕНИЕ ЧАСТОТЫ
 
   lcd.setCursor(10,1);lcd.print(&quot;***&quot;);// ИНДИКАЦИЯ ИЗМЕРЕНИЯ
  }
   delay(200);
   lcd.clear();
}
 
  if(h_g==0){// ГЕНЕРАТОР //////////////////////////////////////////////////////////////////
 
   if(i==8){   lcd.setCursor(10,1); lcd.print(&quot;ON &quot;);// ГЕНЕРАЦИЯ ВКЛЮЧЕНА
   if(y==1){ Timer1.initialize(f_sum * popravka); // период  - запускаем только один раз после выхода из режима изминения параметров 
   Timer1.pwm(9, f[7]);} // k - коэффициент заполнения 0-1023. Сигнал снимаем с выхода 9
   delay(100);
 }
 
  if(digitalRead(2)==LOW){delay(300);i++;if(i&gt;8){i=0;} myEnc.write(f[i]*4);// ОПРОС КНОПКИ ЭНКОДЕРА
  if(i==8){y=0;cursor=0;}}
  if(digitalRead(A5)==HIGH){delay(300);i=8;y=0;}// КНОПКА ПРИНУДИТЕЛЬНОГО ВКЛЮЧЕНИЯ ГЕНЕРАЦИИ
 
  if(i&lt;8||cursor==1){ // В РЕЖИМЕ ИЗМЕНЕНИЯ ПЕРИОДА И ЗАПОЛНЕНИЯ ШИМ ГЕНЕРАЦИЯ ОТКЛЮЧЕНА
  lcd.setCursor(10,1); lcd.print(&quot;OFF&quot;);// ГЕНЕРАЦИЯ ВЫКЛЮЧЕНА
 
 long newPosition = myEnc.read()/4; // ОПРОС ЭНКОДЕРА
 
  if (newPosition != oldPosition) {
    oldPosition = newPosition;
    f[i]=newPosition;
 
    if(i&lt;7){ // ОГРАНИЧЕНИЕ ПРИ ИЗМЕНЕНИИ ПЕРИОДА ОТ 0 ДО 9
    if(f[i]&gt;9){myEnc.write(0);}
    if(f[i]&lt;0){myEnc.write(9*4);}}
    else{// ОГРАНИЧЕНИЕ ПРИ ИЗМЕНЕНИИ ЗАПОЛНЕНИЯ ШИМ ОТ 0 ДО 1023
    if(f[7]&gt;1023){f[7]=1023;}
    if(f[7]&lt;0){f[7]=0;}}
  }
   f_sum=f[6]*1000000+f[5]*100000+f[4]*10000+f[3]*1000+f[2]*100+f[1]*10+f[0];// ПЕРИОД
   lcd.setCursor(0,0);// ВЫВОД ИНФОРМАЦИИ НА LCD 
   lcd.print(&quot;T = &quot;);
   for(x=6;x&gt;=0;x--){
   if(x==5||x==2){lcd.print(&quot;.&quot;);}// ВСТАВЛЯЕМ РАЗДЕЛИТЬ РАЗРЯДА
   if(cursor==1&amp;&amp;i==x){lcd.print(&quot; &quot;);}else{lcd.print(f[x]);}
   }
   lcd.print(&quot; uS&quot;);
 
     // МИГАНИЕ КУРСОРА ПРИ ИЗМЕНЕНИИ ПАРАМЕТРОВ 
 
   if(millis()-time&lt;200){cursor=1;}// 200 МС ПРОБЕЛ ВМЕСТО ЦИФРЫ
   if(millis()-time&gt;200){cursor=0;}// 800 МС ПОКАЗЫВАЕМ ЦИФРУ
   if(millis()-time&gt;1000){time=millis();}// ОТСЧЕТ 1 СЕКУНДЫ
  }
 
   // ВЫВОД НА LCD % ЗАПОЛНЕНИЯ ШИМ
   t=f[7]*100.0/1023;
   lcd.setCursor(0,1);lcd.print(t,1);if(cursor==1&amp;&amp;i==7){lcd.print(&quot;    &quot;);}else{ lcd.print(&quot; %   &quot;);}
  }
y++;
}</code></pre></div>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2023-09-17T17:11:41Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=8632#p8632</id>
		</entry>
</feed>
