1

Тема: Часы+будильник на П543 (ИЛЦ5-4/7М)

Основная статья - http://rcl-radio.ru/?p=133796

http://forum.rcl-radio.ru/uploads/images/2025/03/72ec0f097f1224445d76c27e1a9c86fd.png

Распиновка

http://forum.rcl-radio.ru/uploads/images/2025/03/83f80b566444da66a6317df5a7d0d53b.png

П543 (ИЛЦ5-4/7М) — четырёхразрядный люминесцентный индикатор, использующийся в электронных устройствах, таких как часы, будильники и таймеры. Его основу составляет технология катодолюминесценции, при которой нити накала, покрытые люминофором, светятся при прохождении электрического тока, образуя видимые цифры.

Достоинства:
Высокая яркость и контрастность изображения, обеспечивающие отличную читаемость даже в условиях недостаточного освещения.
Долговечность и устойчивость к механическим повреждениям благодаря прочному корпусу и технологии изготовления.
Универсальность применения: может отображать время (часы, минуты, секунды), дату и дни недели, а также отображает индикатор будильника и таймера.
Недостатки:
Высокое энергопотребление по сравнению с современными светодиодными и жидкокристаллическими дисплеями.
Необходимость использования высоковольтных источников питания, что усложняет конструкцию устройств.
Ограниченный угол обзора, особенно при взгляде сбоку.
Срок службы:
Средний срок службы П543 (ИЛЦ5-4/7М) составляет порядка 10–15 лет при нормальных условиях эксплуатации, однако это зависит от качества компонентов и условий использования.

2

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

Транзисторные ключи

http://forum.rcl-radio.ru/uploads/images/2025/03/716f573ca5f36c4af60e56118b9170dc.gif

3

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

Схема (без будильника и кнопок для тестирования)

http://forum.rcl-radio.ru/uploads/images/2025/03/0cb98327df6a12b7ff5f925fd7c69e21.png

4

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

Остаются свободные пины:

А0
А1
А2
А3

3 пойдут под кнопки и один под пищалку, если пищалка активная то можно использовать эти пины, если нет, то надо освобождать D3 или D11 под tone(). Но это потом, сначала надо запустить индикатор.

5

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

Интересный проект. Подключаюсь к нему.)
Если портов не хватит можно перейти на Arduino Mega 2560, или контроллер  MEGA 128.

6

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

liman324 пишет:

Схема (без будильника и кнопок для тестирования)

http://forum.rcl-radio.ru/uploads/images/2025/03/b2c2595a7798ca26fbef4e91ee69b3e2.png

Посмотрите схему.
Порт D5 в двух местах подключен. К сеткам и сегментам.

7

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

Исправил

8

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

Тестовый скетч
Все разряды должны показывать 0

#define  C1_SET  0
#define  C2_SET  1
#define  C3_SET  2
#define  C4_SET  3
#define  C5_SET  4
#define  C6_SET  5

#define  A_SEG   6
#define  B_SEG   7
#define  C_SEG   8
#define  D_SEG   9
#define  E_SEG  10
#define  F_SEG  11
#define  G_SEG  12
#define  H_SEG  13

int i,segm,c;
int a[6];


void setup(){
 pinMode(C1_SET,OUTPUT); pinMode(C2_SET,OUTPUT);pinMode(C3_SET,OUTPUT);
 pinMode(C4_SET,OUTPUT);pinMode(C5_SET,OUTPUT);pinMode(C6_SET,OUTPUT); 
 pinMode(A_SEG,OUTPUT); pinMode(B_SEG,OUTPUT);pinMode(C_SEG,OUTPUT);
 pinMode(D_SEG,OUTPUT);pinMode(E_SEG,OUTPUT);pinMode(F_SEG,OUTPUT);
 pinMode(G_SEG,OUTPUT);pinMode(H_SEG,OUTPUT);  
 
  cli();
  TCCR1A = 0;
  TCCR1B = 0;
  TCNT1 = 0;
// (16000000/((53332+1)x1))=300.00187501172 Hz
  OCR1A = 53332;
  TCCR1B |= (1 << WGM12);
// Prescaler 1
  TCCR1B |= (1 << CS10);
  TIMSK1 |= (1 << OCIE1A);
  sei();
  }

