当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]尽管我们称之为“字符显示”,但每个字符并非是一个单独的完整块状物。如果你给屏幕通电并仔细观察,就会发现每个字母或数字都是由一个由小点组成的网格构成的。

简介

倘若你的 Arduino 项目不仅能发出闪烁的灯光或驱动电机运转,还能向你清晰地说明它正在做什么的话,那会是怎样的情景呢?

在本节课中,您将学习如何使用 16x2 液晶显示屏来显示信息,了解幕后所发生的情况,并使您的项目显得更加精致和专业。

这是“Arduino 初学者教程”系列的第 14 课,也是这类课程中那种能让学习过程感觉更加“真实”的一课。

让我们开始吧。

物资;供应品

对于这个项目,您将需要:

•Arduino UNO

•I/O 扩展护罩

•液晶显示屏

•四针电线

了解液晶显示屏模块

这是随“MindPlus Arduino 编程套装”一同配备的液晶显示屏模块,正是我们在本系列的 24 期内容中一直使用的那套套装。

乍一看,它似乎太过简单了:正面有一个屏幕,背面有一些电子元件,还有一个仅四个针脚的连接器,这已经暗示着接线过程会相当简便。

如果你仔细观察显示屏的底部前端,就会看到上面印着“LCD 1602”字样。这个名称确切地告诉我们这是何种类型的屏幕。

“16”指的是每行能够显示的字符数量,而“2”指的是行数。换句话说,这种显示屏最多能在第一行显示 16 个字符,在第二行也能显示 16 个字符。

尽管我们称之为“字符显示”,但每个字符并非是一个单独的完整块状物。如果你给屏幕通电并仔细观察,就会发现每个字母或数字都是由一个由小点组成的网格构成的。

具体来说,每个字符都是由一个 5×8 像素的矩阵构成的。通过控制不同的像素开启或关闭,液晶显示屏就能绘制出字母、数字和符号。

一旦你明白了这个细节,这款显示器的各种局限性和可能性也就变得清晰明了了。

您还会发现其他格式的液晶显示屏。有些尺寸较小,比如 16x1 显示屏,而有些则较大,比如 16x4。它们还具有不同的颜色,例如绿色或蓝色。尽管存在这些差异,但其基本理念是相同的。

I2C 通信及其重要性

如果我们将模块翻转过来,并将注意力集中在连接器上,就会立刻注意到两个明显的标签:SDA 和 SCL。这些标签告诉我们,这款液晶显示屏采用的是 I2C 通信方式。

在 I2C 接口配置中,SDA 引脚负责传输数据,而且有趣的是,它能够双向传输数据。

SCL 引脚传输时钟信号,该信号由主设备生成。在我们的例子中,Arduino 起到主设备的作用,控制着通信过程。

I2C 的最大优势之一在于它能让多个设备共用同一对导线。只要每个设备都有其独特的地址,您就可以将多个传感器、显示器和模块连接到相同的 SDA 和 SCL 线路上。

这的确实非常强大,尤其对于初学者项目而言更是如此,因为它能确保布线保持整洁、简单,并且便于排查故障。

如果你之前使用过 Arduino,那么你可能见过另一种不使用 I2C 协议的液晶显示屏。这类显示屏通常有较多的引脚,连接它们需要更多的线路连接和配置工作。因此,很多人最终会购买一个 I2C 适配器,并将其焊接到标准液晶显示屏的背面。

该适配器通常会包含一个名为 PCF8574 的芯片。这个芯片充当 I2C 输入/输出扩展器的功能。简单来说,它就是为显示屏添加 I2C 通信功能的部件。值得一提的是,这个芯片不仅适用于液晶显示屏,还可以用于控制 LED、传感器以及其他模块。

现在理论部分就讲到这里吧。咱们还是动手去做点实际的东西吧。

在我们开始项目之前,我想感谢 DFRobot 公司为我们提供了这次课程的赞助。

DFRobot 是全球领先的为创客、教育工作者和工程师提供硬件产品的企业之一。

