ESP32.md 2.4 KB


notion-id: 260ca4d7-cb7b-8070-9d8c-d0c42e14bc

Dasai Mochi robot V2 ESP32-S3-N16R8配置文件 ESP32【Wifi配网代码】 ESP32 【Dasai Mochi】 ESP32+PCM5102A I2S module【蓝牙音响】 PlatformIO

[!note]+ # 屏幕【SH1106】测试代码

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SH110X.h>

// 定义屏幕参数
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1       // 不使用复位引脚

// 定义I2C引脚
#define I2C_SDA 20
#define I2C_SCL 21

// 创建显示对象 - 使用正确的SH1106驱动
Adafruit_SH1106G display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);

void setup() {
  Serial.begin(115200);
  Serial.println("ESP32C3 SH1106 OLED测试");
  
  // 初始化I2C
  Wire.begin(I2C_SDA, I2C_SCL);
  
  // 降低I2C速度以提高稳定性
  Wire.setClock(400000);  // 400kHz,如果不稳定可降至100000
  
  // 等待OLED初始化
  delay(250);
  
  // 初始化SH1106 OLED
  display.begin(0x3C, true); // 0x3C是常见的I2C地址,如果不工作请尝试0x3D
  
  // 设置显示方向和对比度
  display.setRotation(0);
  display.setContrast(128); // 设置对比度 (0-255)
  
  // 清除显示
  display.clearDisplay();
  
  // 设置文本属性
  display.setTextSize(1);      // 正常1:1文本大小
  display.setTextColor(SH110X_WHITE);
  display.setCursor(0, 0);
  
  // 显示文本
  display.println("ESP32C3SUPERMINI");
  display.println("-------------");
  display.println("SH1106 OLED");
  display.println("128x64 OLDTEST");
  display.println("-------------");
  display.println("TIME:");
  display.println("12:34:56");
  
  // 显示所有绘制的内容
  display.display();
  
  Serial.println("初始化完成");
}

void loop() {
  // 在这里可以添加动态更新内容的代码
  delay(1000);
  
  // 例如:更新显示屏的一部分来显示运行时间
  display.fillRect(0, 48, 128, 16, SH110X_BLACK); // 清除底部区域
  display.setCursor(0, 48);
  display.print("RUNTIME: ");
  display.print(millis() / 1000);
  display.println("Sec");
  display.display();
}