I2C接口的Lcd1602在树莓派3上的应用

一直以来都想把Lcd1602装在树莓派上使用,但网上找了好多资料都一直都没能成功。最接近成功的一次是能显示,但换句话显示就是乱码。无奈玩电子纯属兴趣爱好,理论和实践知识都不能跟专业的比,所以只好耽搁下来。最近正好又需要在某宝上淘点货,顺便购了块加装了I2C转接版的Lcd1602,看看能不能成功。

试了一下成功了,但有些情况需要探讨。

我买的是5V的板子,在网上找安装和配置资料的时候看了几篇老外写的文章,都提到了树莓派与Arduino电平兼容性的问题,意思是Arduino的电平是5V的,但树莓派是3.3V的,因此I2C转接卡的Vcc如果接树莓派的5V可能会有烧树莓派的GPIO。改到3.3V的话,I2C本身没问题,但是1602则会有问题。解决办法是,一个老外用小刀切断了转接板Vcc向Lcd1602供电(然后I2C用3V,1602再接根5V),另一个老外则用了块5V转3V的电平转换模块。我不是电子专业的,完全不懂,而且有其他非专业小伙伴表示这种情况下只要测下1602的RW线有没有可靠接地就行,因为树莓派对它做只写操作,问题不大。可能我搜到的文章的老外作者比较严谨吧,我之前没用I2C的时候根本也没考虑过这些问题。但吊丝学渣有条思路是一向清晰的,那就是一切向钱看的,万一烧了树莓派就亏大了,所以跟小刀老外学,也把I2C板上与1602的VDD的走线覆铜给刮了(黄圈处)。

I2C接口的Lcd1602在树莓派3上的应用_第1张图片

这下I2C就能放心用树莓派的3.3V供电了。Lcd1602的VDD引脚还戳出来够长的一截,再用一根母-母的杜邦线从树莓派5V引入。

现在效果就是这样的:

I2C接口的Lcd1602在树莓派3上的应用_第2张图片

接线比较容易的,I2C的电源和地已经明确了,接下来只要把SCL和SDA和树莓派的SCL与SDA(PIN3 SDA,PIN5 SCL)连起来就可以了。至于第五根线。。。我开心就好。。。下回记得淘个工作电压在3.3V的I2C Lcd1602。

检查无误后通电。运行命令 ls /dev/i2c-*

我返回了 /dev/i2c-1。记住这只“1”。

继续 sudo i2cdetect -y 1。如果说找不到命令,那说明还需要sudo apt-get install i2c-tools。顺便把python-smbus也一起get了吧。

记下设备的地址。我的在0x3f处。

我因为之前折腾过其它一些实验,树莓派里的配置有点乱。反正我能确认的是,实验成功的时候 /etc/modprobe.d/raspi-blacklist.conf 是空的,/etc/modules里有i2c-dev。

Python脚本用了小刀会老外文章里的,http://www.instructables.com/id/Raspberry-Pi-Using-1-I2C-LCD-Backpacks-for-1602-Sc/step3/Software-for-the-LCD/。在文末的地方有pcf8574_lcd.py。记得在__main__里把addr改成自己实际的。

在此基础上可以做一个显示当前IP的脚本,让它开机时自动启动,这样就可以直接看到得到的IP,省的老是要去猜IP,猜不对还要登到路由器上去看一眼。获取IP的代码就不贴了,网上很多。需要注意的是Python脚本开头要加一句:#!/usr/bin/env python,然后把整个脚本复制到/etc/init.d/,添加 +rx权限,最后执行下 sudo update-rc.d 脚本名 defaults就可以了。


其它参考资料:

http://www.eeboard.com/bbs/thread-41312-1-1.html






你可能感兴趣的:(树莓派,&,Arduino)