void loop(){
  a[0]=0;
  a[1]=0;
  a[2]=0;
  a[3]=0;
  a[4]=0;
  a[5]=0;
  }  


ISR(TIMER1_COMP_vect){
    switch(i){
    case 0:  segm=a[0];  c=0;  setka();segment(); break;
    case 1:  segm=a[1];  c=1;  setka();segment(); break;
    case 2:  segm=a[2];  c=2;  setka();segment(); break;
    case 3:  segm=a[3];  c=3;  setka();segment(); break;
    case 4:  segm=a[4];  c=4;  setka();segment(); break;
    case 5:  segm=a[5];  c=5;  setka();segment(); break;
  }i++;if(i>5){i=0;}}

void segment(){
  switch(segm){                                                                 
    case 0: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,0);ch(G_SEG,1);ch(H_SEG,1);break;// 0 
    case 1: ch(A_SEG,1);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,1);break;// 1 
    case 2: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,1);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,1);ch(G_SEG,0);ch(H_SEG,1);break;// 2
    case 3: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,0);ch(H_SEG,1);break;// 3
    case 4: ch(A_SEG,1);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 4 
    case 5: ch(A_SEG,0);ch(B_SEG,1);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,1);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 5   
    case 6: ch(A_SEG,0);ch(B_SEG,1);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 6  
    case 7: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,1);break;// 7  
    case 8: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 8
    case 9: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,1);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 9
  }}  

void setka(){
  switch(c){                                                             
    case 0:ch(C1_SET,0);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 1:ch(C1_SET,1);ch(C2_SET,0);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 2:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,0);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 3:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,0);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 4:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,0);ch(C6_SET,1);break;  
    case 5:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,0);break;  
  }}  

void ch(int pin, int logic){digitalWrite(pin,logic);}  

9

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

http://forum.rcl-radio.ru/uploads/images/2025/03/ff7737b04c24ded13e2d776991734dc8.jpg

Все элемпенты и сегменты светяться. Кроме вторника.

10

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

#define  C1_SET  0
#define  C2_SET  1
#define  C3_SET  2
#define  C4_SET  3
#define  C5_SET  4
#define  C6_SET  5

#define  A_SEG   6
#define  B_SEG   7
#define  C_SEG   8
#define  D_SEG   9
#define  E_SEG  10
#define  F_SEG  11
#define  G_SEG  12
#define  H_SEG  13

int i,segm,c;
int a[6];
int fff;


void setup(){
 pinMode(C1_SET,OUTPUT); pinMode(C2_SET,OUTPUT);pinMode(C3_SET,OUTPUT);
 pinMode(C4_SET,OUTPUT);pinMode(C5_SET,OUTPUT);pinMode(C6_SET,OUTPUT); 
 pinMode(A_SEG,OUTPUT); pinMode(B_SEG,OUTPUT);pinMode(C_SEG,OUTPUT);
 pinMode(D_SEG,OUTPUT);pinMode(E_SEG,OUTPUT);pinMode(F_SEG,OUTPUT);
 pinMode(G_SEG,OUTPUT);pinMode(H_SEG,OUTPUT);  
 
  cli();
  TCCR1A = 0;
  TCCR1B = 0;
  TCNT1 = 0;
// (16000000/((53332+1)x1))=300.00187501172 Hz
  OCR1A = 53332;
  TCCR1B |= (1 << WGM12);
// Prescaler 1
  TCCR1B |= (1 << CS10);
  TIMSK1 |= (1 << OCIE1A);
  sei();
  }

void loop(){
  fff++;
  if(fff>9){fff=0;}
  a[0]=fff;
  a[1]=fff;
  a[2]=fff;
  a[3]=fff;
  a[4]=fff;
  a[5]=fff;
  delay(1000);
  }  


