YFROBOT创客社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 112708|回复: 93
打印 上一主题 下一主题

Arduino驱动IIC/I2C LCD1602模块显示(4根线解决连接)

  [复制链接]

签到天数: 867 天

[LV.10]以坛为家III

跳转到指定楼层
楼主
发表于 2013-7-4 20:20:19 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 AllBlue 于 2018-5-18 14:11 编辑

Arduino驱动IIC/I2C LCD1602模块显示(4根线解决连接)

Arduino控制器的控制端口数量有限,连接一个LCD就好像没接口了似得!

下面我们介绍一个使用IIC接口连接的LCD1602模块。这一模块只用4根线就可以解决与arduino连接问题,非常方便初学者使用,再也不用为繁琐的连线头疼了~~

IIC 1602背面图片:

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

签到天数: 1 天

[LV.1]初来乍到

来自 2#
发表于 2016-4-17 21:07:30 | 只看该作者
本帖最后由 AllBlue 于 2016-4-23 08:26 编辑

ScanIICAddress.zip (759 Bytes, 下载次数: 339)
回复 支持 1 反对 0

使用道具 举报

签到天数: 2 天

[LV.1]初来乍到

推荐
发表于 2017-5-5 10:55:19 | 只看该作者
本帖最后由 lpc19960426 于 2017-5-5 11:19 编辑

感谢楼主!跪谢楼主!
另外把自己碰到的有关的所有问题和解决的办法列在下面,希望能够帮到后面像我这样的小白;
(1)在输入的时候一定要切换到英文输入法,否则标点符号会出现乱码问题。

(2)楼主提供的例程可以直接引用,但是一定要导入楼主提供的 LiquidCrystal_I2C.zip文件,就是将这个文件解压缩进arduino的库libraries文件夹里,不知道arduino位置的可以在桌面右键点击arduino的属性选项里查看地址,有的人可能下载的arduino版本的库里本身就有 LiquidCrystal_I2C.zip这个文件,可能会使导入文件后arduino仍旧无法找到这个库文件,这时我们可以将原先的 LiquidCrystal_I2C.zip文件先删除,然后再导入楼主的文件,就可以解决这个问题。这个 LiquidCrystal_I2C.zip库文件在arduino的编译界面里变成橙黄色的时候就证明导入库文件成功了。


(3)很多人可能会碰到上传后背景灯亮了,但是只有上面一行有一整排字符块同时显示的尴尬问题,这是由于我们用的芯片的版本和楼主的不同所导致的,楼主用的是PCF8574的芯片,而我们用的是PCF8574AT的芯片,所以接口通讯地址是不一样的,PCF8574的地址是0x27,而我们用的PCF8574AT的地址是0x3f,一定要注意这点。

(4)用uno的要注意了,楼主说的SDA接A4端口和SCL接A5端口是接的AREF区域的接口,大家不要误会认为是接4和5号这两个IO口,这是错误的连接,应该是直接接板上analog in区域的A4和A5口,不要接错了。而mega2560板上直接就有标着SDA、SCL的两个口,大家直接对号入座的连接就好了。


(5)在上传文件的时候一定要在arduino板子和LCD1602显示屏已经正确连接的状态下进行,不可以先在板子上上传之后再连接显示屏,那样就算连接好也没作用的,不会显示信息。
我有点啰嗦的像个大妈了,希望有能帮到你的。


点评

谢谢层主  发表于 2017-7-17 12:52
回复 支持 8 反对 0

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

推荐
发表于 2018-7-8 17:46:36 | 只看该作者
关于1602LCD驱动以及通过PCF8574T转接板与Arduino相连,网络搜索简书上说的基本都对,连接方法也没问题
通过此种方式,可以大大节省Arduino的IO口,前提是原作者得购买一块PCF8574T转接板。我这个是PCF8574AT转接板!

LCD显示屏与转接板所需要材料
1x Arduino UNO
1x LCD 16x2
1x PCF8574T转接板
电烙铁、焊锡、松香等
接线
首先,把转接板焊接到LCD显示屏上(方向如上图)
PCF8574T Arduino
GND -> GND
VCC -> 5V
SDA -> A4
SCL -> A5
打开软件米思齐0.99MIXLY
需要把地址默认的0x27 改为0x3f

