大数跨境
0
0

【树莓派基础系列教程】9、如何使用16×2 LCD液晶显示器

【树莓派基础系列教程】9、如何使用16×2 LCD液晶显示器 DF创客社区
2021-06-01
1
导读:基础系列教程最后一课!
【点击上方「蓝字」关注DF创客社区,一起成为技术颜控】

在本教程中,详细记录了怎么用树莓派控制LCD液晶显示器,即使对电路一无所知,按教程走也能完成配置。

16×2 LCD显示器很简单,不同于触摸屏或者普通的液晶显示屏,最适合用来显示短信息。

设备清单

本篇树莓派LCD教程所需的设备如下。

建议材料

  • 树莓派
  • 高速SD卡
  • LCD1602A
  • 10k欧姆电位器
  • 面包板
  • 面包板跳线

可选材料

  • 树莓派外壳
  • USB鼠标
  • USB键盘
  • 以太网线或WiFi

树莓派16×2液晶屏的电路

看上去这个电路的内容挺多的,但只需要把显示器和显示器之间的线正确连接起来就可以了。

电路中的电位器是控制屏幕亮度的关键。如果你没有电位器,可以尝试将其换成电阻。如果使用电阻,可以尝试使用5k和10k欧姆之间的电阻。在得到完美的电阻之前,可能需要尝试几个不同的值。

一个典型的16×2液晶显示器有16个引脚,但并不是所有的引脚都需要使用。在这个电路中,只需要使用4条数据总线线,因为只是在4位模式下使用它。

大多数16连接器的显示器使用HD44780控制器。这个控制器让显示器变得更通用,可以在多种设备上使用。例如,这个显示器我之前在Arduino的LCD教程中使用过。

LCD的引脚布局如下:

组装16×2 LCD

你会发现,大多数16×2显示器没有预焊头针。

如果没有排针的话,要用电烙铁把排针焊到LCD上,没有排针的话操作比较麻烦,焊接非常容易。

  1. 首先,插好排针。

  2. 将针从显示器的孔中放上去。头针的短边应向上伸出。

  3. 用热烙铁和一些焊料,慢慢地焊接每个引脚。

  4. 这样就搞定了。

连接电路

将16×2的液晶显示器连接到树莓派上非常简单,虽然会有不少线要连接起来,但并没有什么太复杂的地方。

在开始组装电路之前,有一件事是应该注意的。由于我们不想让5v的电压反馈到Pi上(Pi的GPIO引脚的额定电压为3v3),需要让LCD的读/写引脚接地。

在下面的步骤中,引脚的物理/逻辑编号在括号中,否则就是GPIO编号。

  1. 将5v(引脚2)的导线放到面包板的正极上。

  2. 将一根导线从地线(第6针)到面包板上的地线。

  3. 将16×2显示屏放到面包板上。

  4. 将电位器放到面包板上。

  5. 将正极和地极引脚连接到面包板上的相关位置上。

从液晶显示屏的1号引脚开始做以下工作,或者直接参考下面的电路图。屏幕的1号引脚是最靠近电路板两个边缘的引脚。

  1. 引脚1(Ground)接地。

  2. 引脚2(VCC/5V)接正极。

  3. 第3脚(V0)走到电位器的中间线。

  4. 引脚4(RS)进入GPIO25(引脚22)。

  5. 引脚5(RW)接地。

  6. 引脚6(EN)进入GPIO24(引脚18)

  7. 引脚11(D4)连接到GPIO23(引脚16)。

  8. 引脚12(D5)到GPIO17(引脚11)。

  9. 13脚(D6)到GPIO18(12脚)

  10. 引脚14(D7)至GPIO22(引脚15)

  11. 引脚15(LED +)进入正极。

  12. 引脚16(LED-)到地线。

与16×2显示器通信的代码

在最新版本的Raspbian上,所有与GPIO设备通信所需的软件包都已预装。你也应该发现已经安装了python。

如果你的是旧版本的Raspbian,可能需要查看更多关于设置Pi使用GPIO的信息。

对Python有基本的了解会让你的操作轻松很多,不过,本教程在没有任何Python经验的情况下应该也是可以完成的。

所需要的库

在这个例子中,我会安装并使用Adafruit的库。它是为Adafruit LCD板设计的,但也可以与其他品牌的板子一起工作。如果你的显示板使用的是HD44780控制器,那么它作应该没有任何问题。

首先,运行下面的命令将所需的git目录克隆到树莓派上。

git clone https://github.com/pimylifeup/Adafruit_Python_CharLCD.git

接下来换到刚才克隆的目录中,运行设置文件。

cd ./Adafruit_Python_CharLCD
sudo python setup.py install

一旦安装完成,就可以在Pi上的Python脚本中调用Adafruit库。在Python脚本的顶部添加以下一行,就可以引入该库。然后就可以初始化电路板并对其进行操作。

import Adafruit_CharLCD as LCD

与显示器通信

Adafruit提供的库与树莓派 LCD 16×2显示器的通信非常简单。编写Python脚本来设置和改变显示屏变得非常容易。

在刚刚下载的文件夹中,有一些关于如何使用LCD库的例子。在运行这些例子之前,要更新文件顶部的引脚变量。如果按照我的电路操作,下面的值就是正确的。

