SSD1306 OLED屏怎么接线?0.96寸I2C显示屏显示字符和图片教程

机械臂装配侠硬件DIY 2026-10-16 12:56:48 4阅读 举报

做智能小车、温控器、闹钟这些项目,总免不了想加个屏幕看数据。比起又大又占引脚的LCD1602,SSD1306驱动的0.96寸OLED小屏是现在的香饽饽:它几乎不占地方、显示清晰、功耗也低,最关键是走I2C总线,接两根线就能显示。这篇文章把接线和显示逻辑讲明白。

先认清板子:I2C版和SPI版不一样

市面上最常见的SSD1306 OLED是128x64分辨率、0.96寸的,黑色PCB上一块蓝色(或白色/黄色)小屏。它有几个版本:最常见的是四脚的I2C版本,引脚标着GND、VCC、SCL、SDA四个;也有七脚的SPI版本,多出DC、RST、CS。接线前先看丝印,别把I2C和SPI板子用同一套接法。

OLED本身是3.3V器件,但模块板上往往带了稳压,所以I2C版通常可以直接接Arduino的5V供电。如果板子上没有稳压、只标3.3V,就老老实实接3.3V,别图省事接5V把屏烧了。串口通信电平一般也能兼容,稳妥起见按模块丝印供电标注来。

I2C怎么接线:两根信号线就够

以Arduino Uno为例,I2C版SSD1306接线极简:VCC接5V(或3.3V看模块),GND接地,SCL接到A5(Uno的I2C时钟脚),SDA接到A4(Uno的I2C数据脚)。就这四根线,连面包板都省心。板上四个引脚顺序不同厂商略有差异,但功能就这四个,对照丝印接对即可。

它用的是I2C地址0x3C(少数是0x3D)。如果显示不出来、屏幕不亮一片黑,很大概率是地址或接线问题。可以先跑一遍I2C扫描库,把挂在总线上的设备地址扫出来,确认读到的就是屏幕,再往下走。

用U8g2库显示字符和简单图片

Arduino显示SSD1306最常用的两个库是Adafruit_SSD1306和U8g2。U8g2更省事,中文显示支持也更好。库装好后,代码里指定DPI尺寸和I2C引脚,初始化后就能画字符、画图标。它会自带几十种内置字体,还能画线、画矩形、画圆形,甚至自己写一个模拟指针表盘。

显示图片也不难:先准备一张128x64像素的纯黑白位图,用工具转成C语言数组,再用库的绘图函数把数组画到屏幕上。所以做小车显示个电池图标、做气象站显示个天气符号,SSD1306都能胜任。

供电、刷新和三个常见坑

OLED的电流峰值不高,几毫安到二十毫安量级,单屏从I2C电源脚供电一般没问题。但它对供电毛刺有点敏感,如果屏幕闪烁或花屏,先检查电源是否干净,必要时在VCC-GND之间加个100nF或10uF滤波电容。

常见坑有三个。一是I2C地址不对,0x3C写成0x3D就扫不到,先扫描确认;二是接线顺序——SCL和SDA接反,刷不出来还死活找不到原因,交叉一下就行;三是SPI和I2C版本混淆,SPI板用I2C接法当然不亮,先看清楚是哪个版本再接线。

SSD1306这块小屏,是给DIY作品加“眼睛”非常友好的一块件。两根信号线、一个成熟库、几行代码,数据、图标、表盘都能上屏,做小车和智能小件基本够用。

版权声明:
作者:机械臂装配侠
链接:https://www.aiddithome.com/p/148fe3f5df2ca6.html
来源:硬件DIY
实践版权归作者所有,未经允许请勿转载,若此实践存在违规行为,您可以点击 “举报”。


登录 后发表评论
4条评论
电烙铁爱好者
1楼 · 12小时前

给小车加个电池图标显示电量,接入挺顺

老张装机
2楼 · 12小时前

U8g2中文支持确实方便,比我之前用Adafruit折腾编码省事

触底反弹的Tony
3楼 · 12小时前

地址扫一下先,我那次就是0x3C和3D搞混怎么都不亮

阿伟不emo
4楼 · 12小时前

I2C两根线就能显示数据,比LCD1602省太多引脚,屏幕也清晰