目录
介绍
诺基亚5110显示模块
Nokia5110是一款可以显示文字,图像和各种图案的图形显示屏。
它的分辨率为48×84,并配有背光。
它使用SPI通信与微控制器/微处理器通信。
数据和命令可以通过处理器发送到显示器以控制显示输出。
它有8个引脚。
由于Nokia5110使用SPI通信,我们需要确保启用Raspberry Pi的SPI接口。如果未启用,则使用我们必须启用它。
使SPI?
要在Raspberry Pi上启用SPI,请输入以下命令
sudo raspi-config
然后,会弹出一个窗口,其中选择 Interface Options
选择Interface选项后,启用SPI接口。然后重启Raspberry Pi。
现在,我们可以建立SPI通信。
电路连接图
诺基亚LCD显示界面与Raspberry Pi 3
例
在这里,我们将使用Raspberry Pi 3连接Nokia5110显示器
我们将使用来自GitHub的Adafruit的Nokia5110 Python库。
下载诺基亚LCD Python库:
通过执行以下命令解压缩上面的库并将其安装在上面的库目录中,
sudo python setup.py install
另外,我们需要安装python镜像库,如下所示,
sudo apt-get install python-imaging
一旦添加了库,我们就可以通过执行保存在examples库文件夹中的现有示例来测试诺基亚LCD与Raspberry Pi的连接。
在这里,我们将创建一个小型python程序,我们将在其中显示文本,图像和飞鸟动画。此python程序文件以及示例图像保存在附件中提供的库的“example”文件夹中。
注意:在Nokia5110显示屏上显示图像时,我们必须为程序提供图像。此图像应为显示尺寸(此处为84×48)。如果我们提供其他分辨率的图像,它将给出错误。
Python程序
'''
Nokia5110 LCD Display Interface with Raspberry Pi
https://www.qutaojiao.com
'''
import time
import Adafruit_Nokia_LCD as LCD
import Adafruit_GPIO.SPI as SPI
from PIL import ImageDraw
from PIL import Image
from PIL import ImageFont
# Raspberry Pi hardware SPI config:
DC = 23
RST = 24
SPI_PORT = 0
SPI_DEVICE = 0
# Hardware SPI usage:
disp = LCD.PCD8544(DC, RST, spi=SPI.SpiDev(SPI_PORT, SPI_DEVICE, max_speed_hz=4000000))
# Initialize library.
disp.begin(contrast=40)
# Clear display.
disp.clear()
disp.display()
font = ImageFont.load_default()
# Load image and convert to 1 bit color.
image = Image.new('1', (LCD.LCDWIDTH, LCD.LCDHEIGHT))
draw = ImageDraw.Draw(image)
draw.rectangle((0,0,LCD.LCDWIDTH,LCD.LCDHEIGHT), outline=255, fill=255)
draw.text((3,24), 'Welcome to EW', font=font)
#Display Image
disp.image(image)
disp.display()
time.sleep(1.0)
image = Image.open('pi_logo.png').convert('1')
# Display image.
disp.image(image)
disp.display()
time.sleep(0.5)
print('Press Ctrl-C to quit.')
while True:
#Create animation of Flying Bird
image2 = Image.open('bird_1.png').convert('1')
# Display image.
disp.image(image2)
disp.display()
time.sleep(0.1)
image2 = Image.open('bird_2.png').convert('1')
# Display image.
disp.image(image2)
disp.display()
time.sleep(0.1)
image2 = Image.open('bird_3.png').convert('1')
# Display image.
disp.image(image2)
disp.display()
time.sleep(0.1)
image2 = Image.open('bird_4.png').convert('1')
# Display image.
disp.image(image2)
disp.display()
time.sleep(0.1)
image2 = Image.open('bird_5.png').convert('1')
# Display image.
disp.image(image2)
disp.display()
image2 = Image.open('bird_4.png').convert('1')
# Display image.
disp.image(image2)
disp.display()
time.sleep(0.1)
image2 = Image.open('bird_3.png').convert('1')
# Display image.
disp.image(image2)
disp.display()
time.sleep(0.1)
image2 = Image.open('bird_2.png').convert('1')
# Display image.
disp.image(image2)
disp.display()
time.sleep(0.1)
本教程完整程序下载: