如何使用Arduino Nano点亮OLED显示屏(一):Hello word!

在本教程的第一部分中,我们将学习如何使用Arduino Nano和SSD1306驱动的OLED显示屏来显示简单的文本信息。这个项目不仅适合初学者了解Arduino编程的基础知识,也是探索OLED技术的一个好起点。
1
接口定义与硬件参数

- 四脚接口
- 引脚功能:
- GND:逻辑电路接地;
- VDD:逻辑电源(3.3V或5V兼容);
- SCL:I2C时钟线;
- SDA:I2C数据线。
- 设备地址:默认I2C从地址为
0x3C
(SA0=0时),部分模块可能为0x3D
(SA0=1时)。 - 硬件规格
- 分辨率:128×64像素,显示区域21.74×10.864 mm;
- 点间距:0.17×0.17 mm;
- 功耗:正常显示时约20-28mA,休眠时为微安级;
- 工作温度:-20℃~70℃。
2
通信协议与驱动原理

- I2C通信时序
- 命令与数据区分:
- 写命令时,首字节为
0x00
,后跟命令字节; - 写数据时,首字节为
0x40
,后跟数据字节。 - 数据帧格式:起始信号→从机地址→控制字节(命令/数据标识)→数据内容→停止信号。
- 显存管理
- GRAM结构:显存分为8页(每页8行),每页128字节,对应屏幕的128列×8行;
- 地址模式:
- 页模式:逐列写入,列地址自动递增,换页需手动设置;
- 水平/垂直模式:自动换行或换列。
- 坐标设置:通过
0xB0~B7
设置页地址,0x00~0x0F
和0x10~0x1F
分别设置列地址的低/高位8
3
驱动方法与代码示例

- 初始化流程
- 关闭显示(
0xAE
); - 设置对比度(
0x81
+ 对比度值); - 设置显示起始行(
0x40
); - 配置扫描方向、复用比率、预充电周期等。
// 示例初始化命令序列
Oled_WriteByte(0xAE, OLED_CMD); // 关闭显示
Oled_WriteByte(0x81, OLED_CMD); // 对比度控制
Oled_WriteByte(0xFF, OLED_CMD); // 最大对比度
Oled_WriteByte(0xA1, OLED_CMD); // 段重映射(水平翻转)
- 显示控制
- 清屏:填充显存为0;
- 字符显示:通过预取字模数据逐列写入(如6×8 ASCII或16×16汉字);
- 图形绘制:通过操作显存实现点、线、圆等基本图形。
4
硬件准备与接线




12
对于本教程,我们将使用带有SSD1306控制器的128x64 OLED显示屏,以及Arduino Nano。
所需材料:
- Arduino Nano
- SSD1306驱动的OLED显示屏(128x64)
- 杜邦线若干
- 面包板(可选)
接线图:
OLED | Arduino Nano |
VCC | 5V |
GND | GND |
SDA | A4 |
SCL | A5 |
5
软件准备

- 安装库文件:通过Arduino IDE的库管理器搜索并安装
Adafruit SSD1306
和Adafruit GFX
库。
6
编写代码

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET -1 // 如果未连接复位引脚,请设置为-1
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
void setup() {
Serial.begin(9600);
if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
Serial.println(F("SSD1306 allocation failed"));
for(;;);
}
display.display();
delay(2000); // 显示启动画面2秒
display.clearDisplay(); // 清除屏幕
display.setTextSize(1); // 设置文本大小
display.setTextColor(SSD1306_WHITE); // 设置文本颜色
display.setCursor(0, 20); // 设置光标位置
display.print("Hello World!"); // 打印文本
display.display(); // 更新显示
}
void loop() {
// 主循环保持空闲
}
7
调试与优化






1234
- 检查物理连接:确保所有连线正确无误。
- 确认I2C地址:大多数情况下是
0x3C
或0x3D
,可以通过I2C扫描工具来检测具体地址。 - 调整显示内容:根据需要修改代码中的显示内容、字体大小等参数。
8
上传代码




12
- 打开Arduino IDE。
- 通过菜单栏选择
工具 > 开发板 > Arduino Nano
来设置你的开发板类型。 - 由于市场上存在不同版本的Arduino Nano,它们可能使用不同的微控制器(如ATmega168或ATmega328)。因此,你需要根据你的板子选择正确的处理器:
- 选择
工具 > 处理器 > ATmega328P (Old Bootloader)
如果你使用的是较旧版本的Nano。 - 或者选择
工具 > 处理器 > ATmega328P
对于新版本的Nano。 - 连接Arduino Nano后,在Arduino IDE中选择
工具 > 端口
,然后选择与Arduino Nano对应的串行端口。通常情况下,它会被标记为类似COM3
(Windows)或者/dev/ttyUSB0
(Linux/macOS)的形式。 - 上传代码
- 当确认代码无误后,点击“上传”按钮(右箭头图标)。
- Arduino IDE将会编译代码并将它上传到Arduino Nano。
- 在上传过程中,你会看到TX和RX LED灯闪烁,表示数据正在传输。
- 成功上传后,你应该能在OLED屏幕上看到预期的结果。










更多相关项目
猜你喜欢
评论/提问(已发布 0 条)

