用树莓派驱动一个16×2的LCD
不管什么项目,如果加上一个液晶显示屏的话肯定都会看起来更棒。这篇文章将详解如何用树莓派的六个通用端口(GPIO)来连接一个廉价的HDD44780的小型LCD。当然也有用I2C或是UART来连接LCD的, 但是使用GPIO是最直接的方法。
这种方法的几个优势:
- 使得廉价的LCD得以应用
- 不需要I2C的驱动器
- 不会占用树莓派仅有的USB口
以下是用Python代码控制显示的时间日期以及IP地址。如果你的树莓派运行在Headless模式下(Headless模式是系统的一种配置模式。在该模式下系统缺少了显示设备、键盘或鼠标),能有个小的显示屏显示IP地址可是很有吸引力的。
- 一个标准的16×2的LCD
- Adafruit Pi Cobbler (树莓派GPIO的扩展设备,这里是以Cobbler为例,当然也可以用树莓派的breakout)
- 面包板
- 连接线
- 一个树莓派
本教程只适用于16×1, 16×2, 20×2, 20×4 的LCD
连接Cobbler到LCD上LCD任何一个拥有16个引脚的LCD基本上都是用HD44780控制器来控制的。 这种类型的LCD的引脚都拥有相同的输入输出功能,所以比较容易使用。LCD采用的是并行接口,这就意味着树莓派需要提供多个引脚来控制它。本篇教程中我们会用到树莓派的4个数据引脚(4位模式)和两个控制引脚。
数据引脚可以直接传输数据到LCD上, 这里我们只让LCD处于写模式,不读取任何数据。
寄存器的选择引脚有两种用途。当设置为低位时,它可以发送指令到LCD(比如显示的位置或是清空屏幕),可理解为命令寄存器。 当设置为高位的时候,它使得LCD转为数据模式并且将数据传输到屏幕上。
读/写引脚在这里会被设置成低位(写模式),因为我们只是想让LCD作为一个输出设备。
LCD 各个引脚的定义:
- Ground
- VCC - 5v not 3.3v
- Contrast adjustment (VO) from potentiometer
- Register Select (RS). RS=0: Command, RS=1: Data
- Read/Write (R/W). R/W=0: Write, R/W=1: Read (we won’t use this pin)
- Clock (Enable). Falling edge triggered
- Bit 0 (Not used in 4-bit operation)
- Bit 1 (Not used in 4-bit operation)
- Bit 2 (Not used in 4-bit operation)
- Bit 3 (Not used in 4-bit operation)
- Bit 4
- Bit 5
- Bit 6
- Bit 7
- Backlight LED Anode (+)
- Backlight LED Cathode (-)
在连接这些引脚之前,先确认你的LCD的背光是否可以正常工作,背光应为LED的背光因为这只需要10-40mA的功率,但是若为EL的背光就需要200mA以上的功率了。EL背光的LCD往往会便宜些但是用起来比较难操作,确保你的LCD不是EL背光,否则会将整个树莓派的功率拖下来。还有一些LCD的LED背光没有自带的稳压电阻,所以在连接前要去确定好你的LCD是否需要加载额外的电阻来保证背光LED正常工作。
线路图首先将Cobber的电源引脚连接到面包板的供电轨上。+5V的用红线连接到红线轨上(译者认为这里连接3.3V的就够了), GND用黑线连接到蓝线轨上, 为了能使数据传到LCD上,我们将进行以下的连接。
- LCD的Pin 1脚接地(黑线)
- LCD的Pin 2脚接 +5V(红线)
- LCD的Pin 3脚接到分压器的中间位置(橙线)
- LCD的Pin 4脚接到Cobber的 #25位 (黄线)
- LCD的Pin 5脚接地(黑线)
- LCD的Pin 6脚接到Cobber的#24位
- LCD的Pin 7,8,9,10什么都不接
- LCD的Pin 11脚接 Cobber的 #23位(蓝线)
- LCD的Pin 12脚接 Cobber的 #17位 (紫线)
- LCD的Pin 13脚接 Cobber的 #21位 (灰线)(译者推荐这里连接#18位)
- LCD的Pin 14脚接 Cobber的 #22位 (白线)
- LCD的Pin 15脚接 +5V(红线)
- LCD的Pin 16脚接地 (黑线)
分压器左边的引脚接地(黑线),右边的引脚接+5V(红线)。
原理图5V LCD vs 3.3V Pi树莓派配置的通用接口(GPIO)为3.3V,但是我们的LCD是需要5V配电的设备。如果我们仅仅是用LCD做树莓派的输出设备的话,连接5V的引脚当然没有问题。所以我们这里不使用Cobbler上3.3V的Pin口,并且我们将LCD上的RW(读写)脚接地,这样就避免了LCD向树莓派发送+5V的信号。
准备LCD在你开始前,确认你有一组 0.1“规格的引脚和一个阻值为10K的分压器。
大部分LCD显示屏是需要16个引脚的,如果头部太长,可以适当剪短到合适的长度即可。
接着你需要将引脚和LCD焊接到一起。你必须这么做,不能只是扣上去就完事了。
首先将Cobbler上的+5V引脚跟GND引脚连接到面包板上。接着如图连接LCD的Pin1脚、Pin2脚、Pin15脚和Pin16脚连接到面包板的供电轨上。这个时候LCD的背光应该就亮了,如果没有亮请检查你的线路是否连接正常。
接着,将分压器中间的引脚按图中所示连接到LCD的Pin脚3上,其他两个引脚分别连接5V电源和地线。
扭动分压器直到LCD的第一行显示出方块来。如果看不到,检查一下线路是否连接正确。
按照电路图所示完成LCD最后RS(Pin 4脚),RW(Pin 5脚), EN(Pin 6脚), D4(Pin 11脚), D5(Pin 12脚), D6(Pin 13脚)和D7(Pin 14脚)的连接。
到这里,就可以用Python脚本来驱动LCD显示些东西了。
必要的Python包本教程是基于Debian的Wheezy系统写成的。必须要安装以下组件才能使用树莓派的GPIO口。
安装python(2.x)的最新开发套件:
[backcolor=rgb(248, 248, 255) !important][color=rgb(170, 170, 170) !important]1 |



