以下是一个示例代码,用于设置Arduino Uno和DS1302实时时钟模块,并确保时间逐渐增加:
#include
// 定义DS1302模块的引脚连接
const int CLK_PIN = 4;
const int DATA_PIN = 5;
const int RST_PIN = 6;
DS1302 rtc(CLK_PIN, DATA_PIN, RST_PIN);
void setup() {
// 初始化串口通信
Serial.begin(9600);
// 设置DS1302模块的时间
rtc.halt(false);
rtc.setDOW(SATURDAY); // 设置星期几(范围从1到7,1代表星期日)
rtc.setTime(12, 0, 0); // 设置时、分、秒
rtc.setDate(1, 1, 2022); // 设置年、月、日
}
void loop() {
// 读取DS1302模块的时间
int second = rtc.getSeconds();
int minute = rtc.getMinutes();
int hour = rtc.getHours();
int day = rtc.getDate();
int month = rtc.getMonth();
int year = rtc.getYear();
// 打印时间到串口监视器
Serial.print("现在的时间是:");
Serial.print(hour);
Serial.print(":");
Serial.print(minute);
Serial.print(":");
Serial.print(second);
Serial.print(" ");
Serial.print(year);
Serial.print("/");
Serial.print(month);
Serial.print("/");
Serial.println(day);
// 增加一秒钟
rtc.updateTime();
delay(1000);
}
这段代码首先在setup
函数中初始化了DS1302模块,并设置了初始时间。然后在loop
函数中,通过rtc.updateTime()
函数每隔一秒钟增加一秒钟的时间,并将时间打印到串口监视器中。