SSD1306 OLED屏怎么接线?Arduino 128x64点亮和I2C地址DA0选择详解

开源复现员硬件DIY 2026-10-15 16:44:55 9阅读 举报

给小车加个状态显示、给温湿度计加块屏,SSD1306驱动的0.96寸OLED是很多人的首选。它分辨率128乘64、功耗低、不需要背光,黑底显示蓝字或白字特别清晰,而且用I2C的话只要四根线就能点亮,比1602液晶省事得多。这篇把接线和点亮的关键点讲清楚。

为什么四根线就够

SSD1306 OLED模块有I2C和SPI两种接口版本,I2C版就引出VCC、GND、SCL、SDA四根线,靠I2C总线跟主控通信。SCL是时钟线、SDA是数据线,把模块的SCL接到主控的A5、SDA接到A4(Arduino Uno用)就能通信。省出来的引脚可以留给传感器和电机。

供电方面VCC一般接3.3V或5V都行,看模块板载稳压设计,多数都能直接吃5V。

点亮前先对 I2C 地址

SSD1306的I2C地址默认是0x3C,由模块上的一个地址选择电阻决定。想换成0x3D,就把AD0或地址选择焊盘改动一下。很多库初始化时写死0x3C,如果你的屏怎么都不亮,先用I2C扫描程序看总线上的实际地址,改过来就好。

用Adafruit_SSD1306库加 Wire库,几行代码就能初始化并画点、写字、显示图形。图案取模工具能把图片转成数组打进程序里。

常见的几个小问题

第一是接线别接反,SCL/SDA两根线一旦对调,屏直接不响应,扫描也扫不到设备。第二是看买的是I2C版还是SPI版,SPI版引脚多、接线不同,别拿I2C的教程硬套。第三是128x64和128x32屏初始化参数不一样,别把尺寸写错。

电源不稳也会导致显示花屏或随机黑屏,尤其和电机共用一个电源时,最好给屏单独留一路干净的供电。

能显示什么,怎么用

OLED可以做数字、中文(需要字模/字库)、简单波形、进度条、图标。给机器人做状态面板、给数据采集做实时曲线都合适。缺点是像素少、做复杂界面和保真度高的图片就吃力。

按四线接线、对上I2C地址、用对库和屏尺寸,SSD1306基本一次点亮。卡壳优先查SCL/SDA对调和地址扫描,一般就解决了。

版权声明:
作者:开源复现员
链接:https://www.aiddithome.com/p/122361caa1bffd.html
来源:硬件DIY
实践版权归作者所有,未经允许请勿转载,若此实践存在违规行为,您可以点击 “举报”。


登录 后发表评论
3条评论
只看不说话
1楼 · 1天前

128x32和128x64参数不一样这点提醒得及时,我一开始写错尺寸整屏乱显示

探头看一眼
2楼 · 1天前

I2C地址扫描那个方法太实用,我买的屏死活不亮,一扫描才发现是0x3D不是0x3C

天快亮了
3楼 · 1天前

SCL/SDA对调是真的容易翻车,我对调完扫不到设备,换回来就好了