1602 使用Python控制LCD模块
一旦玩过LED,开关和步进电机,下一个自然步骤就是16×2字母数字LCD模块。这些模块便宜(少于10美元),并且易于与Raspberry Pi接口。它们有16个连接,但您只需要在Pi上使用6个GPIO引脚。
大部分16×2模块可与日立HD44780 LCD控制器兼容。这允许您购买几乎任何设备,并确保它将以与其他任何方式相同的方式工作。eBay上可以选择不同颜色的背光灯。我购买的那个有一个蓝色的背光。
LCD模块硬件
该模块的引脚分配是:
地面
VCC(通常+ 5V)
对比度调整(VO)
寄存器选择(RS)。
RS = 0:命令,RS = 1:数据
读/写(R / W)。
R / W = 0:写,R / W = 1:读
启用
位0(4位运算时不需要)
位1(4位操作不需要)
位2(4位操作不需要)
位3(4位操作不需要)
位4
位5
位6
位7
LED背光阳极(+)
LED背光阴极( – )
通常,器件需要8条数据线才能向0-7位提供数据。然而,该设备可以设置为“4位”模式,允许您以4位的两个块(或半字节)的形式发送数据。这是很好的,因为它减少了与您的Pi连接时所需的GPIO连接数。
这是我如何连接我的LCD:
LCD引脚
功能
Pi功能
皮Pin
01
GND
GND
P1-06
02
+ 5V
+ 5V
P1-02
03
对比
GND
P1-06
04
RS
GPIO7
P1-26
05
RW
GND
P1-06
06
Ë
GPIO8
P1-24
07
数据0
08
数据1
09
数据2
10
数据3
11
数据4
GPIO25
P1-22
12
数据5
GPIO24
P1-18
13
数据6
GPIO23
P1-16
14
数据7
GPIO18
P1-12
15
+ 5V通过560ohm
16
GND
P1-06
注意: RW引脚允许器件进入读写模式。我想要发送数据到设备,但不希望它向Pi发送数据,所以我把这个引脚绑在地上。Pi不能容忍其GPIO头上的5V输入。将RW连接到地,确保设备不会尝试将数据线拉至5V,从而损坏Pi。
为了控制对比度,您可以调整引脚3的电压。这必须在0到5V之间。我将这个引脚绑在地上。
引脚15为背光LED提供5V。在我的设备上不清楚是否可以直接连接到5V,所以我玩安全,并放置一个560ohm电阻符合这个引脚。
接线检查
在您第一次启动电路之前,请先进行一些健康检查:
引脚1(GND),3(对比度),5(RW)和16(LED – )(应连接到地)。
引脚2应连接到5V。引脚15应具有内置5V电阻以保护背光。
引脚7-10未连接
引脚11-14连接到Pi上的GPIO引脚
Python
您可以使用任何您喜欢的编程环境来控制HD44780风格的显示器,但我的选择武器是Python。我使用RPi.GPIO库来访问GPIO。
这是我的代码:
#!/usr/bin/python
此脚本可以使用此链接或直接下载到您的Pi使用以下命令:
wget https://bitbucket.org/MattHawkinsUK/rpispy-misc/raw/master/python/lcd_16x2.py
然后可以使用以下命令运行:
sudo lcd_16x2.py
如果您使用此代码,您需要更改的唯一的事情是GPIO引脚映射,取决于您在Pi GPIO头上使用的引脚。以下是一些照片:
注意事项:当发送命令到LCD时,RS为低电平,发送字符时为高电平。RW始终很低,以确保我们只将数据输入到模块中。8位字节一次发送4位。前4位,最后4位。在某些步骤之间添加延迟,以确保模块在更改之前对信号做出反应。
上面的代码灵感来源于“texy”在RaspberryPi.org论坛上提交的代码。我改变了字节被分解为位,因为这显着增加了显示的响应时间。
故障排除
如果您有问题,请尝试:
仔细检查接线。
尝试调整对比度引脚上的电压在0V和3.3V之间。
将E_PULSE和E_DELAY参数从0.0005更改为0.001。一些屏幕对这些时间很敏感,如果它们太小,将不会初始化。
使用Python 2.我还没有使用Python 3测试。