ISR(TIMER1_COMP_vect){
    switch(i){
    case 0:  segm=a[0];  c=0;  setka();segment(); break;
    case 1:  segm=a[1];  c=1;  setka();segment(); break;
    case 2:  segm=a[2];  c=2;  setka();segment(); break;
    case 3:  segm=a[3];  c=3;  setka();segment(); break;
    case 4:  segm=a[4];  c=4;  setka();segment(); break;
    case 5:  segm=a[5];  c=5;  setka();segment(); break;
  }i++;if(i>5){i=0;}}

void segment(){
  switch(segm){                                                                 
    case 0: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,0);ch(G_SEG,1);ch(H_SEG,1);break;// 0 
    case 1: ch(A_SEG,1);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,1);break;// 1 
    case 2: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,1);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,1);ch(G_SEG,0);ch(H_SEG,1);break;// 2
    case 3: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,0);ch(H_SEG,1);break;// 3
    case 4: ch(A_SEG,1);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 4 
    case 5: ch(A_SEG,0);ch(B_SEG,1);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,1);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 5   
    case 6: ch(A_SEG,0);ch(B_SEG,1);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 6  
    case 7: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,1);break;// 7  
    case 8: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 8
    case 9: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,1);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 9
  }}  

void setka(){
  switch(c){                                                             
    case 0:ch(C1_SET,0);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 1:ch(C1_SET,1);ch(C2_SET,0);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 2:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,0);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 3:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,0);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 4:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,0);ch(C6_SET,1);break;  
    case 5:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,0);break;  
  }}  

void ch(int pin, int logic){digitalWrite(pin,logic);}  

11 (2025-03-28 03:42:04 отредактировано AnArAmo)

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

http://forum.rcl-radio.ru/uploads/images/2025/03/0ce87101c5abe108e092867952f85be7.jpg

ВТ  и круглый значок справа не горят. вроде и  ВС  не горит.

12

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

Вы используете такое подключение транзисторных ключей - http://forum.rcl-radio.ru/viewtopic.php … 506#p11506

13

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

liman324 пишет:

Вы используете такое подключение транзисторных ключей - http://forum.rcl-radio.ru/viewtopic.php … 506#p11506

Да. Транзистор BC548. вместо 6.8к поставил 5к резистор.Такой был.

14

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

Я для теста как то запустил этот индикатор на вашем проекте - часы  ИВ 22. Все работало. Часы ходили.

15

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

А если так:

#define  C1_SET  0
#define  C2_SET  1
#define  C3_SET  2
#define  C4_SET  3
#define  C5_SET  4
#define  C6_SET  5

#define  A_SEG   6
#define  B_SEG   7
#define  C_SEG   8
#define  D_SEG   9
#define  E_SEG  10
#define  F_SEG  11
#define  G_SEG  12
#define  H_SEG  13

#include <MsTimer2.h>

int i,segm,c;
int a[6];
int fff;


void setup(){
 MsTimer2::set(4, to_Timer);MsTimer2::start();
 pinMode(C1_SET,OUTPUT); pinMode(C2_SET,OUTPUT);pinMode(C3_SET,OUTPUT);
 pinMode(C4_SET,OUTPUT);pinMode(C5_SET,OUTPUT);pinMode(C6_SET,OUTPUT); 
 pinMode(A_SEG,OUTPUT); pinMode(B_SEG,OUTPUT);pinMode(C_SEG,OUTPUT);
 pinMode(D_SEG,OUTPUT);pinMode(E_SEG,OUTPUT);pinMode(F_SEG,OUTPUT);
 pinMode(G_SEG,OUTPUT);pinMode(H_SEG,OUTPUT);  
  }

void loop(){
  fff++;
  if(fff>9){fff=0;}
  a[0]=fff;
  a[1]=fff;
  a[2]=fff;
  a[3]=fff;
  a[4]=fff;
  a[5]=fff;
  delay(1000);
  }  


