YFROBOT创客社区

标题: arduino 驱动 IIC LCD1602,第一行黑方块(全黑),第二行没显示? [打印本页]

作者: AllBlue    时间: 2016-4-7 11:15
标题: arduino 驱动 IIC LCD1602,第一行黑方块(全黑),第二行没显示?
本帖最后由 AllBlue 于 2016-7-27 16:58 编辑

很多人驱动IIC LCD1602 都会出现第一行黑方块全黑,第二行没显示的问题,那这究竟是什么原因呢?
原因:液晶没有进行初始化操作
如何解决:
1、硬件连接是否正确?
IIC液晶只需要4根线,其实只需要检查2根线(因为你的液晶已经点亮,电源没错),即SDA 和 SCL 接线是否正确(SDA — A4、 SCL — A5 )
2、确定硬件没有问题后,再确定程序是否下载进去?
再次下载程序,确定下载完成后,点击arduino UNO上的复位按钮
3、还是没反应,确定IIC接口通信地址是否正确!
如何确定IIC接口地址呢,看手册[attach]1327[/attach]。
[attach]1329[/attach]

先确定你芯片型号!默认芯片为PCF8574,A0 A1 A2 连接高电平即为1,所以地址默认:0X27
没有库文件在这里下载:http://www.yfrobot.com/thread-2263-1-1.html

确定好地址后,下载程序:
[C] 纯文本查看 复制代码

#include <Wire.h>
#include <LiquidCrystal_I2C.h>

LiquidCrystal_I2C lcd(0x27,16,2);  // set the LCD address to 0x27 for a 16 chars and 2 line display

void setup(){
  lcd.init();                      // initialize the lcd
  // Print a message to the LCD.
  lcd.backlight();
}

void loop(){
  lcd.init();
  lcd.setCursor(0,0);
  lcd.print("8888888888888888");
  lcd.setCursor(0,1);
  lcd.print("HHHHHHHHHHHHHHHH");
  delay(1000);
  lcd.setCursor(0,0);
  lcd.print("HHHHHHHHHHHHHHHHH");
  lcd.setCursor(0,1);
  lcd.print("0000000000000000");
  delay(1000);
}

4、上面的方法解决不了。如果手边有空余的控制板,可以换个控制板试试!
5、如果真的解决不了,联系厂家,返厂检测(出厂都测试好的,一般不会有问题)!

ps:如果你出现的问题是两行都全黑,或者都没显示,可以检查下背面电位器有没有被调过!




作者: hwn444    时间: 2016-4-16 22:12
我是新手,为这个问题,搞了二天,就是出在电源上Vcc,板上的排座是SCL,SDA,AREF,GND

                               
登录/注册后可看大图


AREF也是5V,但不是电源5V,另外接线后排除,这个板真坑人!给大家借鉴!

作者: yjx189    时间: 2016-4-22 14:45
我的IIC转接板串口监视器里显示的地址是0X3F,把板上的A0,A1,A2,全部短接后,地址变为0X38,库文件也已下载后复制到C盘-文档-Arduino---libraries文件夹里rduino--,然后把上面楼主的程序往里面写的时候,(写之前都把里面0X27的地方改写成0X3F或者0X38),这样还是报“编译有误”四个字的错误,都3天了,依然只显示一条黑色方块,,,请楼主指教!
作者: yjx189    时间: 2016-4-22 17:19
本帖最后由 yjx189 于 2016-4-22 17:25 编辑

换了一块1602屏(这屏在51开发板上显示正常的,之前的屏是块新的,从未用过的)和IIC转接板,在运行IIC地址检查程序后,它提示,Addr:63(就是0X3F) HEX:0x7E(请问:这意思是在写HEX 程序的时候,地址要用0X7E吗?),,无论改写地址0X36,还是0X3F,1602始终是一行黑方块,怎么都不行啊,所有的东西全都换过了,包括UNO R3板子上的ATMEGS328P芯片,,真急人啊,,
作者: yjx189    时间: 2016-4-29 14:19
本帖最后由 yjx189 于 2016-4-29 14:22 编辑

请问,那个程序是做什么用的啊?运行完了以后,并没有提示出错,但1602屏还是一条黑方块!

作者: yjx189    时间: 2016-4-29 14:26
本帖最后由 yjx189 于 2016-4-29 14:37 编辑

多按了几次UNO板子上的Reset以后,有了 显示,断电再重新上电后,还是一条黑方块,多按几次RESET,有时就又显示正常,似乎是初始化的问题,请问,怎么改写代码,(我是个初学者,开始学习ARDUINO,也就一个月)才能解决这个问题呢?




欢迎光临 YFROBOT创客社区 (http://yfrobot.com.cn/) Powered by Discuz! X3.1