2025/05/05 oxxo Arduino 无标签

OLED128x64(I2C)接线及示例代码

最常见的 Arduino 用 OLED 是 I2C 接口(4 个引脚):

引脚表示 含义
VCC 电源正极(通常3.5V或5V)
GND 电源地
SCL 时钟线(接Arduino的SCL)
SDA 数据线(接Arduino的SDA)

接线方式(以 I2C 为例)

OLED引脚 接Arduino UNO
VCC 5V(有些OLED要求接3.5V,请确认背面标注)
GND GND
SCL A5(UNO的I2C时钟)
SDA A4(UNO的I2C数据)

Arduino 示例代码(使用 U8g2 库):
1.安装库:Arduino IDE > 库管理器 > 搜索并安装 U8g2
2.示例代码如下:


#include 
#include 

// 初始化:U8G2_SSD1306_128X64_NONAME_F_HW_I2C(使用硬件I2C)
U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R0); // R0 = 正向显示

void setup() {
  u8g2.begin();
}

void loop() {
  u8g2.clearBuffer();          // 清除显示缓冲区
  u8g2.setFont(u8g2_font_ncenB08_tr); // 设置字体
  u8g2.drawStr(0, 20, "Hello OLED!");
  u8g2.sendBuffer();           // 将缓冲内容送到 OLED
  delay(1000);
}

注意
在 U8g2 中,Y 坐标不是从屏幕顶部开始的,而是文字基线的位置,所以:
•屏幕左上角坐标是 (0,0),但文字第一行要写在大约 Y=10~12 左右(根据字体而定)
•使用 u8g2.drawStr(x, y, “文字”),其中 y 决定输出的“基线”

补充说明:
你也可以用下面方式来确定每行的高度:

int height = u8g2.getMaxCharHeight(); // 获取当前字体的像素高度

然后多行文本排布如下:


u8g2.drawStr(0, height * 1, "第1行");
u8g2.drawStr(0, height * 2, "第2行");
u8g2.drawStr(0, height * 3, "第3行");

oxxo

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注