void to_Timer(){
    switch(i){
    case 0:  segm=a[0];  c=0;  setka();segment(); break;
    case 1:  segm=a[1];  c=1;  setka();segment(); break;
    case 2:  segm=a[2];  c=2;  setka();segment(); break;
    case 3:  segm=a[3];  c=3;  setka();segment(); break;
    case 4:  segm=a[4];  c=4;  setka();segment(); break;
    case 5:  segm=a[5];  c=5;  setka();segment(); break;
  }i++;if(i>5){i=0;}}

void segment(){
  switch(segm){                                                                 
    case 0: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,0);ch(G_SEG,1);ch(H_SEG,1);break;// 0 
    case 1: ch(A_SEG,1);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,1);break;// 1 
    case 2: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,1);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,1);ch(G_SEG,0);ch(H_SEG,1);break;// 2
    case 3: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,0);ch(H_SEG,1);break;// 3
    case 4: ch(A_SEG,1);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 4 
    case 5: ch(A_SEG,0);ch(B_SEG,1);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,1);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 5   
    case 6: ch(A_SEG,0);ch(B_SEG,1);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 6  
    case 7: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,1);break;// 7  
    case 8: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 8
    case 9: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,1);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 9
  }}  

void setka(){
  switch(c){                                                             
    case 0:ch(C1_SET,0);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 1:ch(C1_SET,1);ch(C2_SET,0);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 2:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,0);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 3:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,0);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 4:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,0);ch(C6_SET,1);break;  
    case 5:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,0);break;  
  }}  

void ch(int pin, int logic){digitalWrite(pin,logic);}

http://forum.rcl-radio.ru/uploads/images/2025/03/0c6f3906615358c24fdd3ce068b30653.png

16

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

Вот это хорошо.
https://www.youtube.com/watch?v=pUkfW53aomw

17

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

Тестирование часов

Должно отображаться текущее время HH:MM
Мигать двоеточие
правильно отображаться день недели

Установка времени:
раскомментировать строку
clock.setDateTime(__DATE__, __TIME__); // Устанавливаем время на часах, основываясь на времени компиляции скетча
загрузить скетч
закомментировать строку
// clock.setDateTime(__DATE__, __TIME__); // Устанавливаем время на часах, основываясь на времени компиляции скетча
загрузить скетч   


#define  C1_SET  0
#define  C2_SET  1
#define  C3_SET  2
#define  C4_SET  3
#define  C5_SET  4
#define  C6_SET  5

#define  A_SEG   6
#define  B_SEG   7
#define  C_SEG   8
#define  D_SEG   9
#define  E_SEG  10
#define  F_SEG  11
#define  G_SEG  12
#define  H_SEG  13

#include <MsTimer2.h>   // http://rcl-radio.ru/wp-content/uploads/2018/11/MsTimer2.zip  
#include <Wire.h> 
#include <DS3231.h> //https://github.com/jarzebski/Arduino-DS3231/archive/master.zip
DS3231 clock;RTCDateTime DateTime;

int i,segm,c,segm_dn, ss,mm,hh,dd,mon,gg,wesk,times;
int a[4],s_tic;
int fff;
unsigned long times_0;


void setup(){
 MsTimer2::set(4, to_Timer);MsTimer2::start(); // timer2 period 4 ms
 pinMode(C1_SET,OUTPUT); pinMode(C2_SET,OUTPUT);pinMode(C3_SET,OUTPUT);
 pinMode(C4_SET,OUTPUT);pinMode(C5_SET,OUTPUT);pinMode(C6_SET,OUTPUT); 
 pinMode(A_SEG,OUTPUT); pinMode(B_SEG,OUTPUT);pinMode(C_SEG,OUTPUT);
 pinMode(D_SEG,OUTPUT);pinMode(E_SEG,OUTPUT);pinMode(F_SEG,OUTPUT);
 pinMode(G_SEG,OUTPUT);pinMode(H_SEG,OUTPUT); 
 Wire.begin();clock.begin();
 // clock.setDateTime(__DATE__, __TIME__); // Устанавливаем время на часах, основываясь на времени компиляции скетча 
  }

