Arduino 使用I2C的1602 LCD

很多时候我们需要显示简单的字符,1602LCD就是很好的选择。通常Arduino 使用1602 LCD需要连接很多线路,需要占用很多个IO口,而是用I2C版本的1602即可省去这样的繁杂。I2C版本只需要VCC(3.3和5都可以,亮度上有些差别),GND,还有SDA(连接A4)和 SCL(连接A5)。

下面就是一个使用I2C在1602上显示的例子:

20131206613

对应的程序和库在这里

Hw

在使用的时候,你可以遇到如下问题:

1.编译不通过。请检查编译器的版本,建议使用 1.0 以上的,因为这是未来的方向。如果还有问题,请检测引用库的方式。如果你将 LiquidCrystal_I2C 放在了Library下面,可以用 #include 这样的方式来引用,或者像我代码中,直接将LiquidCrystal_I2C.cpp 和 LiquidCrystal_I2C.h 放在源文件同样的目录下,你就可以使用 #include "LiquidCrystal_I2C.h"。此外,如果出现编译错误提示在 LiquidCrystal_I2C lcd(0x27,16,2); 这行,就是没有正确引用到LiquidCrystal_I2C.h这个头文件导致的。你可以按照上述检查一下,然后重启编译器试试。

2.烧写之后无显示,首先请检查地址是否正确(地址不正确的情况下最上面可能有方块,下面看起来是空白行),最直接的方法是询问卖家,此外还可以像我之前的一篇文章提到的烧入一个软件来判定地址。其次要检查背后的电位器是否正常,避免实际上已经有数值了只是对比度不正确你看不到而已。如果仍然不行,就需要重新寻找库。这个差别有可能是如下硬件顺序导致的。

1602

可以看到 P0- P3分别对应 RS/RW/CS/P ,另外,P4-P7对应DB4-7。还有一种计是颠倒过来 P0-P3对应DB4-7的。如果存在差别,库文件初始化方式传输Command方式都需要修改的。剩下的就是检查Pin是否有电平输出,如果没有那就是I2C模块坏掉了。

当然,如果你在上面花费了超过8个小时仍然无法解决,我的建议是赶快更换一篇,这个东西不需要研究那么久,你的1602有可能压根就是坏掉的(非常不幸的是我就是因为这个问题花费了无数个夜晚.....)

我最后购买到OK的1602是在 http://arduinochina.taobao.com/?spm=a1z10.1.w1002-2071319798.3.RT0Fkv (Arduino CHINA)

《Arduino 使用I2C的1602 LCD》有8个想法

  1. 博主真不走运,弄了几个小时坏板。。。。

    我那个一直没显示,也折腾了一二十分钟,后来才发现背光太亮了,显示了没看出来。调动背光电阻,就显示出来了。

  2. 非常感谢博主的文章。我研究了三个晚上都没点亮使用IIC的1602屏,现象是屏最上面有方块,下面看起来是空白行,原来是地址不正确(我买的这块屏的地址位于我使用的示例程序中的地址不一致),用博主提供的查询地址程序看到了实际地址,终于成功点亮屏了。

  3. 你好,我的LCD是黃色底黑字
    起初只有共黃色,後來在後面調節字體光度,
    才發現,只有全黑字,沒有文字
    未知道如何解決

    謝謝

    1. 建议检查一下 i2c有没有搞反?地址是否正确? 另外试试独立供电,我发现有时候arduino供电不足以让1602正常工作。实在不行就再买一块1602吧。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注