ESP32/ESP32-C3 OLED

来自无人智胜
Root留言 | 贡献2025年11月2日 (日) 16:21的版本 (创建页面,内容为“== ESP32-C3_OLED == ESP32-C3 OLED 是一款非常实用且便宜的 ESP32-C3 Supermini,配备 0.42 英寸 OLED 显示屏。 它在所有已知平台上出售。 大多数经销商不提供技术数据,这有时很难启动和运行...... OLED 显示器需要解决方法才能正常运行,因为 U8g2 库中没有专用的 72x40 构造函数。 技术规格 SDA 是 D6 SCL 是 D5 分辨率为 72x40 使用 U8g2 进行代码 === 项目描述 === ESP32-C3 OLED…”)
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转到导航 跳转到搜索

ESP32-C3_OLED

ESP32-C3 OLED 是一款非常实用且便宜的 ESP32-C3 Supermini,配备 0.42 英寸 OLED 显示屏。 它在所有已知平台上出售。 大多数经销商不提供技术数据,这有时很难启动和运行...... OLED 显示器需要解决方法才能正常运行,因为 U8g2 库中没有专用的 72x40 构造函数。 技术规格 SDA 是 D6 SCL 是 D5 分辨率为 72x40 使用 U8g2 进行代码

项目描述

ESP32-C3 OLED板是一款基于ESP32-C3芯片的实用且低成本的设备,配备0.42英寸OLED显示屏。该板在各种平台上广泛销售,但技术文档通常缺乏。提供的代码使用U8g2库,并采用了一种变通方法在128x64缓冲区中居中显示内容,因为该库本身不支持72x40分辨率。

  • 主要规格
    • 显示分辨率:72x40像素
    • I2C引脚:SDA连接D6,SCL连接D5
    • 使用库:U8g2

Arduino代码示例

以下代码演示了如何初始化显示屏并显示基本文本。通过偏移量在128x64缓冲区中将显示内容居中。

<source lang="cpp">

  1. include <U8g2lib.h>
  2. define OLED_RESET U8X8_PIN_NONE // 复位引脚
  3. define OLED_SDA 5
  4. define OLED_SCL 6

U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0, OLED_RESET, OLED_SCL, OLED_SDA); int width = 72; int height = 40; int xOffset = 30; // = (132-w)/2 int yOffset = 12; // = (64-h)/2

int c = 0;

void handle_oled(int c) {

 u8g2.clearBuffer();
 u8g2.setFont(u8g2_font_4x6_tr);
 u8g2.drawStr(xOffset + 0, yOffset + 10, "显示屏工作正常!");
 u8g2.drawStr(xOffset + 0, yOffset + 20, "尽情使用吧");
 char buffer[20];
 snprintf(buffer, sizeof(buffer), "运行时间: %d秒", c);
 u8g2.drawStr(xOffset + 0, yOffset + 30, buffer);
 u8g2.sendBuffer();

}

void setup(void) {

 u8g2.begin();
 u8g2.setContrast(255);     // 设置最大对比度
 u8g2.setBusClock(400000);  // 400kHz I2C

}

void loop(void) {

 handle_oled(c);
 c++;
 delay(1000);

} </source>

仓库链接

  • GitHub仓库: peff74/ESP32-C3_OLED
  • 相关主题: arduino, esp32, oled, ssd1306, arduino-sketch, esp32-c3, esp32-c3-super-mini

注意事项

代码将I2C总线速度设置为400kHz并使用最大对比度。显示屏显示一个简单的运行时间计数器。在使用前,请确保已在Arduino IDE中安装U8g2库。