void loop(){
  DateTime=clock.getDateTime();// опрос времени
  ss = DateTime.second;
  mm = DateTime.minute;
  hh = DateTime.hour;
  dd = DateTime.day;
  mon = DateTime.month;
  gg = DateTime.year;   // Год
  wesk = DateTime.dayOfWeek; // День недели (1 - воскресенье, 7 - суббота)

  if(millis()-times_0<=500){s_tic = 0;}
  if(millis()-times_0>500){s_tic = 1;}
  if(millis()-times_0>1000){times_0=millis();} 

  times = hh*100+mm;
  a[0]=times/1000;
  a[1]=times/100%10;
  a[2]=times/10%10;
  a[3]=times%10;
 
  delay(100);
  }  


void to_Timer(){
    switch(i){
    case 0:  segm_dn=wesk;  c=0;  setka();dn(); break;
    case 1:  segm=a[0];  c=1;  setka();segment(); break;
    case 2:  segm=a[1];  c=2;  setka();segment(); break;
    case 3:  segm=s_tic; c=3;  setka();tic(); break;
    case 4:  segm=a[2];  c=4;  setka();segment(); break;
    case 5:  segm=a[3];  c=5;  setka();segment(); break;
  }i++;if(i>5){i=0;}}

void segment(){
  switch(segm){                                                                 
    case 0: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,0);ch(G_SEG,1);ch(H_SEG,1);break;// 0 
    case 1: ch(A_SEG,1);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,1);break;// 1 
    case 2: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,1);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,1);ch(G_SEG,0);ch(H_SEG,1);break;// 2
    case 3: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,0);ch(H_SEG,1);break;// 3
    case 4: ch(A_SEG,1);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 4 
    case 5: ch(A_SEG,0);ch(B_SEG,1);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,1);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 5   
    case 6: ch(A_SEG,0);ch(B_SEG,1);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 6  
    case 7: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,1);break;// 7  
    case 8: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 8
    case 9: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,1);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,1);break;// 9
  }}  

void dn(){
  switch(segm_dn){
    // День недели (1 - воскресенье, 7 - суббота)                                                                 
    case 1: ch(A_SEG,1);ch(B_SEG,1);ch(C_SEG,1);ch(D_SEG,0);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,1);break;// ВС 
    case 2: ch(A_SEG,0);ch(B_SEG,1);ch(C_SEG,1);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,1);break;// ПН
    case 3: ch(A_SEG,1);ch(B_SEG,1);ch(C_SEG,1);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,0);break;// ВТ
    case 4: ch(A_SEG,1);ch(B_SEG,1);ch(C_SEG,1);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,0);ch(G_SEG,1);ch(H_SEG,1);break;// СР 
    case 5: ch(A_SEG,1);ch(B_SEG,0);ch(C_SEG,1);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,1);break;// ЧТ   
    case 6: ch(A_SEG,1);ch(B_SEG,1);ch(C_SEG,0);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,1);break;// ПТ  
    case 7: ch(A_SEG,1);ch(B_SEG,1);ch(C_SEG,1);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,0);ch(H_SEG,1);break;// СБ  
  }}

void tic(){
  switch(s_tic){                                                             
    case 0: ch(A_SEG,1);ch(B_SEG,1);ch(C_SEG,1);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,1);break;// _
    case 1: ch(A_SEG,1);ch(B_SEG,1);ch(C_SEG,1);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,0);break;// :
  }}      

void setka(){
  switch(c){                                                             
    case 0:ch(C1_SET,0);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 1:ch(C1_SET,1);ch(C2_SET,0);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 2:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,0);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 3:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,0);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 4:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,0);ch(C6_SET,1);break;  
    case 5:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,0);break;  
  }}  

