這篇文章來源于DevicePlus英語網(wǎng)站的翻譯稿。在之前的一篇指南中,我們介紹了Arduino Uno以及基于該平臺(tái)的可編程開發(fā)板和擴(kuò)展板系列。但是如果沒有軟件,硬件將沒有任何作用。本指南將向您展示如何設(shè)置Arduino IDE、連接您的開發(fā)板以及上傳您的第一個(gè)草圖。
詞匯表
首先,我們定義一些您將在本指南中以及在未來項(xiàng)目中看到的術(shù)語:
● 集成開發(fā)環(huán)境(IDE):該術(shù)語指用于開發(fā)程序的軟件,其中包括代碼編輯器以及調(diào)試工具、軟件模板和其他編輯代碼所需要的工具。Arduino IDE簡(jiǎn)稱為Arduino或Arduino軟件。
● 草圖:在Arduino開發(fā)板上運(yùn)行的程序被稱為“草圖”。這些程序很簡(jiǎn)單,可以在開發(fā)板上持續(xù)運(yùn)行,即使在您將其與計(jì)算機(jī)斷開連接后也會(huì)繼續(xù)運(yùn)行。
● Arduino 語言:Arduino編程語言是一組C/C++函數(shù),如果您習(xí)慣于使用C/C++進(jìn)行編碼,那么您會(huì)發(fā)現(xiàn)使用該編程語言非常自如。您可以點(diǎn)擊此處查看Arduino特定功能的相關(guān)信息。
設(shè)置 IDE
首先,請(qǐng)?jiān)诖颂幭螺d適用于您的操作系統(tǒng)的Arduino IDE。在本指南中,我們使用的是Windows系統(tǒng)。下載后運(yùn)行安裝程序,并按照向?qū)О惭b必要的組件。在設(shè)置過程中,您還會(huì)被要求安裝USB驅(qū)動(dòng)程序,這將使您的計(jì)算機(jī)與Uno(或其他任何開發(fā)板)之間能夠進(jìn)行通信。
安裝完成后,啟動(dòng)Arduino IDE。您會(huì)看到像下面那樣的屏幕。
您可以在此處編寫代碼,然后將其上傳到您的Arduino。空白草圖包括兩個(gè)函數(shù),它們是每個(gè)Arduino草圖的核心部分:setup() 和 loop()。當(dāng)Arduino打開時(shí),setup()函數(shù)中的代碼將被運(yùn)行一次。只要設(shè)備被啟動(dòng),loop()中的所有內(nèi)容都會(huì)被重復(fù)執(zhí)行。
在上傳草圖之前,您需要確保IDE可以和您的開發(fā)板之間進(jìn)行正確通信。在Tools > Board下,確認(rèn)選擇了您的Arduino特定型號(hào)。在本指南中,我們使用的是“Arduino Uno”。接下來,在Tools > Port 下,選擇連接到開發(fā)板的COM端口。如果您的驅(qū)動(dòng)程序安裝正確,它旁邊將顯示您的開發(fā)板名稱。如果沒有,請(qǐng)按照這些說明手動(dòng)安裝開發(fā)板的驅(qū)動(dòng)程序。
如果您更愿意在web端進(jìn)行編碼(在使用多臺(tái)計(jì)算機(jī)來開發(fā)Arduino項(xiàng)目時(shí)會(huì)用到),您可以設(shè)置 Arduino Web Editor并安裝Arduino Create Plugin,以實(shí)現(xiàn)在Google Chrome或者M(jìn)ozilla Firefox上編寫及上傳草圖。
Blink草圖
為了了解草圖的工作原理,我們將運(yùn)行一個(gè)名為Blink的基本草圖。您不需要為該草圖進(jìn)行任何特別的接線,運(yùn)行該草圖是檢測(cè)您的Arduino是否工作正常的便捷方法。
Blink草圖內(nèi)置于Arduino IDE。要打開它,請(qǐng)進(jìn)入File > Examples > 01.Basics > Blink。這將在新窗口中打開簡(jiǎn)版草圖。上傳后,該草圖將使開發(fā)板上的橙色LED進(jìn)行周期性閃爍。
要上傳草圖,請(qǐng)將Arduino插入您的計(jì)算機(jī)中,然后點(diǎn)擊“Sketch > Upload”或按下“Ctrl-U”鍵。草圖上傳完成后,Uno上標(biāo)有“L”的橙色LED將開始以每秒一次的頻率進(jìn)行閃爍。
恭喜您!您已經(jīng)成功上傳了第一個(gè)草圖。
修改Blink草圖
既然您已經(jīng)知道Blink草圖是用來干什么的了,我們可以回過頭來看看它是如何工作的,還可以對(duì)其進(jìn)行一些調(diào)整。首先,讓我們看一下代碼中的setup()部分:
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
這部分代碼僅運(yùn)行一次,用來初始化Arduino板上的LED。pinMode() 函數(shù)使您能夠?qū)⒁_分配為輸入或輸出。Arduino Uno有14個(gè)可用作輸入或輸出的數(shù)字引腳。但是,該草圖使用的是內(nèi)置LED,所以引腳已經(jīng)指定好了。因此,這行代碼將LED指定為輸出。
接下來,我們來看一下loop()函數(shù)中的內(nèi)容。
void loop() {
digitalWrite(LED_BUILTIN, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(LED_BUILTIN, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
只要Arduino啟動(dòng),該代碼就會(huì)被運(yùn)行。這部分有四行代碼。第一行使用了digitalWrite()函數(shù),將引腳(在本例中為內(nèi)置LED)分配為高電平或低電平。對(duì)于該代碼,您可以將其視為開啟或關(guān)閉。當(dāng)引腳設(shè)置為高電平時(shí),Arduino Uno將引入5V電流通過LED,使其點(diǎn)亮。當(dāng)引腳設(shè)置為低電平時(shí),Uno將把電壓降至0V,LED關(guān)閉。
因此,循環(huán)代碼中的第一行用于打開LED。下一個(gè)函數(shù)是delay()。這個(gè)函數(shù)的作用和它的名稱含義一樣。它會(huì)使草圖停滯等待一段時(shí)間,不執(zhí)行任何操作。delay()函數(shù)以毫秒為單位。因?yàn)樵摬輬D告訴Uno延遲1000毫秒,所以LED將會(huì)保持亮起1秒。
第三行和第四行會(huì)以相反的順序重復(fù)執(zhí)行以上操作。第三行將LED引腳設(shè)置為低電平,將其關(guān)閉,第四行使程序等待1秒。通過循環(huán)該過程,LED將閃爍1秒,關(guān)閉1秒,然后循環(huán)往復(fù),從而在通電的情況下一直閃爍。
現(xiàn)在您已經(jīng)了解了該草圖的工作原理了,可以嘗試對(duì)腳本進(jìn)行修改來獲得不同的效果。您可以將delay()間隔設(shè)置為100毫秒來實(shí)現(xiàn)燈光快速閃爍的效果。您還可以刪除掉關(guān)閉LED的代碼,讓燈光始終保持亮起的狀態(tài)。
在編寫草圖時(shí),內(nèi)置LED是一個(gè)特別有用的工具。因?yàn)槿绻某绦蚴。珹rduino并不能總是提供足夠的反饋。您可以使用LED來診斷草圖是否可以正常工作,例如在草圖成功運(yùn)行的時(shí)候LED可以被點(diǎn)亮,或者草圖運(yùn)行失敗的時(shí)候LED會(huì)發(fā)生閃爍。雖然僅僅有LED閃爍這樣的信息可能看起來并不夠,但是在更大的項(xiàng)目中這將會(huì)非常有用。