《树莓派项目实战》第五节 使用Nokia 5110液晶屏显示Hello World
Posted la_vie_est_belle
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《树莓派项目实战》第五节 使用Nokia 5110液晶屏显示Hello World相关的知识,希望对你有一定的参考价值。
第五节 使用Nokia 5110液晶屏显示Hello World
Nokia 5110 液晶屏是从机型为Nokia 5110的诺基亚手机上拆卸下来的,是一款单色LCD屏,大小为84*48像素,并带有4颗LED灯珠用作背光设备。它具有体积小、价格便宜、易用等优点。在本节,我们将学习如何使用Nokia 5110液晶屏,并用它来显示一个“Hello World”字符串。该项目涉及到的材料有:
- 树莓派 * 1
- 面包板 * 1
- 杜邦线(公对母) * 8
- Nokia 5510 液晶屏 * 1
5.1 Nokia 5110 引脚介绍
下图显示了Nokia 5110液晶屏的各个引脚,我们来分别讲解下各个引脚的作用以及它们所应该连接的树莓派引脚。
- RST:重置引脚,我们给它设置一个低电平就可以重置屏幕了。
- CE:芯片使能(Chip Enable)引脚。低电平时,树莓派可对此设备读写,高电平时则挂起与此设备的通信。
- D/C:数据(Data)和指令(Command)控制引脚。该引脚会告诉显示器当前接收的是可显示的数据还是命令。
- DIN:SPI接口的串行数据引脚。
- CLK:SPI接口的串行时钟引脚。
- VCC:电源引脚,输入电压范围为3.3v-5v。
- BL:屏幕背光引脚,通过该引脚来点亮LED灯珠。
- GND:接地引脚。
在这篇教程中,Nokia 5110各个引脚所对应的树莓派引脚罗列如下:
Nokia5110 | 树莓派 |
RST | 16号GPIO 23 |
CE | 24号GPIO 8 (CE0) |
D/C | 18号GPIO 24 |
DIN | 19号GPIO 10 (MOSI) |
CLK | 23号GPIO 11 (SCLK) |
VCC | 17号3V3 power |
BL | 22号GPIO 25 |
GND | 20号Ground |
5.2 开启树莓派SPI接口
Nokia 5110是通过SPI (串行外设接口) 协议进行控制的,所以我们需要在树莓派上开启SPI接口。首先在命令行中输入以下内容:
sudo raspi-config
接着选择Advanced Options。
选择Interface Options。
最后选择SPI,按下回车后选择”是”。
5.3 下载LCD驱动库
Nokia 5110采用PCD8544主控芯片,所以我们要使用一个能够驱动这种芯片的Python库,笔者这里选择的是luma.lcd,这是它的文档地址。
在命令行中输入以下命令进行安装:
pip3 install luma.lcd -i https://pypi.tuna.tsinghua.edu.cn/simple
5.4 编写代码
from luma.core.interface.serial import spi
from luma.core.render import canvas
from luma.lcd.device import pcd8544
# 初始化SPI接口,传入D/C和RST引脚编号
serial = spi(port=0, device=0, gpio_DC=24, gpio_RST=23)
# 初始化设备,传入背光灯引脚,并设置低电平有效
# rotate参数用来旋转屏幕,可传入0, 1, 2, 3。0表示不旋转,1表示顺时针转90°,以此类推
device = pcd8544(serial, rotate=0, gpio_LIGHT=25, active_low=False)
device.backlight(True) # 开启背光灯
# 绘制矩形框和文本
with canvas(device) as draw:
draw.rectangle(device.bounding_box, outline="white", fill="black")
draw.text((10, 20), "Hello World", fill="red")
input("按下任意键退出")
以上代码会在屏幕上绘制一个矩形边框,并在边框中绘制一个“Hello World”文本,背光灯也会开启。详细的API接口说明可以通过以下链接查阅,笔者就不再赘述。Python Usage — Luma.LCD: Display drivers for PCD8544, ST7735, ST7789, HT1621, UC1701X, ST7567, ILI9341, ILI9486, HD44780 2.9.0 documentationhttps://luma-lcd.readthedocs.io/en/latest/python-usage.html#backlight-controlAPI Documentation — Luma.LCD: Display drivers for PCD8544, ST7735, ST7789, HT1621, UC1701X, ST7567, ILI9341, ILI9486, HD44780 2.9.0 documentationhttps://luma-lcd.readthedocs.io/en/latest/api-documentation.html#luma.lcd.device.pcd8544
运行结果如下所示(背光灯开启后,文字手机拍摄不出来):
以上是关于《树莓派项目实战》第五节 使用Nokia 5110液晶屏显示Hello World的主要内容,如果未能解决你的问题,请参考以下文章