void ch(int pin, int logic){digitalWrite(pin,logic);}

18

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

Вот.  https://www.youtube.com/watch?v=EhU7gF7yW0g

19

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

Сделайте фото, у меня нет возможности сейчас посмотреть ютуб

20

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

AnArAmo пишет:

Вот.  https://www.youtube.com/watch?v=EhU7gF7yW0g

Периодически дни могут сами по себе отключаться и включаться..

21

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

#define  C1_SET  0
#define  C2_SET  1
#define  C3_SET  2
#define  C4_SET  3
#define  C5_SET  4
#define  C6_SET  5

#define  A_SEG   6
#define  B_SEG   7
#define  C_SEG   8
#define  D_SEG   9
#define  E_SEG  10
#define  F_SEG  11
#define  G_SEG  12
#define  H_SEG  13

#include <MsTimer2.h>   // http://rcl-radio.ru/wp-content/uploads/2018/11/MsTimer2.zip  
#include <Wire.h> 
#include <DS3231.h> //https://github.com/jarzebski/Arduino-DS3231/archive/master.zip
DS3231 clock;RTCDateTime DateTime;

int i,segm,c,segm_dn, ss,mm,hh,dd,mon,gg,wesk,times;
int a[4],s_tic, bud,kolorol, prog, timers;
int fff;
unsigned long times_0, times_1;


void setup(){
 MsTimer2::set(4, to_Timer);MsTimer2::start(); // timer2 period 4 ms
 pinMode(C1_SET,OUTPUT); pinMode(C2_SET,OUTPUT);pinMode(C3_SET,OUTPUT);
 pinMode(C4_SET,OUTPUT);pinMode(C5_SET,OUTPUT);pinMode(C6_SET,OUTPUT); 
 pinMode(A_SEG,OUTPUT); pinMode(B_SEG,OUTPUT);pinMode(C_SEG,OUTPUT);
 pinMode(D_SEG,OUTPUT);pinMode(E_SEG,OUTPUT);pinMode(F_SEG,OUTPUT);
 pinMode(G_SEG,OUTPUT);pinMode(H_SEG,OUTPUT); 
 Wire.begin();clock.begin();
 // clock.setDateTime(__DATE__, __TIME__); // Устанавливаем время на часах, основываясь на времени компиляции скетча 
  }

void loop(){
  if(millis()-times_1>=1000){ times_1=millis();
  DateTime=clock.getDateTime();// опрос времени
  ss = DateTime.second;
  mm = DateTime.minute;
  hh = DateTime.hour;
  dd = DateTime.day;
  mon = DateTime.month;
  gg = DateTime.year;   // Год
  wesk = DateTime.dayOfWeek; // День недели (1 - воскресенье, 7 - суббота)
  }

  if(millis()-times_0<=500){s_tic = 0;}
  if(millis()-times_0>500){s_tic = 1;}
  if(millis()-times_0>1000){times_0=millis();} 

  times = hh*100+mm;
  a[0]=times/1000;
  a[1]=times/100%10;
  a[2]=times/10%10;
  a[3]=times%10;
 
  delay(100);
  }  


void to_Timer(){
  bud = 1;
  kolorol = 1;
  prog = 1;
  timers = 1;
  
    switch(i){
    case 0:  segm_dn=wesk; c=0;  setka();dn(bud); break;
    case 1:  segm=a[0];    c=1;  setka();segment(1); break;
    case 2:  segm=a[1];    c=2;  setka();segment(kolorol); break;
    case 3:  segm=s_tic;   c=3;  setka();tic(); break;
    case 4:  segm=a[2];    c=4;  setka();segment(prog); break;
    case 5:  segm=a[3];    c=5;  setka();segment(timers); break;
  }i++;if(i>5){i=0;}}

