Arduino 和LCD1602液晶屏 I2C接口不显示

2019-07-13 23:50发布

引脚说明

GND ------ 地线  VCC ------ 电源(5V or 3.3v 电源不同显示效果有点差别) SDA ------ I2C 数据线 SCL ------ I2C 时钟线  

接线方法

LCD1602 i2c模块                         Ardunio Uno   GND                           <------>        GND接地线 VCC                           <------>         5V 接电源 SDA                            <------>         A4 SCL                            <------>         A5 教程可以看 https://blog.csdn.net/ling3ye/article/details/51542424 1.很多人可能会碰到上传后背景灯亮了,但是只有上面一行有一整排字符块同时显示的尴尬问题,这是由于我们用的芯片的版本和楼主的不同所导致的,楼主用的是PCF8574的芯片,而我们用的是PCF8574AT的芯片,所以接口通讯地址是不一样的,PCF8574的地址是0x27,而我们用的PCF8574AT的地址是0x3f,一定要注意这点。或者用教程里头寻找设备地址的代码。 PCF8574AT可以在你的i2c模块上可以看到。   2.SDA接A4端口和SCL接A5端口是接的AREF区域的接口,大家不要误会认为是接4和5号这两个IO口,这是错误的连接,应该是直接接板上analog in区域的A4和A5口,不要接错了。而mega2560板上直接就有标着SDA、SCL的两个口,大家直接对号入座的连接就好了。 3.最后就是电位器必须要调一下,就能看到显示了。这个是我遇到不显示的关键。 setCursor()函数说明,对于lcd 1602第一个参数0-15, 定义列,第二个参数0-1, 定义行。 对于lcd 2004第一个参数0-19, 定义列,第二个参数0-3, 定义行。 setCursor()的方法来重新定位光标。移动光标,只需要调用setCursor()以行和列的位置。例如,对一个2x16 的显示屏: lcd.setCursor(0, 0); // top left lcd.setCursor(15, 0); // top right lcd.setCursor(0, 1); // bottom left lcd.setCursor(15, 1); // bottom right