使用 Adafruit 库通过 Raspberry PI 2 控制 16x2 LCD

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / Java 学习路线 / 一对一提问 / 学习打卡/ 赠书活动

目前, 星球 内第2个项目《仿小红书(微服务架构)》正在更新中。第1个项目:全栈前后端分离博客项目已经完结,演示地址:http://116.62.199.48/。采用技术栈 Spring Boot + Mybatis Plus + Vue 3.x + Vite 4手把手,前端 + 后端全栈开发,从 0 到 1 讲解每个功能点开发步骤,1v1 答疑,陪伴式直到项目上线,目前已更新了 255 小节,累计 39w+ 字,讲解图:1716 张,还在持续爆肝中,后续还会上新更多项目,目标是将 Java 领域典型的项目都整上,如秒杀系统、在线商城、IM 即时通讯、权限管理等等,已有 1300+ 小伙伴加入,欢迎点击围观

作为一名爱好者,我开始使用 Netduino 处理嵌入式系统。这很有趣,但与此同时,Netduino 并没有提供我现在可以做的那么多事情。对于像我这样不懂电子学和 C/C++ 的人来说,这是一份礼物。现在,我正在使用 Raspberry PI 的最新版本,并且我在一个硬件上拥有我想要的一切。

为了开始使用 Python 和 Raspberry PI,我研究了“Hello World”类的 LED 闪烁示例。使用 LCD 是我想测试的第二件事,所以就在这里。在开始之前,这里是您需要的东西。

1. 1 个树莓派 2

2. 带 16x2 显示屏的 LCD - HD44780

3. 8 x 公母跳线

4. 5 x 公-公跳线

这是将 LCD 与 Raspberry PI 2 连接的简单接线

从接线图中可以看出,LCD 将占用 Raspberry PI 上的大约 6 个 GPIO 引脚。如果您插入了一些模块或您正计划插入,那么您可能会缺少 GPIO 引脚。要在您的板上保存 GPIO 引脚,您可以使用 MCP23008 或 MCP23017 。为简单起见,我暂时不使用任何端口扩展器。

现在是代码,目前我对 Python 知之甚少。因此,我将坚持使用我已阅读和测试过的内容。为了控制 LCD,我将使用 Adafruit 的 LCD 库,您可以 在此处 从 Github 获取它。我将使用 Adafruit_CharLCD.py 来控制我的 LCD。要记住的是,你不能开箱即用地使用这个库。您必须进行更改以在 __init__ 函数中设置正确的 GPIO 引脚。使用以下命令打开文件。


 $ sudo nano Adafruit_CharLCD.py

如果你使用和我一样的线路,那么改变 __init__ 函数像这样


 $ sudo nano Adafruit_CharLCD.py

保存更改,我们就可以开始了。要检查接线和代码更改是否正确完成,请在同一目录中执行以下命令。


 $ sudo nano Adafruit_CharLCD.py

让我们尝试使用这个简单的程序向显示器显示一些自定义消息。



 $ sudo nano Adafruit_CharLCD.py


这是另一个。该程序将要求您输入要显示的字符串。


 $ sudo nano Adafruit_CharLCD.py

我使用 Adafruit 库来控制显示的原因是因为它还有其他有用的功能来控制 LCD。以下是您可以尝试的功能列表。

clear() - 清除 LCD 并从内存中删除文本。

display()/noDisplay() - 切换 LCD 上的文本可见性。文本保留在内存中。

cursor()/noCursor - 切换光标可见性。

blink()/noBlink() - 切换光标闪烁。

home() - 将光标移动到 0,0 位置,即第一行的第一列。

setCursor(col, row) - 将光标设置到特定位置。使用 lcd.begin(col, rows) 设置显示器的列数和行数。

我希望这对刚开始使用 Raspberry Pi 的人有用。您还可以 在此处 从 Github 下载完整的源代码。