<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[forum.rcl-radio.ru &mdash; Динамический экран на 74HC595]]></title>
	<link rel="self" href="http://forum.rcl-radio.ru/extern.php?action=feed&amp;tid=641&amp;type=atom" />
	<updated>2024-05-17T06:37:40Z</updated>
	<generator>PunBB</generator>
	<id>http://forum.rcl-radio.ru/viewtopic.php?id=641</id>
		<entry>
			<title type="html"><![CDATA[Re: Динамический экран на 74HC595]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=10394#p10394" />
			<content type="html"><![CDATA[<p>digital_OK[value %10]+0b10000000;</p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2024-05-17T06:37:40Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=10394#p10394</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Динамический экран на 74HC595]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=10393#p10393" />
			<content type="html"><![CDATA[<p>И я хотел бы именно добавить вывод точки в скетч который я скинул. Не могли бы вы мне просто объяснить как это сделать ссылаясь на комментарий автора видео</p>]]></content>
			<author>
				<name><![CDATA[vladbuharkin20]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2352</uri>
			</author>
			<updated>2024-05-17T05:29:36Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=10393#p10393</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Динамический экран на 74HC595]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=10392#p10392" />
			<content type="html"><![CDATA[<p>Я бы смог бы повторить этот модуль, у него 2 микросхемы 74hc595, но у меня одна, и разрядами управляет не микросхема а ардуина</p>]]></content>
			<author>
				<name><![CDATA[vladbuharkin20]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2352</uri>
			</author>
			<updated>2024-05-17T05:23:25Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=10392#p10392</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: Динамический экран на 74HC595]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=10391#p10391" />
			<content type="html"><![CDATA[<p><a href="http://rcl-radio.ru/?p=53350">http://rcl-radio.ru/?p=53350</a></p>]]></content>
			<author>
				<name><![CDATA[liman324]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2</uri>
			</author>
			<updated>2024-05-16T23:49:52Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=10391#p10391</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Динамический экран на 74HC595]]></title>
			<link rel="alternate" href="http://forum.rcl-radio.ru/viewtopic.php?pid=10390#p10390" />
			<content type="html"><![CDATA[<p>Добрый день, сделал я мини экранчик на 3-ех разрядном 7 сегментном индикаторе на регистре сдвига 74HC595. Экран у меня с общим катодом, нашёл на ютубе пример для вывода на него информации, всё прекрасно выводится. Но столкнулся с проблемой, а именно в коде нет функции вывода точек на нужных разрядах. В комментариях к видео автор рассказал как сделать данный вывод, но в реализации него у меня возникли сложности<br />Сам код(немного я его подкорректировал, и убрал лишнее)<br /></p><div class="codebox"><pre><code>#include &lt;MsTimer2.h&gt;
uint8_t digital_OK[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F,0b00000001};   
#define clockPin        6                                                   
#define dataPin         4                                                  
#define latchPin        5                                                    
#define pinBeginStrob   8                                                     //  номер пина для подключения строба (разряда) первого индиеатора
#define pinEndStrob     11                                                     //  номер пина для подключения строба (разряда) последнего индиеатора
#define numberDigits    4                                                     //  количество разрядов индикатора (до 8-ми)
#define durationPause   10                                                     //  длительность паузы (мсек)
#define maxCount        10000                                             //  максимально возможное число счёта

uint8_t mass[numberDigits];                                                   //  буфер данных индикатора
uint32_t count = 0;
uint32_t num;
bool    modeStrob = false;                                                   
bool    typeDigit = true;                                                     

void setup()
{
  Serial.begin(9600);
  pinMode(clockPin, OUTPUT);                                                  
  pinMode(dataPin, OUTPUT);                                                  
  pinMode(latchPin, OUTPUT);                                                  
  digitalWrite(latchPin, HIGH);                                               
  for (uint8_t i = pinBeginStrob;i &lt;= pinEndStrob;i ++)
  {
    pinMode(i, OUTPUT);
    digitalWrite(i, HIGH);
  }
  MsTimer2::set(2, timerInterrupt);                                            
  MsTimer2::start();                                                           
}

void loop()
{
  num= millis()/1000;
  count = num*10;                                                                  
 
  convert(count, mass);
  Serial.println(count);                                                       
  delay(durationPause);                                                       
}

void  timerInterrupt()
{
static uint8_t index = 0;
  for (uint8_t i = pinBeginStrob;i &lt;= pinEndStrob;i ++)
{
digitalWrite(i, HIGH);
  }
  digitalWrite(latchPin, LOW);                                                
  shiftOut(dataPin, clockPin, MSBFIRST, mass[index]);                        
  digitalWrite(latchPin, HIGH);                                            
digitalWrite(index + pinBeginStrob, LOW);
  index ++;
  if (index == numberDigits) index = 0;
}


void convert(uint32_t value, uint8_t *m)
{
  for (uint8_t i = 0;i &lt; numberDigits;i ++)
  {
 *(m + i) = digital_OK[value %10];
    value /= 10;
  }
}</code></pre></div><p>Видео автора кода <div class="fancy_video_tag_player"><iframe class="youtube-player" type="text/html" width="640" height="385" src="https://www.youtube.com/embed/1ZIBmk0YxGs" frameborder="0"></iframe></div><br />Комментарий,как реализовать вывод точки на экран <span class="postimg"><img src="http://forum.rcl-radio.ru/uploads/images/2024/05/8760de43cbb508a24e36fa7f9c3c166f.png" alt="http://forum.rcl-radio.ru/uploads/images/2024/05/8760de43cbb508a24e36fa7f9c3c166f.png" /></span></p>]]></content>
			<author>
				<name><![CDATA[vladbuharkin20]]></name>
				<uri>http://forum.rcl-radio.ru/profile.php?id=2352</uri>
			</author>
			<updated>2024-05-16T19:27:55Z</updated>
			<id>http://forum.rcl-radio.ru/viewtopic.php?pid=10390#p10390</id>
		</entry>
</feed>