lcd_rs        = 25 
lcd_en        = 24
lcd_d4        = 23
lcd_d5        = 17
lcd_d6        = 18
lcd_d7        = 22
lcd_backlight = 4
lcd_columns = 16
lcd_rows = 2

如果你想查看其中一个例子,可以进入examples中,查看这些文件:

cd ~/Adafruit_Python_CharLCD/examples/
sudo nano char_lcd.py

在这里更新引脚配置值到上面列出的那些。完成后,按CTRL + X然后按Y键退出即可。

现在运行这段代码。

python char_lcd.py

函数和Python代码

现在了解使用Python与屏幕交互的方法。

要初始化引脚,需要调用以下类。在调用该类之前,请确保所有作为参数传递的变量都被定义。

lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight)

一旦完成了这些工作,就可以将显示效果改成需要的样子。快速介绍一些用Adafruit库的方法。

  • home() – 这个方法将把光标移回原点,也就是第一行的第一列。

  • clear() – 这个方法可以清除LCD,使其完全空白。

  • set_cursor(col, row) – 本方法将光标移动到一个特定的位置。你可以通过传递列号和行号作为参数来指定位置。例如:set_cursor(1,4)

  • enable_display(enable) – 此项用于启用或禁用显示器。将其设置为 true 即可启用。

  • show_cursor(show) – 显示或隐藏光标。如果你想显示光标,请将其设置为true

  • blink(blink) – 打开或关闭闪烁的光标。如果您想让光标闪烁,请再次将其设置为true

  • move_left()move_right() – 将光标向左或向右移动一个位置。

  • set_right_to_left()set_left_to_right()-设置光标的方向为从左到右或从右到左。

  • autoscroll(autoscroll) – 如果将autoscroll设置为true,那么文本将从光标处右对齐。如果设置为false,则文本将左对齐。

  • message(text) – 简单地将文本写到显示屏上。你也可以在信息中加入新的行数(\n)。

还有一些可用的方法,但你不太可能需要使用它们。如果你想找到所有可用的方法,只要打开Adafruit_CharLCD文件夹内的Ardafruit_CharLCD.py文件即可,这个文件可以在Adafruit_Python_CharLCD文件夹内找到:

sudo nano ~/Adafruit_Python_CharLCD/Adafruit_CharLCD/Ardafruit_CharLCD.py

下面是我整理的一个简单的脚本,允许用户输入文字,然后显示在屏幕上。

#!/usr/bin/python
# Example using a character LCD connected to a Raspberry Pi
import time
import Adafruit_CharLCD as LCD

# Raspberry Pi pin setup
lcd_rs = 25
lcd_en = 24
lcd_d4 = 23
lcd_d5 = 17
lcd_d6 = 18
lcd_d7 = 22
lcd_backlight = 2

# Define LCD column and row size for 16x2 LCD.
lcd_columns = 16
lcd_rows = 2

lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, lcd_columns, lcd_rows, lcd_backlight)

lcd.message('Hello\nworld!')
# Wait 5 seconds

time.sleep(5.0)
lcd.clear()
text = raw_input("Type Something to be displayed: ")
lcd.message(text)

# Wait 5 seconds
time.sleep(5.0)
lcd.clear()
lcd.message('Goodbye\nWorld!')

time.sleep(5.0)
lcd.clear()

如果python脚本运行时,显示屏没有显示任何内容,那么很可能是脚本中定义的引脚有问题。仔细检查这些,也仔细检查面包板上的连接。

最后

本教程涵盖了用树莓派正确设置16×2液晶显示屏的基本知识,它还能做很多有趣的项目。

例如,可以在启动时启动一个脚本,可以显示特定的值,如IP地址,时间,温度等等。

此外,还有大量酷炫的传感器,可以尝试与显示器结合,像DS18B20温度传感器就可以和显示器配合使用,只需每隔几秒钟更新一次显示屏的新温度即可。

希望本教程对你设置树莓派LCD 16×2显示屏有所帮助。如果在阅读过程中发现了错误,或者遇到问题,请在下面留言。

- END -

硬件军火库


点击了解详情👆


至此,树莓派基础系列教程已经更新完毕

大家有什么想法,或是对文章的指正,都欢迎在下方留言




 往期回顾 



树莓派是什么?能吃吗

【树莓派基础系列教程】1、配置和初始化树莓派

【树莓派基础系列教程】2、远程连接树莓派

【树莓派基础系列教程】3、Linux命令学习

【树莓派基础系列教程】4、点亮LED

【树莓派基础系列教程】5、超声波传感器测距

【树莓派基础系列教程】6、按键控制树莓派关机

【树莓派基础系列教程】7、用树莓派实现自动温控小风扇

【树莓派基础系列教程】8、用树莓派通过I2C调试传感器


点击阅读👆

【声明】内容源于网络
0
0
DF创客社区
我们是专注于创新和开源硬件开发的公司——DFRobot成立的创客社区,无论你是资深创客还是小白,这里都有你的一席之地。一个人玩自己的项目,你只是寂寞宅;一群人看你玩项目,你就是技术牛!快来分享你的项目吧!
内容 1282
粉丝 0
DF创客社区 我们是专注于创新和开源硬件开发的公司——DFRobot成立的创客社区,无论你是资深创客还是小白,这里都有你的一席之地。一个人玩自己的项目,你只是寂寞宅;一群人看你玩项目,你就是技术牛!快来分享你的项目吧!
总阅读2.7k
粉丝0
内容1.3k