前面我们学了1602 LCD屏幕(蓝底白字,显示字符),今天再来学一种更精致、更现代的显示设备——0.96寸OLED显示屏

OLED屏幕比LCD屏幕更清晰、视角更广、对比度更高,而且功耗极低。智能手表、手环、微型仪表盘……这些设备用的都是OLED屏幕。

今天这节课,我们就用SSD1306驱动的0.96寸OLED屏幕,让ESP32拥有一块精致的小屏幕!

第一步:找到课程,看看成品效果

打开逗脑IDE,点击顶部 “文档”,在 “课程” → “ESP32 + MicroPython” 分类下,找到OLED显示屏

在这里插入图片描述

打开课件,你会看到本节课的最终效果:OLED屏幕上清晰显示着“Hello!”、“Hello, World 2!”、“Hello, World 3!”三行白色文字。

在这里插入图片描述

第二步:认识OLED屏幕

本节课使用的是 0.96寸OLED屏幕,驱动芯片是SSD1306,接口为I2C

参数规格
尺寸0.96英寸
分辨率128×64像素
驱动芯片SSD1306
接口I2C(只需2根数据线!)
颜色白色(或蓝白双色)
特点自发光、高对比度、低功耗

OLED与1602 LCD的对比:

1602 LCD0.96寸 OLED
显示内容字符(16×2行)像素(128×64)
显示图形❌ 不可以✅ 可以画图
对比度一般极高
视角宽(几乎无死角)
功耗较高(需要背光)极低(自发光)
接线多根线(或I2C模块)仅4根线(I2C)

📸 截图位置③
画面内容: OLED屏幕实物照片,标注出VCC、GND、SCL、SDA四个引脚。
截图作用: 让用户认识硬件长什么样。

第三步:动手接线——I2C接口,只需4根线!

OLED屏幕(I2C接口)只有4个引脚,接线非常简单:

屏幕引脚连接ESP32说明
VCC3.3V电源正极
GNDGND电源地
SCKGPIO22I2C时钟线
SDAGPIO21I2C数据线

在这里插入图片描述

第四步:驱动——MicroPython内置支持!

MicroPython自带了framebuf(帧缓存)库,配合ssd1306.py驱动文件,可以很方便地控制OLED屏幕。

将驱动文件ssd1306.py上传到ESP32后,就可以开始写代码了(驱动文件在课件中自行下载):

from machine import Pin, SoftI2C
from time import sleep
import ssd1306

# 创建I2C对象(SCL=GPIO22, SDA=GPIO21)
i2c = SoftI2C(scl=Pin(22), sda=Pin(21))

# 设置屏幕分辨率
oled_width = 128
oled_height = 64

# 创建OLED屏幕对象(I2C地址默认为0x3C)
oled = ssd1306.SSD1306_I2C(oled_width, oled_height, i2c)

# 在指定位置显示文字(坐标x, y)
oled.text('Hello!', 0, 0)          # 第1行
oled.text('Hello, World 2!', 0, 10) # 第2行(间隔10像素)
oled.text('Hello, World 3!', 0, 20) # 第3行

# 刷新屏幕显示
oled.show()

代码逻辑:

步骤函数作用
1SoftI2C()创建I2C通信对象
2SSD1306_I2C()创建OLED屏幕对象
3oled.text()在指定(x,y)位置写入文字(存入缓存)
4oled.show()刷新屏幕,显示所有内容

💡 坐标说明: 屏幕左上角为(0, 0),x向右增加(0127),y向下增加(063)

第五步:保存运行,看效果!

在运行代码之前,需要先将ssd1306.py驱动文件上传到ESP32。这个文件是操作OLED屏幕的底层驱动,上传后主代码才能正常调用。

在这里插入图片描述

Ctrl + S 保存主代码,选择ESP32开发板设备,给文件命名(比如oled.py),点击保存。

在这里插入图片描述

点击运行按钮,OLED屏幕立刻亮起,清晰地显示三行文字!

在这里插入图片描述

OLED屏幕还能做什么?

应用场景用途
环境监测仪显示温湿度、光照、空气质量
智能手表/手环显示时间、步数、心率
桌面小摆件显示天气、日期、提醒
菜单显示屏配合按键显示菜单选项
数据可视化绘制波形图、柱状图
游戏屏幕贪吃蛇、射击小游戏

画图、滚动、动画……玩法超多!

OLED屏幕是像素级的显示设备,你可以用它来画图、画线、画矩形!

# 画一个矩形
oled.rect(10, 30, 50, 20, 1)

# 画一条线
oled.line(0, 0, 127, 63, 1)

# 显示取反(反转颜色)
oled.invert(True)

所有绘图操作结束后,别忘了调用oled.show()刷新屏幕!

全程回顾

步骤操作效果
找到课程文档→课程→ESP32+MicroPython→OLED显示屏了解OLED屏幕
上传驱动上传ssd1306.py到ESP32驱动就绪
认识原理I2C协议 + 帧缓存(framebuf)理解显示原理
动手接线VCC→3.3V, GND→GND, SCL→GPIO22, SDA→GPIO21硬件就位
打开代码点击“打开”按钮代码进入编辑器
保存运行Ctrl+S → 选择ESP32 → 运行屏幕显示文字!

如果你对本节课感兴趣,去官网(www.dounao.cn)下载逗脑IDE,准备好相关配件,跟着课件走一遍。

有任何问题或建议,欢迎在评论区留言告诉我们。

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