arduinooled显示屏u8g
时间: 2025-01-03 22:28:45 浏览: 12
### Arduino U8G库驱动OLED显示屏使用教程
#### 安装U8g2库
为了使Arduino能与OLED屏幕交互,需先安装U8g2库。可以通过Arduino IDE的库管理器搜索并安装该库。
#### 连接硬件
对于128x64 SH1106 OLED屏幕与Arduino之间的连接,通常涉及SCL和SDA两个引脚用于I²C通信协议。确保电源线VCC接到3.3V或5V(取决于模块需求),GND接地[^1]。
#### 初始化设置
初始化过程中创建特定于显示器类型的`U8G2`对象实例。针对SH1106型号,可采用如下方式声明:
```cpp
#include <Wire.h>
#include <U8g2lib.h>
// 创建对应于SH1106 IIC接口的U8G2对象
U8G2_SH1106_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* reset=*/ U8X8_PIN_NONE, /* clock=*/ SDA, /* data=*/ SCL);
```
注意这里假设使用的是软件模拟I²C模式;如果硬件支持,则推荐替换为HW_I2C版本以提高性能[^2]。
#### 编写代码示例
下面给出一段简单的程序用来测试文字输出功能,在屏幕上打印固定字符串以及动态更新的时间戳:
```cpp
void setup(void) {
// 开始初始化序列
u8g2.begin();
}
void loop(void) {
u8g2.clearBuffer(); // 清除缓冲区
// 设置字体大小,默认字号较小适合多行文本展示
u8g2.setFont(u8g2_font_ncenB08_tr);
// 绘制静态消息到内部缓存中
u8g2.drawStr(0, 10, "Hello World!");
// 获取当前时间作为变量内容
char timeString[9];
sprintf(timeString,"%02d:%02d:%02d",hour(),minute(),second());
// 更新位置绘制实时变化的信息
u8g2.drawStr(0, 30, timeString);
u8g2.sendBuffer(); // 发送数据至屏幕刷新显示
delay(1000); // 每秒重绘一次画面保持同步
}
```
此段代码实现了基本的文字渲染效果,并展示了如何利用内置函数处理数值向字符数组转换的过程[^4]。
阅读全文