ds1302时钟模块连接oled屏的代码
时间: 2024-01-02 07:03:03 浏览: 147
《STM32单片机+DS1302时钟模块+OLED屏幕》源代码
5星 · 资源好评率100%
以下是DS1302时钟模块连接OLED屏幕的Arduino代码示例:
```
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#include <DS1302.h>
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
int CLK = 9;
int DAT = 8;
int RST = 7;
DS1302 rtc(CLK, DAT, RST);
void setup() {
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
rtc.halt(false);
rtc.writeProtect(false);
//设置时间
rtc.setDOW(SUNDAY);
rtc.setTime(12, 0, 0);
rtc.setDate(1, 1, 2022);
}
void loop() {
display.clearDisplay();
display.setCursor(0, 0);
DateTime now = rtc.now();
display.print(now.year());
display.print('/');
if (now.month() < 10) {
display.print('0');
}
display.print(now.month());
display.print('/');
if (now.day() < 10) {
display.print('0');
}
display.print(now.day());
display.print(' ');
display.print(rtc.getDOWStr(now.dayOfTheWeek()));
display.print(' ');
if (now.hour() < 10) {
display.print('0');
}
display.print(now.hour());
display.print(':');
if (now.minute() < 10) {
display.print('0');
}
display.print(now.minute());
display.print(':');
if (now.second() < 10) {
display.print('0');
}
display.print(now.second());
display.display();
delay(1000);
}
```
这段代码使用了Adafruit_SSD1306和DS1302库来连接OLED屏幕和DS1302时钟模块。首先,我们启动了OLED屏幕并将DS1302时钟模块的时钟设置为当前时间。接下来,在循环中,我们使用rtc.now()函数获取当前时间,并在OLED屏幕上显示。最后,我们等待一秒钟并重复这个过程。
需要注意的是,你需要安装Adafruit_SSD1306和DS1302库才能编译和运行这个代码。
阅读全文