226

Re: Ретро часы на ИВ-6

Это скетч в который я бы хоте добавить настройку времени.

#include <MsTimer2.h>
#include <Wire.h>
#include <DS3231.h>
DS3231 clock;RTCDateTime DateTime;
  int an, segm,i;
  byte a[6];
  #define NUM_LEDS 5
#include "FastLED.h"
#define PIN 13
#define MAX_BRIGHTNESS 164      // Thats full on, watch the power!
#define MIN_BRIGHTNESS 32       // set to a minimum of 25%
int const brightnessInPin = A0; // Вывод аналогового входа, к которому подключен потенциометр управления яркостью.
CRGB leds[NUM_LEDS];
byte counter;

void setup(){ 
    FastLED.addLeds<WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
  FastLED.setBrightness(MAX_BRIGHTNESS);
  pinMode(13, OUTPUT);
   Wire.begin();clock.begin();
MsTimer2::set(2, to_Timer);MsTimer2::start();
  // clock.setDateTime(__DATE__, 00TIME45); // Устанавливаем время на часах, основываясь на времени компиляции скетча
  
pinMode(9,OUTPUT);  // D9  === A0
pinMode(10,OUTPUT); // D10 === A1
pinMode(11,OUTPUT); // D11 === A2
pinMode(12,OUTPUT); // D12 === A3
pinMode(0,OUTPUT); // D0 === A4
pinMode(1,OUTPUT); // D1 === A5

pinMode(2,OUTPUT);  // D2  === a
pinMode(3,OUTPUT);  // D3  === b
pinMode(4,OUTPUT);  // D4  === c
pinMode(5,OUTPUT);  // D5  === d
pinMode(6,OUTPUT);  // D6  === e
pinMode(7,OUTPUT);  // D7  === f
pinMode(8,OUTPUT);  // D8  === g


}

void loop(){
    int mappedValue = map(analogRead(brightnessInPin), 0, 1023, 0, 255);
  FastLED.setBrightness(constrain(mappedValue, MIN_BRIGHTNESS, MAX_BRIGHTNESS));
  int mappedHue;
    for (int i = 0; i < NUM_LEDS; i++ ) {         // от 0 до первой трети
    leds[i] = CHSV(counter + i * 2, 255, 255);  // HSV. Увеличивать HUE (цвет)
    // умножение i уменьшает шаг радуги
  }
  counter++;        // counter меняется от 0 до 255 (тип данных byte)
  FastLED.show();
  delay(9);         // скорость движения радуги
  DateTime=clock.getDateTime();// опрос времени
  a[0]=DateTime.hour/10;
  a[1]=DateTime.hour%10;
  a[2]=DateTime.minute/10;
  a[3]=DateTime.minute%10;
  a[4]=DateTime.second/10;
  a[5]=DateTime.second%10;

}// loop

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


void segment(){
  switch(segm){                                                                 
             //  A       B       C       D       E       F       G 
    case 0: ch(2,0);ch(3,0);ch(4,0);ch(5,0);ch(6,0);ch(7,0);ch(8,1);break;// 0
    case 1: ch(2,1);ch(3,0);ch(4,0);ch(5,1);ch(6,1);ch(7,1);ch(8,1);break;// 1
    case 2: ch(2,0);ch(3,0);ch(4,1);ch(5,0);ch(6,0);ch(7,1);ch(8,0);break;// 2
    case 3: ch(2,0);ch(3,0);ch(4,0);ch(5,0);ch(6,1);ch(7,1);ch(8,0);break;// 3   
    case 4: ch(2,1);ch(3,0);ch(4,0);ch(5,1);ch(6,1);ch(7,0);ch(8,0);break;// 4
    case 5: ch(2,0);ch(3,1);ch(4,0);ch(5,0);ch(6,1);ch(7,0);ch(8,0);break;// 5
    case 6: ch(2,0);ch(3,1);ch(4,0);ch(5,0);ch(6,0);ch(7,0);ch(8,0);break;// 6
    case 7: ch(2,0);ch(3,0);ch(4,0);ch(5,1);ch(6,1);ch(7,1);ch(8,1);break;// 7
    case 8: ch(2,0);ch(3,0);ch(4,0);ch(5,0);ch(6,0);ch(7,0);ch(8,0);break;// 8
    case 9: ch(2,0);ch(3,0);ch(4,0);ch(5,0);ch(6,1);ch(7,0);ch(8,0);break;// 9 
  }}
