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