很多传感器做完,数据只能瘫在电脑串口监视器里看不方便。想让Arduino自己“开口”把数据显示出来,LCD1602带I2C模块的液晶屏是最省事的显示件:一块屏能显示两行、每行16个字符,接上I2C转接板后只要4根线,这篇文章把接线和用法讲清楚。
为什么要带I2C:从10根线省到4根
普通的LCD1602是16列2行的字符液晶屏,但接线要一堆——数据线加控制线往少了说也要10来根,焊起来手忙脚乱。现在多数屏直接带一个I2C接口的背板(核心是PCF8574这类芯片),它把并行显示信号转成I2C串行协议,接Arduino只需要VCC、GND、SDA、SCL四根线,一下清爽很多。
这个背板上通常还有个蓝色的小电位器,是调屏幕对比度的,显示发虚或者太黑时转它就行。

接线表:SDA接A4、SCL接A5
LCD1602 I2C接到Arduino Uno的接法非常固定:VCC接5V(背板上一般有稳压,给5V)、GND接GND、SDA接A4、SCL接A5。A4/A5正是Uno自带的硬件I2C引脚。
接线表:VCC→5V、GND→GND、SDA→A4、SCL→A5。四根线接完,屏幕这边就算好了。

先扫地址再用:0x27还是0x3F
I2C设备都有自己的地址,这块屏最常见的是0x27,也有不少是0x3F,厂商不一样就不同。新手最容易翻车的是程序里写死0x27结果屏不亮。所以第一步建议用一个I2C扫描的示例程序跑一遍,看能不能扫到设备、地址是多少,再把它填进LiquidCrystal_I2C里(Arduino库管理器直接搜装)。
初始化就用lcd.init(),再lcd.backlight()开背光,然后lcd.setCursor(列,行)定位光标,lcd.print()打印内容,比如把土壤湿度、温度、距离这些传感器数据实时刷上去。16列一行最多16个字符,超了就截断或滚屏。
屏不亮、只出方块、字糊,几个排查
屏完全不亮,先查背板的供电和地址对不对;只显示一排小方块或者没字,多半是对比度电位器没调好,转一转那粒蓝色小旋钮;显示乱码,看SDA和SCL有没有接反。另外I2C的总线可以同时挂多块设备(只要地址不冲突),屏幕和传感器并用是常规操作,非常方便。
LCD1602 I2C是把“显示”这件事做成低门槛的一块屏。四根线、一个库、扫一次地址,就能让Arduino把数据亮出来,做温度计、倒计时器、小仪表盘都从这里起步。







四根线显示两行字,比老式1602的几十根并口舒服太多
和数据线放一起明显能省一堆杜邦线,桌面清爽
屏不亮或一坨方块,十有八九是那粒蓝电位器没调对比度
SDA接A4、SCL接A5,Uno默认I2C口别接反了
先跑一遍I2C扫描查地址是真避坑,0x27和0x3F都能扫出来