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测试。
原文始发于:树莓派使用Python控制1602LCD模块
|