void anod(){
  switch(an){                                                             
    case 0:ch(9,0);ch(10,1);ch(11,1);ch(12,1);ch(0,1);ch(1,1);break; 
    case 1:ch(9,1);ch(10,0);ch(11,1);ch(12,1);ch(0,1);ch(1,1);break;
    case 2:ch(9,1);ch(10,1);ch(11,0);ch(12,1);ch(0,1);ch(1,1);break;
    case 3:ch(9,1);ch(10,1);ch(11,1);ch(12,0);ch(0,1);ch(1,1);break;
    case 4:ch(9,1);ch(10,1);ch(11,1);ch(12,1);ch(0,0);ch(1,1);break;
    case 5:ch(9,1);ch(10,1);ch(11,1);ch(12,1);ch(0,1);ch(1,0);break;
  }}

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

227

Re: Ретро часы на ИВ-6

Должно быть так:

clock.setDateTime(__DATE__, __TIME__);

228

Re: Ретро часы на ИВ-6

Спасибо большое, увидел свою ошибку, надо было убрать "//" перед фразой. а то что там числа были, это я пытался хоть как то время выставить. И всё же подскажите пожалуйста, а получится добавить кнопки настройки времени не задействуя пин D13 и А0

229

Re: Ретро часы на ИВ-6

Создайте кнопки коррекции времени в setup()

  pinMode(A1,INPUT_PULLUP);
  pinMode(A2,INPUT_PULLUP);

Далее после строки:
DateTime=clock.getDateTime();// опрос времени

добавить:
hh_reg = DateTime.hour;mm_reg = DateTime.minute;

Новые переменные нужно создать

int hh_reg,mm_reg;

Создаем 2 кнопки коррекции времени для минут и часов

if(digitalRead(A1)==LOW){hh_reg++;if(hh_reg>23){hh_reg=0;}clock.setDateTime(2024, 01, 7, hh_reg, mm_reg, 0);delay(200);}

if(digitalRead(A2)==LOW){mm_reg++;if(mm_reg>59){mm_reg=0;}clock.setDateTime(2024, 01, 7, hh_reg, mm_reg, 0);delay(200);}

230

Re: Ретро часы на ИВ-6

здравствуйте, спасибо за прекрасный открытый проект. собрал на ИВ-22. все работает. хотелось бы внести небольшое изменение в скетч, но понял что не могу толком разобраться. не программист я. идея заключается в добавлении эффекта переключения цифр. видел это на каких то светодиодных часах.  например цифра уползает наверх.   

как я вижу это: к каждой цифре добавляется пара кадров.  например сейчас горит 0. следующий кадр половинка нуля только на верху, нижняя часть уже пустая, а следующий кадр половинка единицы только в нижней части индикатора, ну и третий кадр уже вся единица. эти два промежуточных кадра должны быть короткими по времени. http://forum.rcl-radio.ru/uploads/images/2024/01/72272c165c9a49ba93551b3af6756611.jpeg

я готов даже проспонсировать, например 1000р.

231

Re: Ретро часы на ИВ-6

Я подумаю над Вашим вопросом.

232

Re: Ретро часы на ИВ-6

Подскажите что сделать если часы начинают "бежать" при подключении питания. Вчера где-то за 2-2,5 часа побежали на 1,5 минуты, после ночи опять подключил, было опережение все те же 1,5 минуты, но через час работы уже где то 2,5 минуты опережение.

233

Re: Ретро часы на ИВ-6

Замерьте напряжение на батарейке Ds3231

234

Re: Ретро часы на ИВ-6

Не очень!

[видео]

235

Re: Ретро часы на ИВ-6

liman324 пишет:

Не очень!

да. выглядит не так как хотелось..

щас тоже попробовал сделать, остановился на таком эффекте