回复 支持 1 反对 0

使用道具 举报

签到天数: 1 天

[LV.1]初来乍到

推荐
发表于 2016-4-16 22:17:19 | 只看该作者

                               
登录/注册后可看大图


有的板上是AREF也是5V能点亮,但程序没反映,要重新接VCC5V,望借鉴!
回复 支持 1 反对 0

使用道具 举报

该用户从未签到

7#
发表于 2013-7-26 08:53:43 | 只看该作者
这好东西到那里去买啊?
回复 支持 反对

使用道具 举报

签到天数: 867 天

[LV.10]以坛为家III

8#
 楼主| 发表于 2013-7-27 08:27:50 | 只看该作者
Macintosh 发表于 2013-7-26 08:53
这好东西到那里去买啊?

淘宝搜索“ IIC 1602” 就可以看到很多了~~~~
回复 支持 反对

使用道具 举报

该用户从未签到

9#
发表于 2013-11-2 14:35:33 | 只看该作者
厉害,学习了,哇哈哈哈
回复 支持 反对

使用道具 举报

签到天数: 6 天

[LV.2]偶尔看看I

10#
发表于 2014-9-17 12:58:38 | 只看该作者
?? 求教为什么我这里编译报错??
库文件已经添加了
回复 支持 反对

使用道具 举报

签到天数: 867 天

[LV.10]以坛为家III

11#
 楼主| 发表于 2014-9-18 13:36:14 | 只看该作者
zjjdog3 发表于 2014-9-17 12:58
?? 求教为什么我这里编译报错??
库文件已经添加了

你的错误提示就是库文件找不到哦,你看下库文件是否放在library文件夹中了!!如果放了,LiquidCrystal_I2C应该会变色的!
回复 支持 反对

使用道具 举报

签到天数: 867 天

[LV.10]以坛为家III

12#
 楼主| 发表于 2014-9-18 13:36:21 | 只看该作者
zjjdog3 发表于 2014-9-17 12:58
?? 求教为什么我这里编译报错??
库文件已经添加了

你的错误提示就是库文件找不到哦,你看下库文件是否放在library文件夹中了!!如果放了,LiquidCrystal_I2C应该会变色的!
回复 支持 反对

使用道具 举报

签到天数: 6 天

[LV.2]偶尔看看I

13#
发表于 2014-9-18 20:26:28 | 只看该作者
AllBlue 发表于 2014-9-18 13:36
你的错误提示就是库文件找不到哦,你看下库文件是否放在library文件夹中了!!如果放了,LiquidCrystal_I ...

谢谢回答,不过不知为何这回LiquidCrystal_I2C却显示变色了
难道库文件放好之后要隔一段时间才能识别? 还是要重启?

点评

一般需要重启IDE才可以的  发表于 2014-9-19 17:51
回复 支持 反对

使用道具 举报

该用户从未签到

14#
发表于 2015-3-18 20:35:52 | 只看该作者
用最新ardublock增加组件IIC/I2C LCD1602怎么编译后没有反应的呢,好像该软件自动编译的程序和这个的串口通信方式不一样
回复 支持 反对

使用道具 举报

该用户从未签到

15#
发表于 2015-3-18 20:38:41 | 只看该作者
代码如下:#include <Wire.h>
#include <LCD.h>
#include <LiquidCrystal.h>

// For these LCD controls to work you MUST replace the standard LCD library with 'New LCD' from...
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
// Direct download https://bitbucket.org/fmalpartida/new-liquidcrystal/downloads/LiquidCrystal_V1.2.1.zip
// Your project will not compile until this is done.
//
//                             RS  EN  d0  d1  d2  d3  LED
LiquidCrystal lcd_I2C_Parallel(12, 11,  5,  4,  3,  2,  7, POSITIVE);

void setup()
{
  lcd_I2C_Parallel.begin (16, 2);
  lcd_I2C_Parallel.setBacklight(HIGH);
}

void loop()
{
  lcd_I2C_Parallel.setCursor( (1) - 1, (1) - 1 );
  lcd_I2C_Parallel.print( "SainsmartLCD Parallel" );
}
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-14 14:40 , Processed in 2.802288 second(s), 31 queries .

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

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