这篇文章来源于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 |
|
|||
LCD显示器扩展板 | ||||
Arduino IDE |
|
您还需要一个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扩展板上,您将看到在有许多引脚上焊接点(与扩展板之间连接的地方)的旁边都有空的触点。如果您想添加额外的电线或组件,可以选择在这些触点上进行连接。
评论