#include // Подключение DS1302: RST=7, CLK=6, DAT=5 iarduino_RTC time(RTC_DS1302, 6, 4, 5); void setup() { Serial.begin(9600); time.begin(); delay(300); Serial.println("=== Установка времени для Екатеринбурга (UTC+5) ==="); // ★★★★★ АКТУАЛЬНОЕ ВРЕМЯ ЕКАТЕРИНБУРГА ★★★★★ // Дата: 15 декабря 2025 года // Время: 18:27:00 (вечер) // День недели: 15 декабря 2025 - понедельник (1) // Устанавливаем точное время Екатеринбурга // settime(секунды, минуты, часы, день, месяц, год, день_недели) time.settime(0, // секунды: 00 18, // минуты: 27 12, // часы: 8 (6 вечера по 24-часовому формату) 2, // день: 15 02, // месяц: 12 (декабрь) 26, // год: 2025 (последние 2 цифры) 5); // день недели: 1 (понедельник) Serial.println("Время успешно установлено!"); Serial.println("Дата: 15.12.2025"); Serial.println("Время: 8:58:00 (Екатеринбург, UTC+5)"); Serial.println("День недели: Понедельник"); Serial.println("================================"); // Проверяем установленное время delay(1000); showCurrentTime(); } void loop() { // Показываем время каждые 10 секунд static unsigned long lastShow = 0; if (millis() - lastShow >= 10000) { lastShow = millis(); showCurrentTime(); } // Автоматическая коррекция каждую минуту (опционально) static int lastMinute = -1; time.gettime(); if (time.minutes != lastMinute) { lastMinute = time.minutes; // Корректируем секунды для точности if (time.seconds > 5) { // Если часы убежали вперед, сбрасываем секунды time.settime(0, time.minutes, time.Hours, time.day, time.month, time.year, time.weekday); Serial.println("[Коррекция] Сброс секунд"); } } } void showCurrentTime() { time.gettime(); Serial.print("Екатеринбург: "); print2digits(time.Hours); Serial.print(":"); print2digits(time.minutes); Serial.print(":"); print2digits(time.seconds); Serial.print(" Дата: "); print2digits(time.day); Serial.print("."); print2digits(time.month); Serial.print(".20"); print2digits(time.year); Serial.print(" День недели: "); switch(time.weekday) { case 1: Serial.println("Понедельник"); break; case 2: Serial.println("Вторник"); break; case 3: Serial.println("Среда"); break; case 4: Serial.println("Четверг"); break; case 5: Serial.println("Пятница"); break; case 6: Serial.println("Суббота"); break; case 7: Serial.println("Воскресенье"); break; } } void print2digits(int number) { if (number < 10) { Serial.print('0'); } Serial.print(number); }