26 (2025-03-29 05:28:06 отредактировано AnArAmo)

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

Не знал, что ютуб в блоке. http://forum.rcl-radio.ru/uploads/images/2025/03/9973fc7ca55aaeb2bac0bb5c189bf399.jpeg

27

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

Судя по фото у Вас перепутаны разряды индикаторов.

вот часть кода, найдите его

   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;

c=1 c=2 и другие это номера разрядов, Вам нудно поменять их местами

пример

  case 0:  segm_dn=wesk; c=5;  setka();dn(bud); break;
    case 1:  segm=a[0];    c=3;  setka();segment(1); break;
    case 2:  segm=a[1];    c=2;  setka();segment(kolorol); break;
    case 3:  segm=s_tic;   c=4;  setka();tic(); break;
    case 4:  segm=a[2];    c=1;  setka();segment(prog); break;
    case 5:  segm=a[3];    c=0;  setka();segment(timers); break;

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

28 (2025-03-29 05:28:38 отредактировано AnArAmo)

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

http://forum.rcl-radio.ru/uploads/images/2025/03/24dbb04088248306fae0aaa4fefc3298.jpeg
Вроде сделал. Должно быть. 09 24. и точки не мигают.


#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/ … Timer2.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=5;  setka();dn(bud); break;
    case 1:  segm=a[0];    c=3;  setka();segment(1); break;
    case 2:  segm=a[1];    c=2;  setka();segment(kolorol); break;
    case 3:  segm=s_tic;   c=4;  setka();tic(); break;
    case 4:  segm=a[2];    c=1;  setka();segment(prog); break;
    case 5:  segm=a[3];    c=0;  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 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);}

29

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

на индикаторе должно быть 1234

#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/ … Timer2.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;
  times = 1234;
  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=5;  setka();dn(bud); break;
    case 1:  segm=a[0];    c=3;  setka();segment(1); break;
    case 2:  segm=a[1];    c=2;  setka();segment(kolorol); break;
    case 3:  segm=s_tic;   c=4;  setka();tic(); break;
    case 4:  segm=a[2];    c=1;  setka();segment(prog); break;
    case 5:  segm=a[3];    c=0;  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 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);}

30

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

может десятки часов перепутаны с двоеточием?

31

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

Это последний скетч.http://forum.rcl-radio.ru/uploads/images/2025/03/7556fe6f8857166375a8ed1c66d216bf.jpeg

32

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

где цифра 1 надо перенести в десятки часов, а единицы часов поменять в двоеточием

#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/ … Timer2.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;
  times = 1234;
  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=5;  setka();dn(bud); break;
    case 1:  segm=a[0];    c=2;  setka();segment(1); break;
    case 2:  segm=a[1];    c=4;  setka();segment(kolorol); break;
    case 3:  segm=s_tic;   c=3;  setka();tic(); break;
    case 4:  segm=a[2];    c=1;  setka();segment(prog); break;
    case 5:  segm=a[3];    c=0;  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 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);}

33

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

liman324 пишет:

где цифра 1 надо перенести в десятки часов, а единицы часов поменять в двоеточием

Я все собрал по вашей схеме. Если возможно поменяйте в скетче. С  Уважением.

34

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

Загрузите мой последний скетч

35

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

http://forum.rcl-radio.ru/uploads/images/2025/03/350750cfbf3a2033f5662248d4187e30.jpeg

Часы не идут. колокольчик мигает.

36

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

Ход часов я пока отключил, скетч просто выводит число 1234

#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/ … Timer2.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;
  times = 1234;
  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=5;  setka();dn(bud); break;
    case 1:  segm=a[0];    c=2;  setka();segment(1); break;
    case 2:  segm=a[1];    c=3;  setka();segment(kolorol); break;
    case 3:  segm=s_tic;   c=4;  setka();tic(); break;
    case 4:  segm=a[2];    c=1;  setka();segment(prog); break;
    case 5:  segm=a[3];    c=0;  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 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);}