在他们的在线商店里,您可以找到开展下一个项目所需的各种物品,从电机、传感器、微控制器到单板计算机、人工智能设备等等应有尽有。

如果你打算打造一些酷炫的东西,我强烈建议你去看看他们的产品。他们的产品质量上乘,价格也非常合理。

在本系列教程中,我使用的是“MindPlus Arduino 编程套件”,因为它包含了你开展 Arduino 项目所需的一切工具。

再次感谢 DFRobot 对此系列的支持,感谢你们让 STEM 教育能够惠及更多人。

启动项目

那我们继续吧,开始组装我们的第一个液晶显示器项目。

首先将 I/O 扩展板安装到你的 Arduino UNO 上。这个扩展板使得连接模块变得更加容易,并且还能使所有部件保持整齐有序。

接下来,使用四针电缆将液晶模块连接到屏蔽板上。SCL 引脚连接到 A5,SDA 引脚连接到 A4。该显示屏的工作电压范围为 3.3 至 5 伏,因此可以安全地与大多数 Arduino 板配合使用。

一旦硬件准备就绪,就前往本系列的 GitHub 仓库。在描述中会找到相关链接。打开第 14 课的文件夹,复制名为“test-lcd”的文件,并将其粘贴到你的 Arduino IDE 中。

在上传代码之前,请确保已安装了 DFRobot_RGBLCD1602 库。完成此操作后,点击“上传”。

如果所有连接都正确无误,您应该会在屏幕上看到“第 14 课 - 液晶模块”这一信息。这就是我们取得的第一个成功。

理解代码

现在让我们放慢速度,仔细看看这段代码实际在做什么。

首先,我们要引入正确的库,并创建一个能够控制液晶显示屏的对象。你可以将这个对象视为我们与屏幕进行直接通信的途径。

在 setup() 函数内部,我们初始化显示屏、清除之前的所有数据,并打印出我们的信息。需要记住的一个重要细节是,每行只能显示 16 个字符。如果您的信息长度超过这个限制,您就需要将其分两行显示,下面就是这样的实现方式。

如果这部分内容您仍觉得难以理解,别担心。我有一整套关于 Arduino 编程基础的课程,如果您想更深入地理解的话,那读一读也是很有帮助的。

但接下来便出现了有趣的问题:倘若你的信息内容实在太过冗长,以至于无法仅用两行文字来表达清楚,那该怎么办呢?

创建滚动文字效果

我们不必试图一次性展示所有内容,而是可以采用一种滑动或滚动的效果,使得在任何特定时刻只有一部分信息是可见的。这种技术在许多实际设备中都有应用,从打印机到工业控制面板等等。

要实际体验一下效果,请返回 GitHub 仓库,复制名为“滑动文本”的示例代码,将其上传至你的 Arduino 设备,然后观察液晶显示屏。您会看到一条长长的文本信息在屏幕上流畅地滚动。

那么,这是如何运作的呢?

这段示例的开头部分以及 setup() 函数与之前的示例几乎完全相同,因此真正的重点在于 loop() 函数。这就是逻辑所在的地方。

核心思想是将信息不看作一条直线,而视为一个圆圈。想象一下文字写在一个环上。当你读到结尾时,会立即回到开头重新开始。这种方法使我们能够实现无限滚动的效果,而无需担心信息的起始位置或结束位置。

由于液晶显示屏每次只能显示 16 个字符,所以该代码会构建一个名为“visibleText”的临时字符串。这个字符串准确地表示了在特定时刻屏幕上应显示的内容。

一个 for 循环会运行 16 次,每次对应显示窗口中的一列内容。在每次迭代中,它都会从消息中选取下一个字符。

模运算用于在字符串末尾到达时进行循环处理,这就是为什么模运算符在这里如此重要。它确保代码不会超出边界,并使文本能够流畅地滚动。

构建完 16 位字符串后,该代码会将其输出到液晶显示屏上,然后将位置向前移动一个字符,并等待一段短暂的延迟。调整这个延迟时间会改变滚动的速度。

其结果是呈现出一条清晰、流畅且连贯的滚动信息。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