LCD1602能显示两行、每行16个字符,做机器人信息屏、温湿度显示都够用,是电子爱好者很熟悉的器件。不过原生的1602有16根脚,光接线就烦。带I2C转接板的版本用PCF8574芯片把接口压到两根,靠SDA和SCL就能驱动,这篇把接线和最常见的地址坑讲清楚。
为什么推荐I2C版1602
原生1602驱动至少要用到大概7根线,还得处理背光和对比度。带I2C转接板(通常是蓝色板、背后一颗PCF8574芯片)后四个脚就够:VCC、GND、SDA、SCL。对于引脚紧张的小车和带一堆传感器的主控,省出的IO很宝贵。
接线就四根,先对上I2C引脚
Arduino Uno上,SDA对应模拟口A4,SCL对应A5。把模块的SDA接A4、SCL接A5,VCC接5V(部分支持3.3V),GND接地,就完成了。Mega则是数字口20和21。

接线简单,坑在软件侧。先装LiquidCrystal_I2C库,然后一行代码里要写对地址:LiquidCrystal_I2C lcd(0x27, 16, 2)。这个0x27不是固定的。
最坑的就是I2C地址
不同厂家、不同批次,转接板地址可能是0x27、0x20、0x3F,甚至更高。地址写错的结果是屏幕全黑或显示一坨黑方块,看着像硬件坏了,其实是没对上话。解决办法是先跑一个I2C扫描程序,打印出总线上实际能找到的地址,照抄进库的初始化就行,前后几分钟。

还有个小提醒,模块背面蓝色电位器是调对比度的,屏幕有内容但看不清、太淡或太浓,转一下这个旋钮就好,别怀疑是屏坏了。
字符显示常见的小麻烦
想自定义字符(比如图标、进度条),库里提供createChar,先定义像素位图再show。显示中文原生1602不支持,一般靠字模或干脆拼音英文。背光不想一直亮,有backlight开关函数,省电也柔和。
按这套从扫描地址入手,基本一次点亮。I2C版1602接线简单、排错也有固定套路,学会地址扫描这一招,以后I2C设备都能少走弯路。




四根线就能驱动1602,给小车信息屏省下好多引脚,安利给了群里几个朋友
I2C扫描那个地址坑是真的,我一开始写0x27死活不亮,跑了扫描才发现是0x3F
对比度电位器那一下太实用,屏幕黑块一大坨,转了旋钮立刻就清晰了