ARDUINO автономные часы на TM1637(помогите новичку)

BODYAS

✩✩✩✩✩✩✩
18 Янв 2023
1
0
разрабатывал я часы на любимом всеми TM1637, идея была такой
Вначале мы загружаем время на rtc, после кидаем на ИП и убираем на полочку
Как в теории должно было работать
  1. Ардуина спит
  2. делаем прерывание по кнопке
  3. выводим время на дисплей около 3 секунд
  4. сон ардуины
что-то у меня пошло не по плану, и по итогу я заимел такой код
C++:
#include <microDS3231.h>
#include <GyverPower.h>
#include "GyverTM1637.h"
#include "GyverTimer.h"  // подключаем библиотеку

#define BUT 5
#define clock 5
#define pup_del 500
#define CLK 4
#define DIO 3
#define cycle_pup 6


GyverTM1637 disp(CLK, DIO);
MicroDS3231 rtc;
GTimer myTimer(MS);

void setup() {
  rtc.setTime(COMPILE_TIME);
  power.autoCalibrate();
  power.setSleepMode(POWERDOWN_SLEEP);
  attachInterrupt(0, wakeup, RISING);
  disp.clear();        // очистить
  disp.brightness(7);  // яркость 0-7
  pinMode(BUT, INPUT_PULLUP);
  pinMode(clock, OUTPUT);
}



void loop() {
  digitalWrite(clock, HIGH);
  myTimer.setTimeout(3000);
  disp.displayClock(rtc.getHours(), rtc.getMinutes());  // вывести часы и минуты
  pup();
  if (myTimer.isReady()) {
    digitalWrite(clock, LOW);
    power.sleep(SLEEP_FOREVER);
  }
}

void wakeup() {
}
void pup() {
for(int i; i < pup_cycle; i++){
  disp.point(0);
  delay(pup_del);
  disp.point(1);
  delay(pup_del);
}
}
Основная проблема скорее всего в таймере, ибо сон я тут вынес в отдельный таймер, но не пин не выключается, не ардуина в сон не идёт, но прошерстив документацию я ничего не нашел, надеюсь, вы поможете
Помогите пожалуйста, ибо тут я уже попытался вывести питание на цифровой порт, и просто его выключать, но это не сработало, так ещё и сон что-то неработает,