// сегменты 
ch(5,0);ch(6,0);ch(7,0);ch(10,0);ch(11,0);ch(9,0);ch(8,1); delay (900);  // 0
ch(5,0);ch(6,0);ch(7,1);ch(10,0);ch(11,0);ch(9,1);ch(8,0); delay (100);      /// 2
ch(5,1);ch(6,0);ch(7,0);ch(10,1);ch(11,1);ch(9,1);ch(8,1); delay (900);  // 1
ch(5,0);ch(6,0);ch(7,0);ch(10,0);ch(11,1);ch(9,1);ch(8,0); delay (100);     /// 3
ch(5,0);ch(6,0);ch(7,1);ch(10,0);ch(11,0);ch(9,1);ch(8,0); delay (900);  // 2
ch(5,1);ch(6,0);ch(7,0);ch(10,1);ch(11,1);ch(9,0);ch(8,0); delay (100);     /// 4
ch(5,0);ch(6,0);ch(7,0);ch(10,0);ch(11,1);ch(9,1);ch(8,0); delay (900);  // 3
ch(5,0);ch(6,1);ch(7,0);ch(10,0);ch(11,1);ch(9,0);ch(8,0); delay (100);     /// 5
ch(5,1);ch(6,0);ch(7,0);ch(10,1);ch(11,1);ch(9,0);ch(8,0); delay (900);  // 4
ch(5,0);ch(6,1);ch(7,0);ch(10,0);ch(11,0);ch(9,0);ch(8,0); delay (100);     /// 6
ch(5,0);ch(6,1);ch(7,0);ch(10,0);ch(11,1);ch(9,0);ch(8,0); delay (900);  // 5


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

236

Re: Ретро часы на ИВ-6

Это сложно, у меня нет этих часов чтобы было возможность проверить работу кода, поэтому я не смогу Вам помочь.

237

Re: Ретро часы на ИВ-6

Замерил напряжение на батарейке 3,1 вольта. на самой DS 3231 выпаивал маленький диод, тк в инете написано мол что данный модуль рассчитан на питание от аккумулятора формата 2032 и когда вставляешь батарейку чтоб она не заряжалась надо выпаять диод. Напряжение нигде не просажено.http://forum.rcl-radio.ru/uploads/images/2024/01/2f92073b295e578b0a1d00bd187d3156.jpg

238

Re: Ретро часы на ИВ-6

Возможно я туплю, но вроде всё туда подставил. После загрузки скетча часы и минуты начинают просто бегать быстро, секунды просто горят, не идут. На кнопки реакция есть - цифры начинают бежать ещё быстрее

#include <MsTimer2.h>
#include <Wire.h>
#include <DS3231.h>
DS3231 clock;RTCDateTime DateTime;
int hh_reg,mm_reg;
  int an, segm,i ;
  byte a[6];
  #define NUM_LEDS 5
#include "FastLED.h"
#define PIN 13
#define MAX_BRIGHTNESS 164      // Thats full on, watch the power!
#define MIN_BRIGHTNESS 32       // set to a minimum of 25%
int const brightnessInPin = A0; // Вывод аналогового входа, к которому подключен потенциометр управления яркостью.
CRGB leds[NUM_LEDS];
byte counter;

void setup(){ 
    FastLED.addLeds<WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
  FastLED.setBrightness(MAX_BRIGHTNESS);
  pinMode(13, OUTPUT);
   Wire.begin();clock.begin();
MsTimer2::set(2, to_Timer);MsTimer2::start();
   //clock.setDateTime(__DATE__, __TIME__); // Устанавливаем время на часах, основываясь на времени компиляции скетча
  
pinMode(9,OUTPUT);  // D9  === A0
pinMode(10,OUTPUT); // D10 === A1
pinMode(11,OUTPUT); // D11 === A2
pinMode(12,OUTPUT); // D12 === A3
pinMode(0,OUTPUT); // D0 === A4
pinMode(1,OUTPUT); // D1 === A5

pinMode(2,OUTPUT);  // D2  === a
pinMode(3,OUTPUT);  // D3  === b
pinMode(4,OUTPUT);  // D4  === c
pinMode(5,OUTPUT);  // D5  === d
pinMode(6,OUTPUT);  // D6  === e
pinMode(7,OUTPUT);  // D7  === f
pinMode(8,OUTPUT);  // D8  === g



}

