這篇文章來(lái)源于DevicePlus.com英語(yǔ)網(wǎng)站的翻譯稿。
通過(guò)使用Arduino擴(kuò)展板,您可以利用各種有用功能和可直接插入擴(kuò)展板的工具來(lái)快速升級(jí)自己的項(xiàng)目。為了向您展示這項(xiàng)操作的簡(jiǎn)易性,我們將介紹如何把可編程LCD顯示器添加到您的Arduino項(xiàng)目中,使您可以用它來(lái)顯示文本,并通過(guò)一系列的按鈕來(lái)為您提供輸入功能。
Arduino擴(kuò)展板和LCD顯示器的工作原理
我們之前已經(jīng)討論過(guò)Arduino擴(kuò)展板,但是以防您不太熟悉,我們?cè)谶@里進(jìn)行一些簡(jiǎn)單介紹。擴(kuò)展板是Arduino項(xiàng)目的附加組件,可以直接插入您的開(kāi)發(fā)板以增加新的功能。有些是可堆疊的,所以您可以將多個(gè)模塊添加到單個(gè)項(xiàng)目中。它們通常帶有自己的軟件庫(kù),您可以將這些軟件庫(kù)導(dǎo)入到您的草圖中,以便像使用所連接的其他組件那樣輕松對(duì)其進(jìn)行控制。
在本指南中,我們將使用LCD顯示器擴(kuò)展板。這種擴(kuò)展板有多種變體,我們將要使用的是 1602鍵盤(pán)擴(kuò)展板,它可以在每行中顯示最多16個(gè)字符并顯示2行(所以為1602),一次最多可以顯示32個(gè)字符。它還帶有六個(gè)按鈕:四個(gè)方向按鈕(向左、向右、向上和向下),一個(gè)選擇按鈕和一個(gè)重置按鈕。
該擴(kuò)展板有28個(gè)引腳,與Arduino Uno上的引腳對(duì)應(yīng)。擴(kuò)展板通常設(shè)計(jì)為可直接插入相應(yīng)的開(kāi)發(fā)板上,因此如果您的擴(kuò)展板和開(kāi)發(fā)板上的引腳不匹配,可能需要換一個(gè)擴(kuò)展板?;谝陨锨闆r,如果您已經(jīng)有了一個(gè)Arduino Uno和正確的擴(kuò)展板,就可以直接將擴(kuò)展板插入開(kāi)發(fā)板了(我們將在下面的接線部分詳細(xì)討論這一過(guò)程)。
但是,LCD顯示器不需要用到板上的所有引腳。這時(shí)候那些直通式引腳就可以派上用場(chǎng)了。您可以將電線連接到LCD顯示器擴(kuò)展板的開(kāi)路觸點(diǎn)上,這將會(huì)連接到Arduino。這很方便,因?yàn)槿绱艘粊?lái)您就可以不用因?yàn)槭褂脭U(kuò)展板而丟失任何開(kāi)路引腳了。
最后一部分工作是導(dǎo)入LiquidCrystal庫(kù)。這個(gè)庫(kù)提供了簡(jiǎn)單的命令來(lái)執(zhí)行顯示文本、滾動(dòng)文本、控制光標(biāo)位置等操作。只要您的LCD顯示器擴(kuò)展板與此庫(kù)兼容(大多數(shù)流行的擴(kuò)展板都兼容),那么您就可以導(dǎo)入此庫(kù),然后使用非常簡(jiǎn)單的命令來(lái)對(duì)顯示器進(jìn)行控制了。
所需部件
由于擴(kuò)展板直接插入Arduino開(kāi)發(fā)板,所以該項(xiàng)目不需要使用大量零部件。這也是Arduino的出色之處:它們可以極大地簡(jiǎn)化您的項(xiàng)目。但是,在開(kāi)始之前,您還是需要準(zhǔn)備好以下部件:
Arduino Uno |
|
|||
LCD顯示器擴(kuò)展板 | ||||
Arduino IDE |
|
您還需要一個(gè)USB數(shù)據(jù)線!
我們將在下面的接線部分討論如何插入擴(kuò)展板,但在此之前,我們首先了解一下軟件部分。
代碼
Arduino IDE中自帶有一些草圖,位于 File > Examples > Liquid Crystal的示例說(shuō)明中。出于本項(xiàng)目的目的,我們將使用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);
}
現(xiàn)在,我們來(lái)了解一下該代碼所執(zhí)行的工作。
#include
這行代碼用于導(dǎo)入LiquidCrystal庫(kù)。如果想要使用此庫(kù)中的命令,則必須將這一行寫(xiě)在代碼頂部。
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
接下來(lái)的這兩行用于以4位模式初始化代表控制LCD顯示器所需的六個(gè)引腳的變量:rs、enable、d4、d5、d6和d。Arduino文檔中有更多以8位模式控制LCD顯示器的引腳的有關(guān)信息,但是本示例中不需要這部分內(nèi)容。
第二行用于將這些引腳(通過(guò)您剛剛創(chuàng)建的變量)分配給一個(gè)名為L(zhǎng)iquidCrystal的新型變量,在本例中,將該變量命名為lcd。這使您可以將LCD顯示器作為一個(gè)整體進(jìn)行尋址,而不必控制每一個(gè)單獨(dú)的引腳。如此一來(lái),您就可以通過(guò)簡(jiǎn)單的命令行來(lái)使用LiquidCrystal庫(kù)中的其他命令了。
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()部分,只有兩個(gè)命令:第一個(gè),lcd.begin()(在我們剛剛創(chuàng)建的變量之上調(diào)用 begin()命令),用于初始化LCD顯示器。第二個(gè)用于打印語(yǔ)句“hello, world!”。
此print() 命令與您過(guò)去使用的命令不同。Serial.print()命令用于將數(shù)據(jù)打印到串行端口,而該打印命令用于將文本打印到LCD顯示器??梢栽谀蒙鲜龇椒▌?chuàng)建的任意LCD對(duì)象上對(duì)其進(jìn)行調(diào)用。
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);
}
在本節(jié)中使用了另外兩行代碼來(lái)更改光標(biāo)位置并打印出設(shè)備重置之后經(jīng)過(guò)的毫秒數(shù)。您可能會(huì)再一次感受到每項(xiàng)任務(wù)的操作有多么簡(jiǎn)單,只需要使用庫(kù)中的一行代碼就可以完成操作。setCursor()函數(shù)用于將光標(biāo)放在您指定的位置。由于行和列都從零開(kāi)始計(jì)數(shù),坐標(biāo)(0,1)指的是第二行的第一列。顯示器再次使用print()顯示自設(shè)備重置之后經(jīng)歷的毫秒數(shù)。
接線
如果您只使用了擴(kuò)展板,那么在本項(xiàng)目中就沒(méi)有其他特別的接線工作了。只需將LCD擴(kuò)展板底部的引腳與Arduino Uno板上的引腳對(duì)齊即可。建議從Arduino板最遠(yuǎn)端的A0和RX0引腳開(kāi)始對(duì)齊。
引腳組中存在自然間距(例如引腳7和8之間,以及A0 和vin之間)可以幫助您正確排列引腳。對(duì)齊后,以合適的力度按下擴(kuò)展板,直到所有引腳都嚴(yán)密地連接到開(kāi)發(fā)板上。
在LCD擴(kuò)展板上,您將看到在有許多引腳上焊接點(diǎn)(與擴(kuò)展板之間連接的地方)的旁邊都有空的觸點(diǎn)。如果您想添加額外的電線或組件,可以選擇在這些觸點(diǎn)上進(jìn)行連接。
評(píng)論