Попробовал сделать на CH32V003 часы дисплей TM1637 и ртс DS3231. В принципе они заработали вот только проблема нажатие кнопок мк не хочет считывать. Может кто реализовал это в ардуино иде ? Код (C++): #include <Wire.h> #include "Sodaq_DS3231.h" #include "GyverTM1637.h" #define BUTTON_PIN_1 PA2 #define CLK PD6 #define DIO PC4 GyverTM1637 disp(CLK, DIO); //DateTime dt(2025, 2, 4, 21, 38, 0, 5); // год, месяц, день, час, минута, .... //Раскоментировать для первой прошивки для записи времени в модуль ртс unsigned long timing; // Переменная для хранения точки отсчета для работы милис boolean flag; //флаг для работы двоеточия void setup () { pinMode(BUTTON_PIN_1,INPUT_PULLUP); // обозначаем BUTTON_PIN_1 как вход пин Wire.begin(); rtc.begin(); // rtc.setDateTime(dt); //Раскоментировать для первой прошивки для записи времени в модуль ртс disp.clear(); disp.brightness(5); // яркость, 0 - 7 (минимум - максимум) } void loop () { DateTime now = rtc.now(); // Читае время disp.displayClockTwist(now.hour(), now.minute(), 35); // выводим время now.hour() переменная часы , now.minute() переменная для минут //функция мегания светодиодом if (millis() - timing > 500){ // 500 значение паузы timing = millis(); flag = !flag; disp.point(flag); // выкл/выкл точки } }
1. В коде нет команды считывания кнопки. Например - int X = digitalRead(BUTTON_PIN_1); 2. Строку if (millis() - timing > 500){ // 500 значение паузы надо бы писАть if ((millis() - timing) > 500){ // 500 значение паузы чтобы у компилятора крыша не съезжала.
https://forum.amperka.ru/threads/Часы-как-добавить-обработчик-нажатия-кнопок.23996/#post-315584. Новая тема. По отдельности часы работаю кнопки работают а вод все вместе не работает
Противник китайчатины, но заказал на Али пару модулей WCH32ххх. Установил MR Studio. Перегружена "визуалом", и дохрена занимает. Но хорошо, что выдаёт хекс-файл в натуре. Получу девайсы, а там видно будет.