void segment(bool hhh){
  switch(segm){                                                                 
    case 0: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,0);ch(G_SEG,1);ch(H_SEG,hhh);break;// 0 
    case 1: ch(A_SEG,1);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,hhh);break;// 1 
    case 2: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,1);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,1);ch(G_SEG,0);ch(H_SEG,hhh);break;// 2
    case 3: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,0);ch(H_SEG,hhh);break;// 3
    case 4: ch(A_SEG,1);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,hhh);break;// 4 
    case 5: ch(A_SEG,0);ch(B_SEG,1);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,1);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,hhh);break;// 5   
    case 6: ch(A_SEG,0);ch(B_SEG,1);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,hhh);break;// 6  
    case 7: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,hhh);break;// 7  
    case 8: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,0);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,hhh);break;// 8
    case 9: ch(A_SEG,0);ch(B_SEG,0);ch(C_SEG,0);ch(D_SEG,0);ch(E_SEG,1);ch(F_SEG,0);ch(G_SEG,0);ch(H_SEG,hhh);break;// 9
  }}  

void dn(bool ind_bud){
  switch(segm_dn){
    // День недели (1 - воскресенье, 7 - суббота)                                                                 
    case 1: ch(A_SEG,1);ch(B_SEG,1);ch(C_SEG,1);ch(D_SEG,0);ch(E_SEG,ind_bud);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,1);break;// ВС 
    case 2: ch(A_SEG,0);ch(B_SEG,1);ch(C_SEG,1);ch(D_SEG,1);ch(E_SEG,ind_bud);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,1);break;// ПН
    case 3: ch(A_SEG,1);ch(B_SEG,1);ch(C_SEG,1);ch(D_SEG,1);ch(E_SEG,ind_bud);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,0);break;// ВТ
    case 4: ch(A_SEG,1);ch(B_SEG,1);ch(C_SEG,1);ch(D_SEG,1);ch(E_SEG,ind_bud);ch(F_SEG,0);ch(G_SEG,1);ch(H_SEG,1);break;// СР 
    case 5: ch(A_SEG,1);ch(B_SEG,0);ch(C_SEG,1);ch(D_SEG,1);ch(E_SEG,ind_bud);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,1);break;// ЧТ   
    case 6: ch(A_SEG,1);ch(B_SEG,1);ch(C_SEG,0);ch(D_SEG,1);ch(E_SEG,ind_bud);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,1);break;// ПТ  
    case 7: ch(A_SEG,1);ch(B_SEG,1);ch(C_SEG,1);ch(D_SEG,1);ch(E_SEG,ind_bud);ch(F_SEG,1);ch(G_SEG,0);ch(H_SEG,1);break;// СБ  
  }}

void tic(){
  switch(s_tic){                                                             
    case 0: ch(A_SEG,1);ch(B_SEG,1);ch(C_SEG,1);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,1);break;// _
    case 1: ch(A_SEG,1);ch(B_SEG,1);ch(C_SEG,1);ch(D_SEG,1);ch(E_SEG,1);ch(F_SEG,1);ch(G_SEG,1);ch(H_SEG,0);break;// :
  }}      

void setka(){
  switch(c){                                                             
    case 5:ch(C1_SET,0);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 4:ch(C1_SET,1);ch(C2_SET,0);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 3:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,0);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 2:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,0);ch(C5_SET,1);ch(C6_SET,1);break;  
    case 1:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,0);ch(C6_SET,1);break;  
    case 0:ch(C1_SET,1);ch(C2_SET,1);ch(C3_SET,1);ch(C4_SET,1);ch(C5_SET,1);ch(C6_SET,0);break;  
  }}  

void ch(int pin, int logic){digitalWrite(pin,logic);}

22

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

что то изменилось.   https://www.youtube.com/watch?v=VQ8KN9dl8DU

23

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

Просто опешите или сделайте фото, ссылки на ютуб не открываются у меня.

24

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

liman324 пишет:

Просто опешите или сделайте фото, ссылки на ютуб не открываются у меня.

До этого ссылки на ютуб тоже не открывались?

25

Re: Часы+будильник на П543 (ИЛЦ5-4/7М)

нет, ограничения провайдера