#include "RTClib.h" // 包含RTC实时时钟库
RTC_DS1307 rtc; // 创建DS1307实时时钟对象
// 星期名称数组(中德双语)
const char* daysOfTheWeek[7][2] = {
{"Sunday", "Sonntag"}, // 星期日
{"Monday", "Montag"}, // 星期一
{"Tuesday", "Dienstag"}, // 星期二
{"Wednesday", "Mittwoch"},// 星期三
{"Thursday", "Donnerstag"},// 星期四
{"Friday", "Freitag"}, // 星期五
{"Saturday", "Samstag"} // 星期六
};
void setup() {
Serial.begin(115200); // 初始化串口通信,波特率115200
// 中文: 尝试初始化RTC模块
// Deutsch: Versuchen, das RTC-Modul zu initialisieren
if (!rtc.begin()) {
Serial.println("Couldn't find RTC"); // 中文: 未找到RTC模块
Serial.println("RTC-Modul nicht gefunden"); // Deutsch
Serial.flush(); // 等待串口数据发送完成
abort(); // 中止程序运行
}
// 中文: 如果RTC模块丢失电源,可以取消下面一行的注释来设置时间
// Deutsch: Wenn das RTC-Modul keine Stromversorgung hatte, können Sie die nächste Zeile auskommentieren, um die Zeit einzustellen
// rtc.adjust(DateTime(F(__DATE__), F(__TIME__))); // 编译时自动设置时间为电脑时间
}
void loop() {
DateTime now = rtc.now(); // 获取当前时间
// 中文: 打印日期和时间信息
// Deutsch: Datums- und Uhrzeitinformationen drucken
Serial.print("当前时间Current time: "); // 中文: 当前时间:
Serial.print("Aktuelle Zeit: "); // Deutsch
// 中文: 打印年-月-日
// Deutsch: Jahr-Monat-Tag drucken
Serial.print(now.year(), DEC);
Serial.print('/');
Serial.print(now.month(), DEC);
Serial.print('/');
Serial.print(now.day(), DEC);
// 中文: 打印星期
// Deutsch: Wochentag drucken
Serial.print(" (");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()][0]); // 英文
Serial.print("/");
Serial.print(daysOfTheWeek[now.dayOfTheWeek()][1]); // 德文
Serial.print(") ");
// 中文: 打印时:分:秒
// Deutsch: Stunde:Minute:Sekunde drucken
Serial.print(now.hour(), DEC);
Serial.print(':');
Serial.print(now.minute(), DEC);
Serial.print(':');
Serial.print(now.second(), DEC);
Serial.println();
Serial.println(); // 空行分隔
delay(3000); // 每3秒更新一次显示
}