树莓派i2c lcd1602

接5v电源

转:http://tieba.baidu.com/p/3454464518

http://www.cnblogs.com/hangxin1940/archive/2013/04/02/2997077.html

http://www.superpi.org/thread-870-1-1.html

http://www.cnblogs.com/xiaowuyi/p/4051238.html?from=androidqq

http://pan.baidu.com/s/1qWHP8Qw

跳线帽

1、首先我们需要修改树莓派的配置文件使能I2C,通过nano编辑器修改raspi-blacklist.conf 文件内容
pi@raspberrypi ~ $ sudo nano /etc/modprobe.d/raspi-blacklist.conf
如果找不到此文件,那么raspi-config高级选项里面设置
# blacklist spi and i2c by default (many users don't need them)
blacklist spi-bcm2708
blacklist i2c-bcm2708

2、打开/etc/modules ,在文件结尾加上 i2c-dev、i2c-bcm2708
pi@raspberrypi ~ $ sudo nano /etc/modules
# /etc/modules: kernel modules to load at boot time.
#
# This file contains the names of kernel modules that should be loaded
# at boot time, one per line. Lines beginning with "#" are ignored.
# Parameters can be specified after the module name.
snd-bcm2835
i2c-bcm2708
i2c-dev
3、更新一次包列表
pi@raspberrypi ~ $ sudo apt-get update
4、安装 i2c-tools工具与python-smbus
pi@raspberrypi ~ $ sudo apt-get install i2c-tools python-smbus
5、重启后,pi@raspberrypi ~ $ sudo i2cdetect -y 1或者sudo i2cdetect -y 0

你的I2c设备地址就是0x27,即转接板上的I2C地址。
背面的按钮调节对比度

转:http://blog.csdn.net/ki1381/article/details/52422463

一直以来都想把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就能放心用树莓派的3.3V供电了。Lcd1602的VDD引脚还戳出来够长的一截,再用一根母-母的杜邦线从树莓派5V引入。

现在效果就是这样的:

接线比较容易的,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

    A+
发布日期:2016年08月17日  所属分类:未分类

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: