YFROBOT创客社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11957|回复: 6
打印 上一主题 下一主题

arduino 驱动 IIC LCD1602,第一行黑方块(全黑),第二行没显示?

[复制链接]

签到天数: 866 天

[LV.10]以坛为家III

跳转到指定楼层
楼主
发表于 2016-4-7 11:15:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 AllBlue 于 2016-7-27 16:58 编辑

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


先确定你芯片型号!默认芯片为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:如果你出现的问题是两行都全黑,或者都没显示,可以检查下背面电位器有没有被调过!



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 支持支持 反对反对

签到天数: 1 天

[LV.1]初来乍到

沙发
发表于 2016-4-16 22:12:08 | 只看该作者
我是新手,为这个问题,搞了二天,就是出在电源上Vcc,板上的排座是SCL,SDA,AREF,GND

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

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 支持 反对

使用道具 举报

签到天数: 241 天

[LV.8]以坛为家I

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

点评

QQ:2912630748  发表于 2016-4-22 15:01
回复 支持 反对

使用道具 举报

签到天数: 241 天

[LV.8]以坛为家I

地板
发表于 2016-4-22 17:19:28 | 只看该作者
本帖最后由 yjx189 于 2016-4-22 17:25 编辑

换了一块1602屏(这屏在51开发板上显示正常的,之前的屏是块新的,从未用过的)和IIC转接板,在运行IIC地址检查程序后,它提示,Addr:63(就是0X3F) HEX:0x7E(请问:这意思是在写HEX 程序的时候,地址要用0X7E吗?),,无论改写地址0X36,还是0X3F,1602始终是一行黑方块,怎么都不行啊,所有的东西全都换过了,包括UNO R3板子上的ATMEGS328P芯片,,真急人啊,,
回复 支持 反对

使用道具 举报

签到天数: 241 天

[LV.8]以坛为家I

5#
发表于 2016-4-29 14:19:59 | 只看该作者
本帖最后由 yjx189 于 2016-4-29 14:22 编辑

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

使用道具 举报

签到天数: 241 天

[LV.8]以坛为家I

6#
发表于 2016-4-29 14:26:23 | 只看该作者
本帖最后由 yjx189 于 2016-4-29 14:37 编辑

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

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|联系我们|YFROBOT ( 苏ICP备20009901号-2  

GMT+8, 2024-5-17 16:05 , Processed in 0.068476 second(s), 28 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表