void loop(){
    int mappedValue = map(analogRead(brightnessInPin), 0, 1023, 0, 255);
  FastLED.setBrightness(constrain(mappedValue, MIN_BRIGHTNESS, MAX_BRIGHTNESS));
  int mappedHue;
    for (int i = 0; i < NUM_LEDS; i++ ) {         // от 0 до первой трети
    leds[i] = CHSV(counter + i * 2, 255, 255);  // HSV. Увеличивать HUE (цвет)
    // умножение i уменьшает шаг радуги
  }
  counter++;        // counter меняется от 0 до 255 (тип данных byte)
  FastLED.show();
  delay(9);         // скорость движения радуги
  DateTime=clock.getDateTime();// опрос времени
  hh_reg = DateTime.hour;mm_reg = DateTime.minute;
  if(digitalRead(A1)==LOW){hh_reg++;if(hh_reg>23){hh_reg=0;}clock.setDateTime(2024, 01, 7, hh_reg, mm_reg, 0);delay(200);}

if(digitalRead(A2)==LOW){mm_reg++;if(mm_reg>59){mm_reg=0;}clock.setDateTime(2024, 01, 7, hh_reg, mm_reg, 0);delay(200);}
  a[0]=DateTime.hour/10;
  a[1]=DateTime.hour%10;
  a[2]=DateTime.minute/10;
  a[3]=DateTime.minute%10;
  a[4]=DateTime.second/10;
  a[5]=DateTime.second%10;
 
}// loop


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


void segment(){
  switch(segm){                                                                 
             //  A       B       C       D       E       F       G 
    case 0: ch(2,0);ch(3,0);ch(4,0);ch(5,0);ch(6,0);ch(7,0);ch(8,1);break;// 0
    case 1: ch(2,1);ch(3,0);ch(4,0);ch(5,1);ch(6,1);ch(7,1);ch(8,1);break;// 1
    case 2: ch(2,0);ch(3,0);ch(4,1);ch(5,0);ch(6,0);ch(7,1);ch(8,0);break;// 2
    case 3: ch(2,0);ch(3,0);ch(4,0);ch(5,0);ch(6,1);ch(7,1);ch(8,0);break;// 3   
    case 4: ch(2,1);ch(3,0);ch(4,0);ch(5,1);ch(6,1);ch(7,0);ch(8,0);break;// 4
    case 5: ch(2,0);ch(3,1);ch(4,0);ch(5,0);ch(6,1);ch(7,0);ch(8,0);break;// 5
    case 6: ch(2,0);ch(3,1);ch(4,0);ch(5,0);ch(6,0);ch(7,0);ch(8,0);break;// 6
    case 7: ch(2,0);ch(3,0);ch(4,0);ch(5,1);ch(6,1);ch(7,1);ch(8,1);break;// 7
    case 8: ch(2,0);ch(3,0);ch(4,0);ch(5,0);ch(6,0);ch(7,0);ch(8,0);break;// 8
    case 9: ch(2,0);ch(3,0);ch(4,0);ch(5,0);ch(6,1);ch(7,0);ch(8,0);break;// 9 
  }}
void anod(){
  switch(an){                                                             
    case 0:ch(9,0);ch(10,1);ch(11,1);ch(12,1);ch(0,1);ch(1,1);break; 
    case 1:ch(9,1);ch(10,0);ch(11,1);ch(12,1);ch(0,1);ch(1,1);break;
    case 2:ch(9,1);ch(10,1);ch(11,0);ch(12,1);ch(0,1);ch(1,1);break;
    case 3:ch(9,1);ch(10,1);ch(11,1);ch(12,0);ch(0,1);ch(1,1);break;
    case 4:ch(9,1);ch(10,1);ch(11,1);ch(12,1);ch(0,0);ch(1,1);break;
    case 5:ch(9,1);ch(10,1);ch(11,1);ch(12,1);ch(0,1);ch(1,0);break;
  }}

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

239

Re: Ретро часы на ИВ-6

Не определены входы кнопок, нажатие кнопки = замыкание на GND

pinMode(A1,INPUT_PULLUP);
pinMode(A2,INPUT_PULLUP);

240

Re: Ретро часы на ИВ-6

Добавил, ничего не поменялось, цифры по прежнему бегут

241

Re: Ретро часы на ИВ-6

[видео]

