做完一个项目,总想让它能“开口说话”,把传感器数据打出来看。SSD1306驱动的0.96寸OLED屏幕是绝配——单色128x64、自带驱动芯片、走I2C只占两个脚,功耗低还能自己发光不动背光。这篇讲接线、找地址和代码怎么写。
SSD1306 OLED怎么接Arduino
模块一般四个脚:VCC接3.3V或5V(看板子丝印,多数兼容)、GND接地、SCL接A5、SDA接A4。走的是标准I2C,省引脚是它最大的好处。它默认地址是0x3C(也有少数是0x3D),接好先跑一遍I2C扫描把地址确认了,不然显示黑屏多半是地址没对上。

图上是Arduino UNO接0.96寸OLED的完整接线,VCC、GND、SCL(A5)、SDA(A4)四根线,一目了然。这种屏自带驱动,单色显示还带对比度可调,是DIY里最常用的显示模块。
装库和显示字符的代码
库用Adafruit_SSD1306配合Adafruit_GFX,在库管理器里都能搜到。初始化时调用display.begin(SSD1306_SWITCHCAPVCC, 0x3C),把扫描到的地址填进去,再display.clearDisplay()清屏。显示文字就是setTextSize设字号、setCursor定位、print打内容,最后display.display()真正刷新上去——不调用display()屏幕是不会变的。

这颗屏正常工作就能把文字点得清清楚楚。要显示中文的话,基础库自带的是英文点阵,中文需要额外取模或用支持中文字库的库,动手前先确认这一点,能省不少折腾。OLED自己会发光、对比度高,在强光下也比LCD看得清,还很省电。
排障的两个口诀
屏幕不亮先查三处:I2C地址对不对、VCC接的电压对不对、SDA/SCL有没有接反。实在不行就接一根SCL到A5、SDA到A4最稳妥的固定位。把之前做的温湿度、距离数据接到这块屏上实时显示,一个项目的“输出端”就齐了。







显示中文要额外取模或换库,提前确认别到时候傻眼
记得要调display()才真正刷新,不然写完半天不显示
I2C就两脚太省事了,比LCD1602那条并口省一大排引脚
黑屏先查地址,0x3C/0x3D搞错怎么调都不亮