Arduino uno获取ds3231时钟模块的年、月、日、时、分、秒信息
作者:野牛程序员:2023-12-26 12:22:24Arduino阅读 2997
使用Arduino Uno获取DS3231时钟模块的年、月、日、时、分、秒信息的示例代码如下:
#include <Wire.h>
#include <RTClib.h>
RTC_DS3231 rtc;
void setup() {
Serial.begin(9600);
if (!rtc.begin()) {
Serial.println("Couldn't find RTC");
while (1);
}
if (rtc.lostPower()) {
Serial.println("RTC lost power, let's set the time!");
rtc.adjust(DateTime(F(__DATE__), F(__TIME__)));
}
}
void loop() {
DateTime now = rtc.now();
int year = now.year();
int month = now.month();
int day = now.day();
int hour = now.hour();
int minute = now.minute();
int second = now.second();
Serial.print("Current Date & Time: ");
printDigits(year);
Serial.print("-");
printDigits(month);
Serial.print("-");
printDigits(day);
Serial.print(" ");
printDigits(hour);
Serial.print(":");
printDigits(minute);
Serial.print(":");
printDigits(second);
Serial.println();
delay(1000); // 等待1秒钟
}
void printDigits(int digits) {
// 在数字小于10时前面加0
if (digits < 10)
Serial.print('0');
Serial.print(digits);
}请确保已经安装了RTC库。可以在Arduino IDE中通过"工具" -> "管理库" -> 搜索"RTClib"来安装。
这个代码使用了RTC库,该库支持DS3231时钟模块。在setup函数中初始化RTC对象,并在loop函数中获取当前时间,并将其通过串口输出。printDigits函数用于确保在数字小于10时前面加上0。
请记得连接DS3231模块到Arduino Uno的I2C引脚(通常是A4和A5)以便能够正确通信。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