#include <MsTimer2.h>
#include <Wire.h>
#include <DS3231.h>
DS3231 clock;RTCDateTime DateTime;
int hh_reg,mm_reg;
  int an, segm,i ;
  byte a[6];
  #define NUM_LEDS 5
#include "FastLED.h"
#define PIN 13
#define MAX_BRIGHTNESS 164      // Thats full on, watch the power!
#define MIN_BRIGHTNESS 32       // set to a minimum of 25%
int const brightnessInPin = A0; // Вывод аналогового входа, к которому подключен потенциометр управления яркостью.
CRGB leds[NUM_LEDS];
byte counter;

void setup(){ 
    FastLED.addLeds<WS2812, PIN, GRB>(leds, NUM_LEDS).setCorrection( TypicalLEDStrip );
  FastLED.setBrightness(MAX_BRIGHTNESS);
  pinMode(13, OUTPUT);
   Wire.begin();clock.begin();
MsTimer2::set(2, to_Timer);MsTimer2::start();
   //clock.setDateTime(__DATE__, __TIME__); // Устанавливаем время на часах, основываясь на времени компиляции скетча
  
pinMode(9,OUTPUT);  // D9  === A0
pinMode(10,OUTPUT); // D10 === A1
pinMode(11,OUTPUT); // D11 === A2
pinMode(12,OUTPUT); // D12 === A3
pinMode(0,OUTPUT); // D0 === A4
pinMode(1,OUTPUT); // D1 === A5

pinMode(2,OUTPUT);  // D2  === a
pinMode(3,OUTPUT);  // D3  === b
pinMode(4,OUTPUT);  // D4  === c
pinMode(5,OUTPUT);  // D5  === d
pinMode(6,OUTPUT);  // D6  === e
pinMode(7,OUTPUT);  // D7  === f
pinMode(8,OUTPUT);  // D8  === g
pinMode(A1,INPUT_PULLUP);
pinMode(A2,INPUT_PULLUP);
}

void loop(){
    int mappedValue = map(analogRead(brightnessInPin), 0, 1023, 0, 255);
  FastLED.setBrightness(constrain(mappedValue, MIN_BRIGHTNESS, MAX_BRIGHTNESS));
  int mappedHue;
    for (int i = 0; i < NUM_LEDS; i++ ) {         // от 0 до первой трети
    leds[i] = CHSV(counter + i * 2, 255, 255);  // HSV. Увеличивать HUE (цвет)
    // умножение i уменьшает шаг радуги
  }
  counter++;        // counter меняется от 0 до 255 (тип данных byte)
  FastLED.show();
  delay(9);         // скорость движения радуги
  DateTime=clock.getDateTime();// опрос времени
  hh_reg = DateTime.hour;mm_reg = DateTime.minute;
  if(digitalRead(A1)==LOW){hh_reg++;if(hh_reg>23){hh_reg=0;}clock.setDateTime(2024, 01, 7, hh_reg, mm_reg, 0);delay(200);}
 if(digitalRead(A2)==LOW){mm_reg++;if(mm_reg>59){mm_reg=0;}clock.setDateTime(2024, 01, 7, hh_reg, mm_reg, 0);delay(200);}
  a[0]=DateTime.hour/10;
  a[1]=DateTime.hour%10;
  a[2]=DateTime.minute/10;
  a[3]=DateTime.minute%10;
  a[4]=DateTime.second/10;
  a[5]=DateTime.second%10;
}// loop


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


