完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
`` 由于我是通过SSH来联接树莓派,因此很少将它接在显示器上。但有时又想让它显示IP地址、传感器的一些信息等,所以入手了一块LCD1602液晶显示屏,希望通过它来显示这些信息。 使用的时候。出现了两个问题: 一,是这块显示屏有16个引脚,如果将它们全部接在树莓派的GPIO引脚上,那其他的传感器就没法用了; 二是驱动的问题。在Linux下,关于驱动有一个通用的解决方案:lcdproc,它可以驱动包括HD44780类型的液晶显示屏。这样就可以解决了。而且lcdproc还提供了一个python库,这样你就可以在你的python程序中控制显示屏的显示了。 查看lcdproc的文档,发现它也支持通过I2C总线来使用HD44780液晶显示器,其推荐的方案是用PCF8574的I/O扩展器,而树莓派上恰好有I2C接口。这样问题就不再是问题了。 买一块PCF8574AP后,就可以动手安装了。 整个过程最麻烦的是接线,下图: PCF8574AP的引脚图: 它一共有16只引脚,请注意它上方的半月形缺口,缺口的左面是1号脚,右面是16号脚。而LCD1602也有16只引脚. 我们先从PCF8574AP的引脚接起。 PCF8574AP的第1、2、3号脚(即A0、A1、A2)是选择地址的,将它们接在高电平上将会获得高位地址,接在低电平上将会获得低位地址,我将这三个脚都接在3.3V电源上了(即树莓派GPIO的第1号引脚)。 PCF8574AP的第4号脚(P0)与显示屏的第11号脚连接。 PCF8574AP的第5号脚(P1)与显示屏的第12号脚连接。 PCF8574AP的第6号脚(P2)与显示屏的第13号脚连接。 PCF8574AP的第7号脚(P3)与显示屏的第14号脚连接。 PCF8574AP的第8号脚(VSS)接地,与树莓派GPIO的第6号脚连接。 PCF8574AP的第9号脚(P4)与显示屏的第4号脚连接。 PCF8574AP的第10号脚(P5)与显示屏的第5号脚连接。 PCF8574AP的第11号脚(P6)与显示屏的第6号脚连接。 PCF8574AP的第12、13号脚空置,不用做连接。 PCF8574AP的第14号脚(SCL)与树莓派GPIO的第5号脚连接。 PCF8574AP的第15号脚(SDA)与树莓派GPIO的第3号脚连接。 PCF8574AP的第16号脚(VDD)接3.3V电源,即与树莓派GPIO的第1号脚连接。 这样PCF8574AP的引脚就连接完了。而显示屏还有几个脚要连,分别如下: 显示屏1号脚接地,即与树莓派GPIO的第6号脚连接。 显示屏2号脚接5V电源,即与树莓派GPIO的第2号脚连接。 显示屏3号脚接一个10K的可调电阻中间脚上,用于调节显示屏亮度,可调电阻另两只脚一只接5V电源,一只接地。虽然这个脚可以不用连接,但在实际操作中,调节显示屏的亮度是很重要的,因此强烈建议安装。 显示屏7、8、9、10脚空置。 显示屏15号脚接5V电源,即与树莓派GPIO的第2号脚连接。(用于背灯) 显示屏16号脚接地,即与树莓派GPIO的第6号脚连接。(用于背灯) 好了,完成上面的接线工作,就可以通电了。 连接电源打开树莓派,显示屏就会亮,同时在第一行显示一排黑方块。如果看不到黑方块或黑方块不明显,请调节可调电阻,直到黑方块清晰显示。如果调节可调电阻还看不到方块,则可能你的连接有问题了,请检查连接,包括检查显示屏的引脚有没有虚焊。 接下来是加载内核模块和lcdproc了。我使用的raspbain中系统已默认安装好了I2C的模块,但不会自动加载,必须手动加载。我们需要加载两个模块,如下:
[color=rgb(51, 102, 153) !important]复制代码 加载上述两个模块后,我们开始寻找设备:
[color=rgb(51, 102, 153) !important]复制代码 (上面这个命令中,-l 的l是英文字母l,不是数字1,请注意)这个命令显示系统中所有可用的I2C总线。我的树莓派中找到了2个,分别是0和1。 我用下面的两条命令来扫描这两个I2C总线以查找设备地址:
[color=rgb(51, 102, 153) !important]复制代码 查找设备地址完成之后,我们就来安装lcdproc。在我的raspbain系统中,是没有默认安装lcdproc的,用如下命令来安装:
[color=rgb(51, 102, 153) !important]复制代码 如果你的网速够快的话,安装会很快结束。安装结束后,系统会启动lcdproc的LCDd守护进程。但是,先别忙,我们还要进行一番配置,先将这个守护进程停下来吧:
[color=rgb(51, 102, 153) !important]复制代码 打开/etc/LCDd.conf这个配置文件:
[color=rgb(51, 102, 153) !important]复制代码 在[server]下找到:Driver=curses,将其改为:Driver=hd44780 在[menu]后的[hd44780]下找到:ConnectionType=4bit,将其改为:ConnectionType=i2c;接着找到Port=0x378,将其改为你刚才在上面找到的设备地址,我的是0x3f,因此我就改为Port=0x3f;接着找到Device=/dev/ttyS0,根据你刚才找到设备的总线编号修改,比如我是在1总线上找到的,此处就改为Device=/dev/i2c-1(同样,如果你是在0总线上找到的,就改为Device=/dev/i2c-0);最后找到Size=20x4,改为Size=16x2。 做完上面的修改后,保存、退出。然后启动我们刚才停止的守护进程:
[color=rgb(51, 102, 153) !important]复制代码 现在赶紧看一下你的LCD1602,是不是有显示了?显示屏上应出现如下的欢迎信息: |
|
相关推荐
|
|
请问:在sudo apt-get install lcdproc的时候Err http://mirrordirector.raspbian.org/raspbian/ jessie/main perl-doc all 5.20.2-3+deb8u2
404 Not Found [IP: 5.153.225.207 80] E: Failed to fetch http://mirrordirector.raspbian.o ... .2-3+deb8u2_all.deb 404 Not Found [IP: 5.153.225.207 80] E: Unable to fetch some archives, maybe run apt-get update or try with --fix-missing? 请问这是? |
|
|
|
|
|
只有小组成员才能发言,加入小组>>
5911 浏览 0 评论
14206 浏览 9 评论
7824 浏览 0 评论
基于Amazon Echo 和 Raspberry Pi 的自动窗帘控制
7161 浏览 1 评论
【下载】《Linux+树莓派玩转智能家居》——亲手进行树莓派应用制作
160948 浏览 374 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 18:27 , Processed in 0.650259 second(s), Total 76, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号