模块熟悉
第 19 课·视频:OLED 显示屏
唯一用 I²C 的模块,两根信号线;也是唯一能"显示"的模块
前面所有模块,要么只能"读",要么只能"亮/响"。
OLED 是套件里唯一能显示信息的——文字、数字、图标,都能画上去。它让你的作品从"会闪的灯"变成"能说话的东西"。
看的时候注意三件事
第一,它是唯一有两个信号线的模块。
| 针脚 | 作用 |
|---|---|
| GND | 地 |
| VDD | 电源(就是正极,和 VCC 一个意思) |
SCK |
时钟线(就是 SCL) |
| SDA | 数据线 |
为什么有两个信号线? 因为它用的是 I²C 总线——一种"两根线就能挂很多设备"的通信方式。后面细讲。
注意你板子上的丝印:教程里普遍写
VCC和SCL,但你手上这块印的是VDD和SCK。是同一个东西,接的位置完全一样,别被字母差异唬住。
第二,注意顺序。
I²C 的两根线不能随便接——SCK 接 SCK,SDA 接 SDA。接反了屏幕不亮,但不会烧坏,换过来就行。
第三,注意显示的位置。
不是所有内容都显示在同一个地方。你得指定"在第几行、第几列"画。视频里我调了几次坐标,你会看到数字写歪了、挤在一起——这都是正常的,多试两次就有手感了。
I²C 是什么,两句话讲清楚
传统的接法是一个设备一对线。你有 3 个传感器,就要 3 根信号线。
I²C 不一样:两根线,可以挂一长串设备。
那怎么区分谁是谁?每个设备有个"地址"。主控在数据里带上地址,喊到谁,谁才应答。
所以你以后接别的 I²C 模块(很多传感器都是 I²C 的),SCK 和 SDA 是可以共用的——不用再占新引脚。这是 I²C 最大的好处。
但这里有个坑:地址冲突。 如果两个设备地址一样,它们会同时应答,谁也没法正常工作。买模块的时候留意一下地址。
自测
答案与解析
I²C 总线只需要两根线:一根时钟(SCK/SCL)、一根数据(SDA)。加上电源和地,总共四根线接板子上,但信号线只有两根。
VDD,教程里写的是 VCC,怎么办?答案与解析
模块上的丝印是厂家随便印的。VCC/VDD/3V3/VIN 这一族都是"正极"的意思。记住:丝印看功能,不看字面。
答题要点
答题要点应该包含:好处——多个设备共用两根线,省引脚,也省接线;扩展新设备时不用重新规划引脚。代价——① 设备地址不能冲突;② 总线是共享的,同一时刻只能有一个设备说话,速度相对慢;③ 任何一根线出问题,整条总线上的设备都受影响。
拓展如果没有 I²C,你有 5 个传感器要接,会占用多少个引脚?和 I²C 一比呢?
这个问题课上不讲,留给你自己找答案——**问 AI 是最好的办法**。
提示:算一下"一对一"需要多少根信号线,再和 I²C 的两根对比。想想为什么嵌入式系统特别喜欢 I²C 和 SPI 这类"总线"。
拓展OLED 屏幕上的字,是用什么方式"画"出来的?
这个问题课上不讲,留给你自己找答案——**问 AI 是最好的办法**。
提示:搜"点阵字库 取模"、"OLED 显示原理 像素"。想一想:一个汉字在 16×16 的点阵里,需要多少个"开关"来决定亮不亮?
本节你要动手做的事
- [ ] 接好四根线:
VDD→3.3V,GND→GND,SCK/SDA→ 对应引脚 - [ ] 先让它显示一行字,确认屏幕能亮
- [ ] 试试显示一个会变化的数字(比如你在读的传感器值)
- [ ] 调一调显示的位置,体会"坐标"的感觉
- [ ] 做完自测题