0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何在您的项目中添加LCD显示器

李刚 来源:hy381 作者:hy381 2023-02-23 09:40 次阅读

这篇文章来源于DevicePlus.com英语网站的翻译稿。

通过使用Arduino扩展板,您可以利用各种有用功能和可直接插入扩展板的工具来快速升级自己的项目。为了向您展示这项操作的简易性,我们将介绍如何把可编程LCD显示器添加到您的Arduino项目中,使您可以用它来显示文本,并通过一系列的按钮来为您提供输入功能。

Arduino扩展板和LCD显示器的工作原理

我们之前已经讨论过Arduino扩展板,但是以防您不太熟悉,我们在这里进行一些简单介绍。扩展板是Arduino项目的附加组件,可以直接插入您的开发板以增加新的功能。有些是可堆叠的,所以您可以将多个模块添加到单个项目中。它们通常带有自己的软件库,您可以将这些软件库导入到您的草图中,以便像使用所连接的其他组件那样轻松对其进行控制。

在本指南中,我们将使用LCD显示器扩展板。这种扩展板有多种变体,我们将要使用的是 1602键盘扩展板,它可以在每行中显示最多16个字符并显示2行(所以为1602),一次最多可以显示32个字符。它还带有六个按钮:四个方向按钮(向左、向右、向上和向下),一个选择按钮和一个重置按钮。
该扩展板有28个引脚,与Arduino Uno上的引脚对应。扩展板通常设计为可直接插入相应的开发板上,因此如果您的扩展板和开发板上的引脚不匹配,可能需要换一个扩展板。基于以上情况,如果您已经有了一个Arduino Uno和正确的扩展板,就可以直接将扩展板插入开发板了(我们将在下面的接线部分详细讨论这一过程)。

但是,LCD显示器不需要用到板上的所有引脚。这时候那些直通式引脚就可以派上用场了。您可以将电线连接到LCD显示器扩展板的开路触点上,这将会连接到Arduino。这很方便,因为如此一来您就可以不用因为使用扩展板而丢失任何开路引脚了。

最后一部分工作是导入LiquidCrystal库。这个库提供了简单的命令来执行显示文本、滚动文本、控制光标位置等操作。只要您的LCD显示器扩展板与此库兼容(大多数流行的扩展板都兼容),那么您就可以导入此库,然后使用非常简单的命令来对显示器进行控制了。

所需部件

由于扩展板直接插入Arduino开发板,所以该项目不需要使用大量零部件。这也是Arduino的出色之处:它们可以极大地简化您的项目。但是,在开始之前,您还是需要准备好以下部件:

Arduino Uno

pYYBAGPy0keAIANsAAA5UDjpMbU093.png

LCD显示器扩展板 pYYBAGPy0kuALMG7AACbdQjaXFE323.jpg
Arduino IDE

pYYBAGPy0k2AN7DzAAAw7VCpJJQ071.png

您还需要一个USB数据线!

我们将在下面的接线部分讨论如何插入扩展板,但在此之前,我们首先了解一下软件部分。

代码

Arduino IDE中自带有一些草图,位于 File > Examples > Liquid Crystal的示例说明中。出于本项目的目的,我们将使用HelloWorld草图。您可以在IDE中加载该草图,以下为该草图的完整代码:

*/

// include the library code:
#include

// initialize the library by associating any needed LCD interface pin
// with the arduino pin number it is connected to
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
// set up the LCD’s number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print(“hello, world!”);
}

void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis() / 1000);
}

现在,我们来了解一下该代码所执行的工作。

#include

这行代码用于导入LiquidCrystal库。如果想要使用此库中的命令,则必须将这一行写在代码顶部。

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

接下来的这两行用于以4位模式初始化代表控制LCD显示器所需的六个引脚的变量:rs、enable、d4、d5、d6和d。Arduino文档中有更多以8位模式控制LCD显示器的引脚的有关信息,但是本示例中不需要这部分内容。

第二行用于将这些引脚(通过您刚刚创建的变量)分配给一个名为LiquidCrystal的新型变量,在本例中,将该变量命名为lcd。这使您可以将LCD显示器作为一个整体进行寻址,而不必控制每一个单独的引脚。如此一来,您就可以通过简单的命令行来使用LiquidCrystal库中的其他命令了。

void setup() {
// set up the LCD’s number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print(“hello, world!”);
}

在setup()部分,只有两个命令:第一个,lcd.begin()(在我们刚刚创建的变量之上调用 begin()命令),用于初始化LCD显示器。第二个用于打印语句“hello, world!”。

此print() 命令与您过去使用的命令不同。Serial.print()命令用于将数据打印到串行端口,而该打印命令用于将文本打印到LCD显示器。可以在您用上述方法创建的任意LCD对象上对其进行调用。

void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis() / 1000);
}

在本节中使用了另外两行代码来更改光标位置并打印出设备重置之后经过的毫秒数。您可能会再一次感受到每项任务的操作有多么简单,只需要使用库中的一行代码就可以完成操作。setCursor()函数用于将光标放在您指定的位置。由于行和列都从零开始计数,坐标(0,1)指的是第二行的第一列。显示器再次使用print()显示自设备重置之后经历的毫秒数。

接线

