#include <Wire.h>
#include <Adafruit_SSD1306.h>
// 定义I2C地址
#define OLED_ADDR1 0x3C // OLED显示屏地址
#define OLED_ADDR2 0x3D // OLED显示屏地址
// 创建设备对象
Adafruit_SSD1306 display1(128, 64, &Wire, -1);
// Adafruit_SSD1306 display2(128, 64, &Wire, -1);
// 将变量声明移到全局区域最前面
int a = 1;
int b = 10;
const int MAX_COUNT = 100; // 添加计数上限
void setup() {
Serial.begin(9600);
Wire.begin();
// 初始化OLED
if (!display1.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR1)) {
Serial.println("OLED 1 初始化失败");
while (1) { delay(10); }
}
// OLED显示设置
display1.setTextSize(1);
display1.setTextColor(WHITE);
display1.clearDisplay();
// if (!display2.begin(SSD1306_SWITCHCAPVCC, OLED_ADDR2)) {
// Serial.println("OLED 2 初始化失败");
// while (1) { delay(10); }
// }
// // OLED显示设置
// display2.setTextSize(1);
// display2.setTextColor(WHITE);
// display2.clearDisplay();
}
void loop() {
updateDisplay();
delay(100); // 刷新间隔
}
// 更新OLED显示
void updateDisplay() {
// 第一个显示屏
display1.clearDisplay();
display1.setCursor(0,0);
display1.print("Counter 1: ");
display1.println(a);
display1.println("----------------");
display1.print("Status: Running");
// 更新计数器1
a = (a >= MAX_COUNT) ? 1 : a + 1;
display1.display();
// // 第二个显示屏
// display2.clearDisplay();
// display2.setCursor(0,0);
// display2.print("Counter 2: ");
// display2.println(b);
// display2.println("----------------");
// display2.print("Status: Running");
// // 更新计数器2
// b = (b >= MAX_COUNT) ? 10 : b + 1;
// display2.display();
}