37

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/ … Timer2.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;
  times = 1234;
  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=5;  setka();dn(bud); break;
    case 1:  segm=a[0];    c=3;  setka();segment(1); break;
    case 2:  segm=a[1];    c=2;  setka();segment(kolorol); break;
    case 3:  segm=s_tic;   c=4;  setka();tic(); break;
    case 4:  segm=a[2];    c=1;  setka();segment(prog); break;
    case 5:  segm=a[3];    c=0;  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 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);}

38

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

Это последний скетч. на предпоследним было 2 34

http://forum.rcl-radio.ru/uploads/images/2025/03/806fea42e52514231abd49fb3b755eed.jpeg

39

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/ … Timer2.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;
  times = 1234;
  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=5;  setka();dn(bud); break;
    case 1:  segm=a[0];    c=4;  setka();segment(1); break;
    case 2:  segm=a[1];    c=3;  setka();segment(kolorol); break;
    case 3:  segm=s_tic;   c=2;  setka();tic(); break;
    case 4:  segm=a[2];    c=1;  setka();segment(prog); break;
    case 5:  segm=a[3];    c=0;  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 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);}

40

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

Уже что то.
Точки мигают. Но время не идет...http://forum.rcl-radio.ru/uploads/images/2025/03/e1166a83a436986777c3692dff840eca.jpeg

41

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/ … Timer2.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=5;  setka();dn(bud); break;
    case 1:  segm=a[0];    c=4;  setka();segment(1); break;
    case 2:  segm=a[1];    c=3;  setka();segment(kolorol); break;
    case 3:  segm=s_tic;   c=2;  setka();tic(); break;
    case 4:  segm=a[2];    c=1;  setka();segment(prog); break;
    case 5:  segm=a[3];    c=0;  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 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);}

42

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

часы идут. точки мигают. день недели ни тот.

http://forum.rcl-radio.ru/uploads/images/2025/03/53aa1f4d88bd76de3ca8b266656ec1a2.jpeg

43

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

Кстати. При отключение  и включении. Часы время не считают. начинают отсчет с момента компиляции. Хотя на модуле батарея установлена.

44

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(); // считываем время с ds3231 каждые 1000 мс
  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();}

  bud = 1;     // значок будильника
  kolorol = 1; // значок колокольчик
  prog = 1;    // надпись ПРОГ
  timers = 1;  // значок таймер

 
  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=5;  setka();dn(bud); break;
    case 1:  segm=a[0];    c=4;  setka();segment(1); break;
    case 2:  segm=a[1];    c=3;  setka();segment(kolorol); break;
    case 3:  segm=s_tic;   c=2;  setka();tic(); break;
    case 4:  segm=a[2];    c=1;  setka();segment(prog); break;
    case 5:  segm=a[3];    c=0;  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){
    // День недели (0 - воскресенье, 6 - суббота)                                                                 
    case 0: 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 1: 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 2: 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 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,0);ch(G_SEG,1);ch(H_SEG,1);break;// СР
    case 4: 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 5: 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 6: 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 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);}

45

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

Кстати. При отключение  и включении. Часы время не считают. начинают отсчет с момента компиляции. Хотя на модуле батарея установлена.

Надо проверить напряжение на батарее

46

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

напряжение бат - 3.3 в.
кстати. я по прежнему. раскомментирую и закомментирую строки. как вы сказали.
часы по прежнему не идут правильно  при выключении и включении.

а так все вроде норма.

http://forum.rcl-radio.ru/uploads/images/2025/03/d5f9f0bd76a6aa7e93c9528903fa690d.jpeg

47

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

может быть проблема в модуле часов. могу поменять.

48

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

3,3 В это много
Китайцы в модули вставляют вместо аккумуляторов простые батарейки, они начинаются заряжаться, и напряжение становится больше 3 В, я уже с этим сталкивался. Часы могут глючить.

Я выпаивал диод через который идет зарядка батареи.

49

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

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

50

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

liman324 пишет:

3,3 В это много
Китайцы в модули вставляют вместо аккумуляторов простые батарейки, они начинаются заряжаться, и напряжение становится больше 3 В, я уже с этим сталкивался. Часы могут глючить.

Я выпаивал диод через который идет зарядка батареи.

Насколько я знаю. все новые батареи CR2032 3.3 в.