想把LCD1602接到Arduino上显示点字符,最省事的方法就是加一个I2C转接板。原本要占一大排引脚的液晶屏,接上块PCF8574转接芯片后,只要拉4根线就搞定,把宝贵的IO口省下来干别的。这篇就手把手把接线、找地址、写代码整套过一遍。
为什么推荐用I2C转接板接LCD1602
裸的LCD1602是HD44780并行接口,真正用起来要占RS、RW、EN加上D4到D7,等于七八个IO脚,还得配对比度电位器,非常费引脚。背面的PCF8574把并行口改成I2C总线,主机端就只剩VCC、GND、SDA、SCL四根线。墨绿色那排是接屏的16针,蓝色那侧才是接Arduino的排针。
LCD1602 I2C接线怎么接
对Arduino UNO来说,引脚基本是固定的:转接板的VCC接5V,GND接GND,SDA接A4,SCL接A5。我这里用的是UNO,SDA对应A4、SCL对应A5,如果你用的是Mega,则是20和21;如果是Leonardo或Micro,就是2和3,别照抄错。

接好后先别急着写显示程序,第一步用一段I2C扫描代码确认模块地址,绝大多数转接板是0x27,也有部分是0x3F(PCF8574A芯片)。地址不对,显示永远黑屏,这是新手最容易卡住的地方。
装库和显示代码示例
库用著名的LiquidCrystal_I2C,在库管理器里搜就能安上。初始化时把地址、行列数传进去,写好后背光点亮,setCursor定位,print打内容。屏幕不亮先怀疑三个点:SDA/SCL有没有接反、背光跳线帽有没有插上、蓝电位器对比度有没有旋出来。

对比度这个坑最常见——屏幕其实通电了,但字符压根看不见。把转接板上那个蓝色小电位器转一下,出现黑影和亮格就说明活着,再微调看上字清晰。实在不亮就回过去再扫一遍地址,十有八九是地址没对上。
一根总线还能挂多个屏
PCF8574上A0、A1、A2三个跳线点可以改I2C地址,默认全接VCC是0x27,焊短某一脚就能换地址,这样一条总线上能挂好几个屏,只占两个IO口,做多路状态显示很灵活。把转接板和1602的各条数据线对应焊好,一套能复用的显示模块就成型了。


4根线比并口那七八根省心多了,IO口终于能省出来干别的
挂多屏要改A0A1A2的地址,这点对做多路显示很有用
POT对比度那个电位器真是大坑,我第一次全黑屏搞半天,转一下就正常了
地址0x27/0x3F搞错直接黑屏,跑一遍I2C扫描一照就明白,省得瞎猜