如果您只使用了扩展板,那么在本项目中就没有其他特别的接线工作了。只需将LCD扩展板底部的引脚与Arduino Uno板上的引脚对齐即可。建议从Arduino板最远端的A0和RX0引脚开始对齐。
引脚组中存在自然间距(例如引脚7和8之间,以及A0 和vin之间)可以帮助您正确排列引脚。对齐后,以合适的力度按下扩展板,直到所有引脚都严密地连接到开发板上。

在LCD扩展板上,您将看到在有许多引脚上焊接点(与扩展板之间连接的地方)的旁边都有空的触点。如果您想添加额外的电线或组件,可以选择在这些触点上进行连接。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 显示器
    +关注

    关注

    21

    文章

    4969

    浏览量

    139913
  • lcd
    lcd
    +关注

    关注

    34

    文章

    4421

    浏览量

    167383
  • Arduino
    +关注

    关注

    188

    文章

    6468

    浏览量

    186920
收藏 人收藏

    评论

    相关推荐

    用于连接ILI9341显示器和Wemos Lolin D32 Pro载板

    ~ 3.3VI/O 接口电压下工作,并集成电压跟随电路以产生驱动 LCD 的电压电平。这个项目中使用的显示模块有一个内置的触摸界面,里面有一个 SD 卡读卡
    发表于 09-05 06:10

    何在i.MX8MP项目中使用2个具有触摸功能的LVDS显示器

    我们将在 i.MX8MP 项目中使用 2 个具有触摸功能的 LVDS 显示器(1280-800 分辨率)。两个 LVDS 显示器都是单通道(4 通道)。i.MX8MP 可以为我们的显示器
    发表于 03-23 07:22

    CRT与LCD显示器的性能分析

    CRT与LCD显示器的性能分析:本文说明了CRT 显示器LCD 显示器的结构特点和工作原理, 对两种不同的
    发表于 08-09 10:41 26次下载

    lcd显示器工作原理

    lcd显示器简介 液晶显示器(LCD)英文全称为Liquid Crystal Display,它一种是采用了液晶控制透光度技术
    发表于 10-29 00:01 9325次阅读

    LCD显示器概述

    LCD显示器概述         
    发表于 12-26 17:12 801次阅读

    TFT LCD显示器的驱动原理

    TFT LCD显示器的驱动原理  TFT 液晶显示器的驱动原理 (一)     我们针对TFT LCD的整体系统面来做介绍, 也就是对其驱动原
    发表于 04-23 15:15 5975次阅读

    LCD显示器电源

    电源设计的参考设计:LCD 显示器电源。
    发表于 05-11 15:18 19次下载

    LCD即将超越OLED显示器

    台湾日亚化学(NICHIA)总经理戴圳家表示,苹果智慧型手机采用OLED显示器,的确对LED市场造成一定的影响与挑战。不过,LCD背光与LCD面板已是相当成熟的技术,虽然在智慧型手机全荧幕的表现上
    发表于 07-04 04:27 789次阅读

    crt显示器lcd显示器的区别

      crt显示器lcd显示器目前已经在市场中得到了广泛的运用,那么它们之间有什么区别呢?我们一起来看看。
    发表于 12-07 15:15 1.9w次阅读

    用于信息娱乐或群集显示器的汽车LCD/显示器偏压解决方案

    和VGL)。 在许多情况下,您可以使用LCD偏压电源,如TPS65150-Q1(一种适用于信息娱乐或群集显示器的汽车LCD/显示器偏压解决方案,可大大简化
    的头像 发表于 04-25 16:51 6239次阅读

    基于钻井深度显示器和带有Arduino支持的7段显示器设计

    在这个Arduino项目中,通过陀螺传感的钻井深度显示器和带有Arduino支持的7段显示器,来读取所需位置的深度。
    的头像 发表于 05-20 17:14 2635次阅读
    基于钻井深度<b class='flag-5'>显示器</b>和带有Arduino支持的7段<b class='flag-5'>显示器</b>设计

    何在嵌入式应用程序中使用电子纸显示器

    了解电子纸显示器的工作原理以及如何将低功耗电子纸显示器集成到的嵌入式项目中
    的头像 发表于 05-10 16:05 1881次阅读
    如<b class='flag-5'>何在</b>嵌入式应用程序中使用电子纸<b class='flag-5'>显示器</b>

    何在项目中添加数码管

    这篇文章来源于DevicePlus.com英语网站的翻译稿。在之前的项目中,我们已经展示了如何使用Arduino来控制LED矩阵。但是,如果项目只需要显示数字,那么最好使用七段数码
    的头像 发表于 03-23 15:13 957次阅读
    如<b class='flag-5'>何在</b><b class='flag-5'>您</b>的<b class='flag-5'>项目中</b><b class='flag-5'>添加</b>数码管

    何在Raspberry Pi项目中添加Siri控制

    目的:本教程旨在教如何使用SiriControl开源Python框架在RaspberryPi项目中添加Siri功能和控制功能。
    的头像 发表于 02-27 10:27 758次阅读
    如<b class='flag-5'>何在</b>Raspberry Pi<b class='flag-5'>项目中</b><b class='flag-5'>添加</b>Siri控制

    何在Arduino中使用20x4 I2C字符LCD显示器

    电子发烧友网站提供《如何在Arduino中使用20x4 I2C字符LCD显示器.zip》资料免费下载
    发表于 06-28 15:57 0次下载
    如<b class='flag-5'>何在</b>Arduino中使用20x4 I2C字符<b class='flag-5'>LCD</b><b class='flag-5'>显示器</b>