void segment(){
  switch(segm){                                                                 
             //  A       B       C       D       E       F       G 
    case 0: ch(2,0);ch(3,0);ch(4,0);ch(5,0);ch(6,0);ch(7,0);ch(8,1);break;// 0
    case 1: ch(2,1);ch(3,0);ch(4,0);ch(5,1);ch(6,1);ch(7,1);ch(8,1);break;// 1
    case 2: ch(2,0);ch(3,0);ch(4,1);ch(5,0);ch(6,0);ch(7,1);ch(8,0);break;// 2
    case 3: ch(2,0);ch(3,0);ch(4,0);ch(5,0);ch(6,1);ch(7,1);ch(8,0);break;// 3   
    case 4: ch(2,1);ch(3,0);ch(4,0);ch(5,1);ch(6,1);ch(7,0);ch(8,0);break;// 4
    case 5: ch(2,0);ch(3,1);ch(4,0);ch(5,0);ch(6,1);ch(7,0);ch(8,0);break;// 5
    case 6: ch(2,0);ch(3,1);ch(4,0);ch(5,0);ch(6,0);ch(7,0);ch(8,0);break;// 6
    case 7: ch(2,0);ch(3,0);ch(4,0);ch(5,1);ch(6,1);ch(7,1);ch(8,1);break;// 7
    case 8: ch(2,0);ch(3,0);ch(4,0);ch(5,0);ch(6,0);ch(7,0);ch(8,0);break;// 8
    case 9: ch(2,0);ch(3,0);ch(4,0);ch(5,0);ch(6,1);ch(7,0);ch(8,0);break;// 9 
  }}
void anod(){
  switch(an){                                                             
    case 0:ch(9,0);ch(10,1);ch(11,1);ch(12,1);ch(0,1);ch(1,1);break; 
    case 1:ch(9,1);ch(10,0);ch(11,1);ch(12,1);ch(0,1);ch(1,1);break;
    case 2:ch(9,1);ch(10,1);ch(11,0);ch(12,1);ch(0,1);ch(1,1);break;
    case 3:ch(9,1);ch(10,1);ch(11,1);ch(12,0);ch(0,1);ch(1,1);break;
    case 4:ch(9,1);ch(10,1);ch(11,1);ch(12,1);ch(0,0);ch(1,1);break;
    case 5:ch(9,1);ch(10,1);ch(11,1);ch(12,1);ch(0,1);ch(1,0);break;
  }}

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

242

Re: Ретро часы на ИВ-6

Кнопки подключены? Без резисторов? При нажатии замыкание на GND?

243

Re: Ретро часы на ИВ-6

Кнопки подключены по вот такой схемеhttp://forum.rcl-radio.ru/uploads/images/2024/01/0d7580761e9698b551d4866624658c1c.png

244

Re: Ретро часы на ИВ-6

Не верно.
Должно быть при нажатии замыкание на GND.

245

Re: Ретро часы на ИВ-6

Но можете оставить как есть

убрать

pinMode(A1,INPUT_PULLUP);
pinMode(A2,INPUT_PULLUP);

заменить

if(digitalRead(A1)==LOW){hh_reg++;if(hh_reg>23){hh_reg=0;}clock.setDateTime(2024, 01, 7, hh_reg, mm_reg, 0);delay(200);}
if(digitalRead(A2)==LOW){mm_reg++;if(mm_reg>59){mm_reg=0;}clock.setDateTime(2024, 01, 7, hh_reg, mm_reg, 0);delay(200);}

на

if(digitalRead(A1)==HIGH){hh_reg++;if(hh_reg>23){hh_reg=0;}clock.setDateTime(2024, 01, 7, hh_reg, mm_reg, 0);delay(200);}
if(digitalRead(A2)==HIGH){mm_reg++;if(mm_reg>59){mm_reg=0;}clock.setDateTime(2024, 01, 7, hh_reg, mm_reg, 0);delay(200);}

246

Re: Ретро часы на ИВ-6

Спасибо, попробую

247

Re: Ретро часы на ИВ-6

Всё заработало. Но часы по прежнему сильно бегут. За час на 1 минуту, и всё больше и больше. Может ds3231 неисправна? Заметил что часы начинают бежать лишь при подключении питания, на них по 5 вольтовой линии подходит 5,1 вольт через dcdc преобразователь mt3608, преобразователь питается 3,9-4,1 вольт от лбп, в последующем планировал питать от 18650

248

Re: Ретро часы на ИВ-6

Возможно ds3231 не исправна

249

Re: Ретро часы на ИВ-6

Вот похожее на Ваши часы решение, в скетче поменяете пины управления и должно все заработать - http://forum.rcl-radio.ru/viewtopic.php?pid=3312#p3312

250

Re: Ретро часы на ИВ-6

http://forum.rcl-radio.ru/viewtopic.php?pid=3312#p3312 - посмотрел архив этой темы, похоже это и есть Ваш проект который Вы искали, там та же схема которую Вы опубликовали.