<?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; Простые часы на семисегментных индикаторах (Arduino Nano+ds3231)]]></title>
		<link>http://forum.rcl-radio.ru/viewtopic.php?id=576</link>
		<atom:link href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=576&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «Простые часы на семисегментных индикаторах (Arduino Nano+ds3231)».]]></description>
		<lastBuildDate>Tue, 17 Feb 2026 06:46:09 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: Простые часы на семисегментных индикаторах (Arduino Nano+ds3231)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=12453#p12453</link>
			<description><![CDATA[<p>Спасибо, Liman324!!!<br />Попробую, отпишусь.</p>]]></description>
			<author><![CDATA[null@example.com (Eugen)]]></author>
			<pubDate>Tue, 17 Feb 2026 06:46:09 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=12453#p12453</guid>
		</item>
		<item>
			<title><![CDATA[Re: Простые часы на семисегментных индикаторах (Arduino Nano+ds3231)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=12436#p12436</link>
			<description><![CDATA[<div class="codebox"><pre><code>#define K3 A3
#define K2 A2
#define K1 A1
#define K0 A0

#define SEG_A       8 
#define SEG_B       7 
#define SEG_C       4 
#define SEG_D       5 
#define SEG_E       2 
#define SEG_F       6
#define SEG_G       9 
#define SEG_DP      3 

#define SET  10
#define UP   12
#define DW   12

#define OUT_PWM     11  // пин ШИМ подсветки LED
#define BRIG_LOW    50  // яркость ШИМ подсветки LED минимум
#define BRIG_HIGH  255  // яркость ШИМ подсветки LED максимум

#define NIGHT 1

#include &lt;EEPROM.h&gt;
#include &lt;Wire.h&gt;
#include &lt;DS3231.h&gt;             // http://rcl-radio.ru/wp-content/uploads/2022/10/DS3231.zip
DS3231 clock;RTCDateTime DateTime;
byte an,segm,a[4],i,dp;
int hour,minut,secon,old_sec,hh,mm,set=0;
unsigned long times,times1;
int brig,br;


void setup(){
  Wire.begin();
  clock.begin();
  Serial.begin(9600);
  cli();
  TCCR2A = 0;
  TCCR2B = 0;
  TCNT2 = 0;
// (16000000/((155+1)x256))=400.64102564103 Hz
  OCR2A = 155;
  TCCR2A |= (1 &lt;&lt; WGM21);
// Prescaler 256
  TCCR2B |= (1 &lt;&lt; CS22) | (1 &lt;&lt; CS21);
  TIMSK2 |= (1 &lt;&lt; OCIE2A);
  sei();
  pinMode(K3,OUTPUT);
  pinMode(K2,OUTPUT);
  pinMode(K1,OUTPUT);
  pinMode(K0,OUTPUT);
  pinMode(SEG_A, OUTPUT);
  pinMode(SEG_B, OUTPUT);
  pinMode(SEG_C, OUTPUT);
  pinMode(SEG_D, OUTPUT);
  pinMode(SEG_E, OUTPUT);
  pinMode(SEG_F, OUTPUT);
  pinMode(SEG_G, OUTPUT);
  pinMode(SEG_DP, OUTPUT);
  pinMode (SET,INPUT_PULLUP);
  pinMode (UP,INPUT_PULLUP);
  pinMode (DW,INPUT_PULLUP);
  pinMode(OUT_PWM, OUTPUT);
  brig = EEPROM.read(100);
  if(brig&gt;20){brig=1;EEPROM.update(100,brig);}
  }

void loop(){
  DateTime = clock.getDateTime();hour = DateTime.hour;minut = DateTime.minute;secon = DateTime.second;

  if((hour&lt;7||hour&gt;=22)&amp;&amp;NIGHT==1){br=20;analogWrite(OUT_PWM, BRIG_LOW);}else{br=brig;analogWrite(OUT_PWM, BRIG_HIGH);}

  if(digitalRead(SET)==LOW){set++;if(set&gt;2){set=0;}delay(200);}
  hh=hour;mm=minut;
  if(set==1 &amp;&amp; digitalRead(UP)==LOW){hh++;if(hh&gt;23){hh=0;}clock.setDateTime(2023, 9, 5, hh, minut, 0);delay(200);}
  if(set==1 &amp;&amp; digitalRead(DW)==LOW){hh--;if(hh&lt;0){hh=0;}clock.setDateTime(2023, 9, 5, hh, minut, 0);delay(200);}
  if(set==2 &amp;&amp; digitalRead(UP)==LOW){mm++;if(mm&gt;59){mm=0;}clock.setDateTime(2023, 9, 5, hour, mm, 0);delay(200);}
  if(set==2 &amp;&amp; digitalRead(DW)==LOW){mm--;if(mm&lt;0){mm=0;}clock.setDateTime(2023, 9, 5, hour, mm, 0);delay(200);}
  if(set==0 &amp;&amp; digitalRead(UP)==LOW){brig--;if(brig&lt;1){brig=1;}EEPROM.update(100,brig);delay(200);}
  if(set==0 &amp;&amp; digitalRead(DW)==LOW){brig++;if(brig&gt;20){brig=20;}EEPROM.update(100,brig);delay(200);}

  if(set==1&amp;&amp;millis()-times&lt;200){a[0]=10;a[1]=10;}  
    else{a[0] = hour/10%10; a[1] = hour%10; }
  if(set==2&amp;&amp;millis()-times&lt;200){a[2]=10;a[3]=10;}  
    else{a[2] = minut/10%10; a[3] = minut%10; }
  
  if(set==0){ 
    a[0]=hour/10%10;
    a[1]=hour%10;
    a[2]=minut/10%10;
    a[3]=minut%10;
    }
  if(millis()-times&gt;400){times=millis();}
  if(millis()-times1&lt;500){dp=1;}else{dp=0;}
  if(old_sec!=secon){old_sec=secon;times1=millis();}
  delay(100);
  }  

void segment() {
  switch (segm) {
            //  A          B             C              D             E            F            G
    case 0: ch(SEG_A, 1); ch(SEG_B, 1); ch(SEG_C, 1); ch(SEG_D, 1); ch(SEG_E, 1); ch(SEG_F, 1); ch(SEG_G, 0); break; // 0
    case 1: ch(SEG_A, 0); ch(SEG_B, 1); ch(SEG_C, 1); ch(SEG_D, 0); ch(SEG_E, 0); ch(SEG_F, 0); ch(SEG_G, 0); break; // 1
    case 2: ch(SEG_A, 1); ch(SEG_B, 1); ch(SEG_C, 0); ch(SEG_D, 1); ch(SEG_E, 1); ch(SEG_F, 0); ch(SEG_G, 1); break; // 2
    case 3: ch(SEG_A, 1); ch(SEG_B, 1); ch(SEG_C, 1); ch(SEG_D, 1); ch(SEG_E, 0); ch(SEG_F, 0); ch(SEG_G, 1); break; // 3
    case 4: ch(SEG_A, 0); ch(SEG_B, 1); ch(SEG_C, 1); ch(SEG_D, 0); ch(SEG_E, 0); ch(SEG_F, 1); ch(SEG_G, 1); break; // 4
    case 5: ch(SEG_A, 1); ch(SEG_B, 0); ch(SEG_C, 1); ch(SEG_D, 1); ch(SEG_E, 0); ch(SEG_F, 1); ch(SEG_G, 1); break; // 5
    case 6: ch(SEG_A, 1); ch(SEG_B, 0); ch(SEG_C, 1); ch(SEG_D, 1); ch(SEG_E, 1); ch(SEG_F, 1); ch(SEG_G, 1); break; // 6
    case 7: ch(SEG_A, 1); ch(SEG_B, 1); ch(SEG_C, 1); ch(SEG_D, 0); ch(SEG_E, 0); ch(SEG_F, 0); ch(SEG_G, 0); break; // 7
    case 8: ch(SEG_A, 1); ch(SEG_B, 1); ch(SEG_C, 1); ch(SEG_D, 1); ch(SEG_E, 1); ch(SEG_F, 1); ch(SEG_G, 1); break; // 8
    case 9: ch(SEG_A, 1); ch(SEG_B, 1); ch(SEG_C, 1); ch(SEG_D, 1); ch(SEG_E, 0); ch(SEG_F, 1); ch(SEG_G, 1); break; // 9
   case 10: ch(SEG_A, 0); ch(SEG_B, 0); ch(SEG_C, 0); ch(SEG_D, 0); ch(SEG_E, 0); ch(SEG_F, 0); ch(SEG_G, 0); break; // пусто
  }
}


ISR(TIMER2_COMPA_vect){
   switch (i) {
    case 0: segm = 10; segment();an = 10;kat();delayMicroseconds(br*100);segm = a[0];segment();an = 0;kat();ch(SEG_DP, 0);break;
    case 1: segm = 10; segment();an = 10;kat();delayMicroseconds(br*100);segm = a[1];segment();an = 1;kat();ch(SEG_DP, dp);break;
    case 2: segm = 10; segment();an = 10;kat();delayMicroseconds(br*100);segm = a[2];segment();an = 2;kat();ch(SEG_DP, dp);break;
    case 3: segm = 10; segment();an = 10;kat();delayMicroseconds(br*100);segm = a[3];segment();an = 3;kat();ch(SEG_DP, 0);break;
  }
  i++;if (i &gt; 3) {i = 0;}
  }

void kat() {
  switch (an) {
    case 0: ch(K3, 1); ch(K2, 0); ch(K1, 0); ch(K0, 0); break;
    case 1: ch(K3, 0); ch(K2, 1); ch(K1, 0); ch(K0, 0); break;
    case 2: ch(K3, 0); ch(K2, 0); ch(K1, 1); ch(K0, 0); break;
    case 3: ch(K3, 0); ch(K2, 0); ch(K1, 0); ch(K0, 1); break;
   case 10: ch(K3, 0); ch(K2, 0); ch(K1, 0); ch(K0, 0); break;
  }
}  

void ch(int pin, int logic){digitalWrite(pin, logic);}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Mon, 16 Feb 2026 14:03:29 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=12436#p12436</guid>
		</item>
		<item>
			<title><![CDATA[Re: Простые часы на семисегментных индикаторах (Arduino Nano+ds3231)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=12433#p12433</link>
			<description><![CDATA[<p>А если кнопки сделать&nbsp; на 10, 12 и 13 пины, а 11-й пин освободить для подсветки... Так возможно?</p>]]></description>
			<author><![CDATA[null@example.com (Eugen)]]></author>
			<pubDate>Mon, 16 Feb 2026 11:07:02 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=12433#p12433</guid>
		</item>
		<item>
			<title><![CDATA[Re: Простые часы на семисегментных индикаторах (Arduino Nano+ds3231)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=12432#p12432</link>
			<description><![CDATA[<p>номера пинов с поддержкой ШИМ - 3, 5, 6, 9, 10, 11 для Nano</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Fri, 13 Feb 2026 13:50:33 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=12432#p12432</guid>
		</item>
		<item>
			<title><![CDATA[Re: Простые часы на семисегментных индикаторах (Arduino Nano+ds3231)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=12430#p12430</link>
			<description><![CDATA[<p>Здравствуйте, Liman324! <br />Возможно ли для этой схемы реализовать так называемый BackLight, который бы имел возможность понижать яркость вместе с понижением яркости индикаторов в зависимости о времени суток? Вроде и пин 13 свободен и можно было бы на него повесить эту функцию...<br />Хочу взять за основу эту схему ввиду ее простоты и сделать часы, индикаторы которых поместить в отдельные стеклянные колбы. И для визуального эффекта хотелось бы подсвечивать колбы через отполированный торец. Подобно, как подсвечивают ИН-ки или ИВ-шки.<br />С уважением, Eugen.</p>]]></description>
			<author><![CDATA[null@example.com (Eugen)]]></author>
			<pubDate>Fri, 13 Feb 2026 12:29:15 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=12430#p12430</guid>
		</item>
		<item>
			<title><![CDATA[Re: Простые часы на семисегментных индикаторах (Arduino Nano+ds3231)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=11270#p11270</link>
			<description><![CDATA[<p>В скетче вместо<br />if(set==2 &amp;&amp; digitalRead(DW)==LOW){mm--;if(mm&lt;0){mm=0;}clock.setDateTime(2023, 9, 5, hour, mm, 0);delay(200);}<br />предлагаю писать :<br />if(set==2 &amp;&amp; digitalRead(DW)==LOW){mm--;if(mm&lt;0){mm=59;}clock.setDateTime(2023, 9, 5, hour, mm, 0);delay(200);}<br />и вместо<br />if(set==1 &amp;&amp; digitalRead(DW)==LOW){hh--;if(hh&lt;0){hh=0;}clock.setDateTime(2023, 9, 5, hh, minut, 0);delay(200);}<br />писать :<br />if(set==1 &amp;&amp; digitalRead(DW)==LOW){hh--;if(hh&lt;0){hh=23;}clock.setDateTime(2023, 9, 5, hh, minut, 0);delay(200);}<br />иначе при нажатии кнопки &quot;минус&quot; отсчет &quot;упирается&quot; в 0 и дальше не идет.<br />Также не смог победить такой баг- при установке времени в &quot;ночные&quot; часы (т.е. когда индикация притушена) - частота , с которой меняются цифры раза в два меньше, чем в &quot;дневное&quot; время. Т.е. каким -то образом частота смены цифр при установке времени завязана на яркость. В этой части программы разобраться образования не хватило, поэтому просто сделал &quot;костыль&quot;- при установке времени яркость индикации приравнял br=brig.</p>]]></description>
			<author><![CDATA[null@example.com (Флексей Че)]]></author>
			<pubDate>Wed, 15 Jan 2025 09:21:07 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=11270#p11270</guid>
		</item>
		<item>
			<title><![CDATA[Re: Простые часы на семисегментных индикаторах (Arduino Nano+ds3231)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=9937#p9937</link>
			<description><![CDATA[<p>В функциях kat() и segment() инвертировать выходы</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Tue, 26 Mar 2024 08:33:53 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=9937#p9937</guid>
		</item>
		<item>
			<title><![CDATA[Re: Простые часы на семисегментных индикаторах (Arduino Nano+ds3231)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=9936#p9936</link>
			<description><![CDATA[<p>Добрый день!<br />А что нужно переделать в скетче, что бы можно было подключить индикаторы с общим анодом?</p>]]></description>
			<author><![CDATA[null@example.com (zbkr1p)]]></author>
			<pubDate>Tue, 26 Mar 2024 08:18:58 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=9936#p9936</guid>
		</item>
		<item>
			<title><![CDATA[Re: Простые часы на семисегментных индикаторах (Arduino Nano+ds3231)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=8531#p8531</link>
			<description><![CDATA[<p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/09/d1e5ac610e6ef63fe59eaa4ccbf99880.gif" alt="http://forum.rcl-radio.ru/uploads/images/2023/09/d1e5ac610e6ef63fe59eaa4ccbf99880.gif" /></span></p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Tue, 05 Sep 2023 17:48:40 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=8531#p8531</guid>
		</item>
		<item>
			<title><![CDATA[Re: Простые часы на семисегментных индикаторах (Arduino Nano+ds3231)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=8518#p8518</link>
			<description><![CDATA[<p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/09/b21bfa7f9a01bbf7fd586ddea79a32bd.png" alt="http://forum.rcl-radio.ru/uploads/images/2023/09/b21bfa7f9a01bbf7fd586ddea79a32bd.png" /></span> </p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/09/c90338abf27c039057236cf9c7873dc9.png" alt="http://forum.rcl-radio.ru/uploads/images/2023/09/c90338abf27c039057236cf9c7873dc9.png" /></span></p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Tue, 05 Sep 2023 13:49:36 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=8518#p8518</guid>
		</item>
		<item>
			<title><![CDATA[Простые часы на семисегментных индикаторах (Arduino Nano+ds3231)]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=8515#p8515</link>
			<description><![CDATA[<p>индикаторы - 5161AS - <a href="http://www.xlitx.com/datasheet/5161AS.pdf">http://www.xlitx.com/datasheet/5161AS.pdf</a></p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/09/499292c4bb8938984ba7abc9577eea7c.png" alt="http://forum.rcl-radio.ru/uploads/images/2023/09/499292c4bb8938984ba7abc9577eea7c.png" /></span> </p><br /><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2023/09/c3c8a1e3cde1668446975d083a92811c.png" alt="http://forum.rcl-radio.ru/uploads/images/2023/09/c3c8a1e3cde1668446975d083a92811c.png" /></span></p><div class="codebox"><pre><code>#define K3 A3
#define K2 A2
#define K1 A1
#define K0 A0

#define SEG_A       8 
#define SEG_B       7 
#define SEG_C       4 
#define SEG_D       5 
#define SEG_E       2 
#define SEG_F       6
#define SEG_G       9 
#define SEG_DP      3 

#define SET  10
#define UP   11
#define DW   12

#define NIGHT 1

#include &lt;EEPROM.h&gt;
#include &lt;Wire.h&gt;
#include &lt;DS3231.h&gt;             // http://rcl-radio.ru/wp-content/uploads/2022/10/DS3231.zip
DS3231 clock;RTCDateTime DateTime;
byte an,segm,a[4],i,dp;
int hour,minut,secon,old_sec,hh,mm,set=0;
unsigned long times,times1;
int brig,br;


void setup(){
  Wire.begin();
  clock.begin();
  Serial.begin(9600);
  cli();
  TCCR2A = 0;
  TCCR2B = 0;
  TCNT2 = 0;
// (16000000/((155+1)x256))=400.64102564103 Hz
  OCR2A = 155;
  TCCR2A |= (1 &lt;&lt; WGM21);
// Prescaler 256
  TCCR2B |= (1 &lt;&lt; CS22) | (1 &lt;&lt; CS21);
  TIMSK2 |= (1 &lt;&lt; OCIE2A);
  sei();
  pinMode(K3,OUTPUT);
  pinMode(K2,OUTPUT);
  pinMode(K1,OUTPUT);
  pinMode(K0,OUTPUT);
  pinMode(SEG_A, OUTPUT);
  pinMode(SEG_B, OUTPUT);
  pinMode(SEG_C, OUTPUT);
  pinMode(SEG_D, OUTPUT);
  pinMode(SEG_E, OUTPUT);
  pinMode(SEG_F, OUTPUT);
  pinMode(SEG_G, OUTPUT);
  pinMode(SEG_DP, OUTPUT);
  pinMode (SET,INPUT_PULLUP);
  pinMode (UP,INPUT_PULLUP);
  pinMode (DW,INPUT_PULLUP);
  brig = EEPROM.read(100);
  if(brig&gt;20){brig=1;EEPROM.update(100,brig);}
  }

void loop(){
  DateTime = clock.getDateTime();hour = DateTime.hour;minut = DateTime.minute;secon = DateTime.second;

  if((hour&lt;7||hour&gt;=22)&amp;&amp;NIGHT==1){br=20;}else{br=brig;}

  if(digitalRead(SET)==LOW){set++;if(set&gt;2){set=0;}delay(200);}
  hh=hour;mm=minut;
  if(set==1 &amp;&amp; digitalRead(UP)==LOW){hh++;if(hh&gt;23){hh=0;}clock.setDateTime(2023, 9, 5, hh, minut, 0);delay(200);}
  if(set==1 &amp;&amp; digitalRead(DW)==LOW){hh--;if(hh&lt;0){hh=0;}clock.setDateTime(2023, 9, 5, hh, minut, 0);delay(200);}
  if(set==2 &amp;&amp; digitalRead(UP)==LOW){mm++;if(mm&gt;59){mm=0;}clock.setDateTime(2023, 9, 5, hour, mm, 0);delay(200);}
  if(set==2 &amp;&amp; digitalRead(DW)==LOW){mm--;if(mm&lt;0){mm=0;}clock.setDateTime(2023, 9, 5, hour, mm, 0);delay(200);}
  if(set==0 &amp;&amp; digitalRead(UP)==LOW){brig--;if(brig&lt;1){brig=1;}EEPROM.update(100,brig);delay(200);}
  if(set==0 &amp;&amp; digitalRead(DW)==LOW){brig++;if(brig&gt;20){brig=20;}EEPROM.update(100,brig);delay(200);}

  if(set==1&amp;&amp;millis()-times&lt;200){a[0]=10;a[1]=10;}  
    else{a[0] = hour/10%10; a[1] = hour%10; }
  if(set==2&amp;&amp;millis()-times&lt;200){a[2]=10;a[3]=10;}  
    else{a[2] = minut/10%10; a[3] = minut%10; }
  
  if(set==0){ 
    a[0]=hour/10%10;
    a[1]=hour%10;
    a[2]=minut/10%10;
    a[3]=minut%10;
    }
  if(millis()-times&gt;400){times=millis();}
  if(millis()-times1&lt;500){dp=1;}else{dp=0;}
  if(old_sec!=secon){old_sec=secon;times1=millis();}
  delay(100);
  }  

void segment() {
  switch (segm) {
            //  A          B             C              D             E            F            G
    case 0: ch(SEG_A, 1); ch(SEG_B, 1); ch(SEG_C, 1); ch(SEG_D, 1); ch(SEG_E, 1); ch(SEG_F, 1); ch(SEG_G, 0); break; // 0
    case 1: ch(SEG_A, 0); ch(SEG_B, 1); ch(SEG_C, 1); ch(SEG_D, 0); ch(SEG_E, 0); ch(SEG_F, 0); ch(SEG_G, 0); break; // 1
    case 2: ch(SEG_A, 1); ch(SEG_B, 1); ch(SEG_C, 0); ch(SEG_D, 1); ch(SEG_E, 1); ch(SEG_F, 0); ch(SEG_G, 1); break; // 2
    case 3: ch(SEG_A, 1); ch(SEG_B, 1); ch(SEG_C, 1); ch(SEG_D, 1); ch(SEG_E, 0); ch(SEG_F, 0); ch(SEG_G, 1); break; // 3
    case 4: ch(SEG_A, 0); ch(SEG_B, 1); ch(SEG_C, 1); ch(SEG_D, 0); ch(SEG_E, 0); ch(SEG_F, 1); ch(SEG_G, 1); break; // 4
    case 5: ch(SEG_A, 1); ch(SEG_B, 0); ch(SEG_C, 1); ch(SEG_D, 1); ch(SEG_E, 0); ch(SEG_F, 1); ch(SEG_G, 1); break; // 5
    case 6: ch(SEG_A, 1); ch(SEG_B, 0); ch(SEG_C, 1); ch(SEG_D, 1); ch(SEG_E, 1); ch(SEG_F, 1); ch(SEG_G, 1); break; // 6
    case 7: ch(SEG_A, 1); ch(SEG_B, 1); ch(SEG_C, 1); ch(SEG_D, 0); ch(SEG_E, 0); ch(SEG_F, 0); ch(SEG_G, 0); break; // 7
    case 8: ch(SEG_A, 1); ch(SEG_B, 1); ch(SEG_C, 1); ch(SEG_D, 1); ch(SEG_E, 1); ch(SEG_F, 1); ch(SEG_G, 1); break; // 8
    case 9: ch(SEG_A, 1); ch(SEG_B, 1); ch(SEG_C, 1); ch(SEG_D, 1); ch(SEG_E, 0); ch(SEG_F, 1); ch(SEG_G, 1); break; // 9
   case 10: ch(SEG_A, 0); ch(SEG_B, 0); ch(SEG_C, 0); ch(SEG_D, 0); ch(SEG_E, 0); ch(SEG_F, 0); ch(SEG_G, 0); break; // пусто
  }
}


ISR(TIMER2_COMPA_vect){
   switch (i) {
    case 0: segm = 10; segment();an = 10;kat();delayMicroseconds(br*100);segm = a[0];segment();an = 0;kat();ch(SEG_DP, 0);break;
    case 1: segm = 10; segment();an = 10;kat();delayMicroseconds(br*100);segm = a[1];segment();an = 1;kat();ch(SEG_DP, dp);break;
    case 2: segm = 10; segment();an = 10;kat();delayMicroseconds(br*100);segm = a[2];segment();an = 2;kat();ch(SEG_DP, dp);break;
    case 3: segm = 10; segment();an = 10;kat();delayMicroseconds(br*100);segm = a[3];segment();an = 3;kat();ch(SEG_DP, 0);break;
  }
  i++;if (i &gt; 3) {i = 0;}
  }

void kat() {
  switch (an) {
    case 0: ch(K3, 1); ch(K2, 0); ch(K1, 0); ch(K0, 0); break;
    case 1: ch(K3, 0); ch(K2, 1); ch(K1, 0); ch(K0, 0); break;
    case 2: ch(K3, 0); ch(K2, 0); ch(K1, 1); ch(K0, 0); break;
    case 3: ch(K3, 0); ch(K2, 0); ch(K1, 0); ch(K0, 1); break;
   case 10: ch(K3, 0); ch(K2, 0); ch(K1, 0); ch(K0, 0); break;
  }
}  

void ch(int pin, int logic){digitalWrite(pin, logic);}</code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Tue, 05 Sep 2023 06:39:02 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=8515#p8515</guid>
		</item>
	</channel>
</rss>
