<?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; ИВЛ1–7/5 + PT6312]]></title>
		<link>http://forum.rcl-radio.ru/viewtopic.php?id=618</link>
		<atom:link href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=618&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «ИВЛ1–7/5 + PT6312».]]></description>
		<lastBuildDate>Sat, 13 Dec 2025 16:53:03 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: ИВЛ1–7/5 + PT6312]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=11993#p11993</link>
			<description><![CDATA[<p>огромное спасибо за ответ.. буду думать над вашими словами и пробовать</p>]]></description>
			<author><![CDATA[null@example.com (ivwas)]]></author>
			<pubDate>Sat, 13 Dec 2025 16:53:03 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=11993#p11993</guid>
		</item>
		<item>
			<title><![CDATA[Re: ИВЛ1–7/5 + PT6312]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=11992#p11992</link>
			<description><![CDATA[<p>Просто отзеркальте байт</p><p>для сегментов</p><p> case 0: segm=0b00111111+(dp&lt;&lt;7);break;</p><p>&gt;&gt;</p><p> case 0: segm=0b11111100+(dp&lt;&lt;7);break;</p><br /><p>для разрядов изменить порядок включения</p><p> write_byte2_PT6312(0b11000000,seg(a[0],0));//GR1<br />&nbsp; write_byte2_PT6312(0b11000010,seg(a[1],0));//GR2<br />&nbsp; write_byte2_PT6312(0b11000100,seg(a[2],0));//GR3<br />&nbsp; write_byte2_PT6312(0b11000110,seg(a[3],0));//GR4<br />&nbsp; write_byte2_PT6312(0b11001000,seg(0,d));//GR5</p><p>&gt;&gt;</p><p> write_byte2_PT6312(0b11001000,seg(a[0],0));//GR1<br />&nbsp; write_byte2_PT6312(0b11000110,seg(a[1],0));//GR2<br />&nbsp; write_byte2_PT6312(0b11000100,seg(a[2],0));//GR3<br />&nbsp; write_byte2_PT6312(0b11000010,seg(a[3],0));//GR4<br />&nbsp; write_byte2_PT6312(0b11000000,seg(0,d));//GR5</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Sat, 13 Dec 2025 15:50:15 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=11992#p11992</guid>
		</item>
		<item>
			<title><![CDATA[Re: ИВЛ1–7/5 + PT6312]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=11991#p11991</link>
			<description><![CDATA[<p>Здраствуйте.<br />Заинтерисовала ваша статься.<br />К сожалению, в программировании я полный ноль.<br />Можете помочь: что нужно изменить в скетче. чтобы отзеркалить Sg1 ... Sg 8 относительно выводов драйвера&nbsp; pт6312.<br />на схеме SG1 на 15 ноге дравера... Как sg1 переместить на 22 ногу, Sg2 на 21&nbsp; и т.д?<br />И похожий вопрос , относительно GR1..5?</p>]]></description>
			<author><![CDATA[null@example.com (ivwas)]]></author>
			<pubDate>Sat, 13 Dec 2025 14:44:18 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=11991#p11991</guid>
		</item>
		<item>
			<title><![CDATA[Re: ИВЛ1–7/5 + PT6312]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=9835#p9835</link>
			<description><![CDATA[<p>Конечно можно, просто меняете указанные биты (сегменты) местами:</p><p>&nbsp; &nbsp; case 0: segm=0b00111111+(dp&lt;&lt;7);break;<br />&nbsp; &nbsp; case 1: segm=0b00000110+(dp&lt;&lt;7);break;<br />&nbsp; &nbsp; case 2: segm=0b01011011+(dp&lt;&lt;7);break;<br />&nbsp; &nbsp; case 3: segm=0b01001111+(dp&lt;&lt;7);break;<br />&nbsp; &nbsp; case 4: segm=0b01100110+(dp&lt;&lt;7);break;<br />&nbsp; &nbsp; case 5: segm=0b01101101+(dp&lt;&lt;7);break;<br />&nbsp; &nbsp; case 6: segm=0b01111101+(dp&lt;&lt;7);break;<br />&nbsp; &nbsp; case 7: segm=0b00000111+(dp&lt;&lt;7);break;<br />&nbsp; &nbsp; case 8: segm=0b01111111+(dp&lt;&lt;7);break;<br />&nbsp; &nbsp; case 9: segm=0b01101111+(dp&lt;&lt;7);break;<br />&nbsp; &nbsp; case 10:segm=0b00000000;break;// пусто<br />&nbsp; &nbsp; case 11:segm=0b01000000;break;// -<br />&nbsp; &nbsp; case 12:segm=0b01100011;break;// градус<br />&nbsp; &nbsp; case 13:segm=0b00111001;break;// С</p>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Thu, 21 Mar 2024 09:24:48 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=9835#p9835</guid>
		</item>
		<item>
			<title><![CDATA[ИВЛ1–7/5 + PT6312]]></title>
			<link>http://forum.rcl-radio.ru/viewtopic.php?pid=9549#p9549</link>
			<description><![CDATA[<p>Основная статья - <a href="http://rcl-radio.ru/?p=131652">http://rcl-radio.ru/?p=131652</a></p><p><span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2024/02/33023a179ed6dbfff43cf2be30c2e74a.png" alt="http://forum.rcl-radio.ru/uploads/images/2024/02/33023a179ed6dbfff43cf2be30c2e74a.png" /></span> </p><br /><div class="codebox"><pre><code>#define STB 4
#define DIN 2
#define CLK 3

#define SET 5
#define UP  6
#define DW  7

#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;

int a[5];
int hour,minut,set;
long times,times0;
bool d,mig;

void setup(){
  Serial.begin(9600);clock.begin();
  ///clock.setDateTime(__DATE__, __TIME__); // Устанавливаем время на часах, основываясь на времени компиляции скетча
  pinMode(STB,OUTPUT);
  pinMode(DIN,OUTPUT);
  pinMode(CLK,OUTPUT);
  pinMode(SET,INPUT_PULLUP);  
  pinMode(UP,INPUT_PULLUP);
  pinMode(DW,INPUT_PULLUP);  
  delay(100);
  digitalWrite(STB,HIGH);delay(200);
  // PWM OUTPUT D9 TIMER 1 
  TCCR1A = 0;TCCR1B = 0;
  TCCR1A = (1 &lt;&lt; COM1A1)|(1 &lt;&lt; WGM11);
  TCCR1B = (1 &lt;&lt; WGM13)|(1 &lt;&lt; WGM12)|(1 &lt;&lt; CS10);
  DDRB =  1 &lt;&lt; DDB1; // OUTPUT PWM (OCR1A)
  OCR1A = 15;
  ICR1 = 40;
  write_byte1_PT6312(0b01000100);// command 2
  write_byte1_PT6312(0b00000100);// command 1 8dig/14seg
  write_byte1_PT6312(0b10001111);// command 4 display on
  }

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

  if(digitalRead(SET)==LOW){set++;if(set&gt;2){set=0;} delay(300);} 
  if(digitalRead(UP)==LOW&amp;&amp;set==1){hour++;if(hour&gt;23){hour=23;} clock.setDateTime(2024, 2, 22, hour, minut, 0);delay(100);} 
  if(digitalRead(DW)==LOW&amp;&amp;set==1){hour--;if(hour&lt;0){hour=0;} clock.setDateTime(2024, 2, 22, hour, minut, 0);delay(100);} 
  if(digitalRead(UP)==LOW&amp;&amp;set==2){minut++;if(minut&gt;59){minut=59;} clock.setDateTime(2024, 2, 22, hour, minut, 0);delay(100);} 
  if(digitalRead(DW)==LOW&amp;&amp;set==2){minut--;if(minut&lt;0){minut=0;} clock.setDateTime(2024, 2, 22, hour, minut, 0);delay(100);} 
  
  if(millis()-times0&lt;200){mig=1;}
  if(millis()-times0&gt;200){mig=0;}
  if(millis()-times0&gt;400){times0=millis();}

  if(millis()-times&lt;500){d=1;}
  if(millis()-times&gt;500){d=0;}
  if(millis()-times&gt;1000){times=millis();}
  
  if(set==0){
  a[0]=minut%10;
  a[1]=minut/10%10;
  a[2]=hour%10;
  a[3]=hour/10%10;}

  if(set!=2){a[0]=minut%10;}
  if(set!=2){a[1]=minut/10%10;}
  if(set==2&amp;&amp;mig==0){a[0]=minut%10;}
  if(set==2&amp;&amp;mig==0){a[1]=minut/10%10;}
  if(set==2&amp;&amp;mig==1){a[0]=10;}
  if(set==2&amp;&amp;mig==1){a[1]=10;}

  if(set!=1){a[2]=hour%10;}
  if(set!=1){a[3]=hour/10%10;}
  if(set==1&amp;&amp;mig==0){a[2]=hour%10;}
  if(set==1&amp;&amp;mig==0){a[3]=hour/10%10;}
  if(set==1&amp;&amp;mig==1){a[2]=10;}
  if(set==1&amp;&amp;mig==1){a[3]=10;}
  
 
             //dp g f e d c b a 
  write_byte2_PT6312(0b11000000,seg(a[0],0));//GR1
  write_byte2_PT6312(0b11000010,seg(a[1],0));//GR2
  write_byte2_PT6312(0b11000100,seg(a[2],0));//GR3
  write_byte2_PT6312(0b11000110,seg(a[3],0));//GR4
  write_byte2_PT6312(0b11001000,seg(0,d));//GR5
  delay(100);
}

byte seg(int a, bool dp){
  byte segm;
  switch(a){
    case 0: segm=0b00111111+(dp&lt;&lt;7);break;
    case 1: segm=0b00000110+(dp&lt;&lt;7);break;
    case 2: segm=0b01011011+(dp&lt;&lt;7);break;
    case 3: segm=0b01001111+(dp&lt;&lt;7);break;
    case 4: segm=0b01100110+(dp&lt;&lt;7);break;
    case 5: segm=0b01101101+(dp&lt;&lt;7);break;
    case 6: segm=0b01111101+(dp&lt;&lt;7);break;
    case 7: segm=0b00000111+(dp&lt;&lt;7);break;
    case 8: segm=0b01111111+(dp&lt;&lt;7);break;
    case 9: segm=0b01101111+(dp&lt;&lt;7);break;
    case 10:segm=0b00000000;break;// пусто
    case 11:segm=0b01000000;break;// -
    case 12:segm=0b01100011;break;// градус
    case 13:segm=0b00111001;break;// С
    }
    return segm;
  }

void write_byte1_PT6312(byte data){
     digitalWrite(STB,LOW);
   for(int i = 0; i &lt;= 7; i++){
     digitalWrite(CLK,LOW);
     digitalWrite(DIN, (data &gt;&gt; i) &amp; 1);
     digitalWrite(CLK,HIGH);
     }  
     digitalWrite(STB,HIGH);delay(1);
  }  

void write_byte2_PT6312(byte reg, byte data){
     digitalWrite(STB,LOW);
   for(int i = 0; i &lt;= 7; i++){
     digitalWrite(CLK,LOW);
     digitalWrite(DIN, (reg &gt;&gt; i) &amp; 1);
     digitalWrite(CLK,HIGH);
     }  
     delay(1);
   for(int i = 0; i &lt;= 7; i++){
     digitalWrite(CLK,LOW);
     digitalWrite(DIN, (data &gt;&gt; i) &amp; 1);
     digitalWrite(CLK,HIGH);
     }    
     digitalWrite(STB,HIGH);delay(1);
  }    </code></pre></div>]]></description>
			<author><![CDATA[null@example.com (liman324)]]></author>
			<pubDate>Mon, 26 Feb 2024 09:55:30 +0000</pubDate>
			<guid>http://forum.rcl-radio.ru/viewtopic.php?pid=9549#p9549</guid>
		</item>
	</channel>
</rss>
