ESP32/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">
- include <U8g2lib.h>
- define OLED_RESET U8X8_PIN_NONE // 复位引脚
- define OLED_SDA 5
- 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库。