在本課中,您將學(xué)習(xí)如何編程Arduino以使Arduino的內(nèi)置LED閃爍。
材料清單
- Arduino Uno R3 1塊
- USB引線 - 類型A到B 1根
Arduino有兩排連接器,用于連接電子設(shè)備和插入式“屏蔽層”,使Arduino能夠做得更多。
然而,Arduino也有一個(gè)LED,你可以從你的草圖中控制。 該LED內(nèi)置于Arduino板上,通常稱為“L”LED,因?yàn)檫@是它在電路板上的標(biāo)記。
這個(gè)LED的位置在下面的Arduino Uno和Leonardo的圖片上以紅色圈出。
您可能會(huì)發(fā)現(xiàn),將Arduino電路板的“L”LED連接到USB插頭時(shí),它已經(jīng)閃爍。 這是因?yàn)锳rduino主板通常會(huì)隨附預(yù)裝的“Blink”草圖。
在本課中,我們將使用我們自己的Blink草圖重新編程Arduino,然后更改閃爍的速率。
在第0課中,您將設(shè)置Arduino IDE,并確保您可以找到正確的串行端口以連接到您的Arduino板。 現(xiàn)在已經(jīng)到了將該連接用于測(cè)試和編程Arduino板的時(shí)候了。
Arduino IDE包含大量您可以加載和使用的示例草圖。 這包括使'L'LED閃爍的示例草圖。
在文件→示例→01.Basics下載入IDE菜單系統(tǒng)中的'Blink'草圖。
當(dāng)草圖窗口打開時(shí),將其放大,以便您可以在窗口中看到整個(gè)草圖。
保存'閃爍'的副本
Arduino IDE附帶的示例草圖是“只讀”的。 也就是說(shuō),您可以將它們上傳到Arduino板,但如果您更改它們,則無(wú)法將它們保存為相同的文件。
我們將改變這個(gè)草圖,所以,你需要做的第一件事就是保存你自己的副本,你可以改變你喜歡的副本。
從Arduino IDE的File菜單中選擇'Save As ..'選項(xiàng),然后用名稱'MyBlink'保存草圖。
您已將您的“閃爍”副本保存在寫生簿中。 這意味著如果你想再次找到它,你可以使用File→Sketchbook菜單選項(xiàng)來(lái)打開它。
將Blink上傳至電路板
使用USB電纜將Arduino板連接到計(jì)算機(jī),并檢查“Board Type”和“Serial Port”是否設(shè)置正確。 您可能需要參考第0課。
Arduino IDE將顯示窗口底部板子的當(dāng)前設(shè)置。
點(diǎn)擊“上傳”按鈕。 工具欄左側(cè)的第二個(gè)按鈕。
如果您觀看IDE的狀態(tài)區(qū)域,您將看到一個(gè)進(jìn)度條和一系列消息。 起初它會(huì)說(shuō)'編譯草圖..'。 這將草圖轉(zhuǎn)換為適合上傳到電路板的格式。
接下來(lái),狀態(tài)將變?yōu)椤罢谏蟼鳌薄?此時(shí),Arduino上的LED會(huì)在草圖傳輸時(shí)開始閃爍。
最后,狀態(tài)將變?yōu)椤巴瓿伞薄?/p>
另一條消息告訴我們,草圖使用32,256字節(jié)中的1,084字節(jié)。在“編譯草圖..”階段之后,您可能會(huì)收到以下錯(cuò)誤消息:
線索位于頂部,這可能意味著您的主板根本沒有連接,或者驅(qū)動(dòng)程序尚未安裝(如有必要)或者選擇了錯(cuò)誤的串行端口。
如果你得到這個(gè),回到第0課并檢查你的安裝。
上傳完成后,電路板應(yīng)重新啟動(dòng)并開始閃爍。
'Blink'如何工作
Blink草圖的代碼見附件。
首先要注意的是,很多這種草圖就是所謂的“評(píng)論”。 評(píng)論不是實(shí)際的程序指令,它們只是關(guān)于程序如何工作的評(píng)論。 他們?cè)谀抢锸菫榱说玫胶锰?,所以伴隨草圖有一些解釋。
草圖頂部的/ *和* /之間的所有內(nèi)容都是塊注釋,它解釋了草圖的用途。
也有以//開頭的單行注釋,并且在行末尾的所有內(nèi)容都被視為注釋。
第一個(gè)實(shí)際的代碼行是:
int led = 13;
正如上面的評(píng)論所解釋的那樣,這給了LED所連接的引腳的名稱。 這在大多數(shù)Arduinos中都是13,包括Uno和Leonardo。
接下來(lái),我們有'設(shè)置'功能。 同樣,如評(píng)論所述,按下重置按鈕時(shí)會(huì)運(yùn)行。 它也會(huì)在電路板因任何原因(例如首先應(yīng)用電源或重新上傳草圖后)重置時(shí)運(yùn)行。
void setup() {
// initialize the digital pin as an output.
pinMode(led, OUTPUT);
}
每個(gè)Arduino草圖都必須具有“設(shè)置”功能,其中可能需要添加自己指令的部分位于{和}之間。
在這種情況下,那里只有一個(gè)命令,正如注釋狀態(tài)告訴Arduino開發(fā)板,我們將使用LED引腳作為輸出。具有“循環(huán)”功能的草圖也是強(qiáng)制性的。 與只能運(yùn)行一次的“設(shè)置”功能不同,復(fù)位后,“循環(huán)”功能將在完成其命令后立即重新啟動(dòng)。
void loop() {
digitalWrite(led, HIGH); // turn the LED on (HIGH is the voltage level)
delay(1000); // wait for a second
digitalWrite(led, LOW); // turn the LED off by making the voltage LOW
delay(1000); // wait for a second
}
在循環(huán)功能中,命令首先將LED引腳開啟(HIGH),然后'延遲'1000毫秒(1秒),然后關(guān)閉LED引腳并暫停另一秒。
閃爍更快
你現(xiàn)在要讓你的LED閃爍得更快。正如你可能已經(jīng)猜到的那樣,關(guān)鍵在于改變'(延遲)'命令中的參數(shù)()。
這個(gè)延遲時(shí)間以毫秒為單位,所以如果您希望LED快速閃爍兩次,請(qǐng)將1000的值更改為500.然后,每個(gè)延遲停頓半秒,而不是整秒。
再次上傳草圖,您應(yīng)該看到LED開始更快地閃爍。