在之前的一篇指南中,我們介紹了Arduino Uno以及基於該平台的可程式設計開發板和擴展板系列。但是如果沒有軟體,硬體將沒有任何作用。本指南將向您展示如何設置Arduino IDE、連接您的開發板以及上傳您的第一個草圖。
首先,我們定義一些您將在本指南中以及在未來專案中看到的術語:
● 整合式開發環境(IDE):該術語指用於開發程式的軟體,其中包括代碼編輯器以及調試工具、軟體範本和其他編輯代碼所需要的工具。Arduino IDE簡稱為Arduino或Arduino軟體。
● 草圖:在Arduino開發板上運行的程式被稱為“草圖”。這些程式很簡單,可以在開發板上持續運行,即使在您將其與電腦斷開連接後也會繼續運行。
● Arduino語言:Arduino程式設計語言是一組C/C++函數,如果您習慣於使用C/C++進行編碼,那麼您會發現使用該程式設計語言非常自如。您可以點擊此處查看Arduino特定功能的相關資訊。
首先,請在此處下載適用於您的作業系統的Arduino IDE。在本指南中,我們使用的是Windows系統。下載後運行安裝程式,並按照嚮導安裝必要的元件。在設置過程中,您還會被要求安裝USB驅動程式,這將使您的電腦與Uno(或其他任何開發板)之間能夠進行通信。
安裝完成後,啟動Arduino IDE。您會看到像下面那樣的螢幕。
您可以在此處編寫代碼,然後將其上傳到您的Arduino。空白草圖包括兩個函數,它們是每個Arduino草圖的核心部分:setup() 和 loop()。當Arduino打開時,setup()函數中的代碼將被運行一次。只要設備被啟動,loop()中的所有內容都會被重複執行。
在上傳草圖之前,您需要確保IDE可以和您的開發板之間進行正確通信。在Tools > Board下,確認選擇了您的Arduino特定型號。在本指南中,我們使用的是“Arduino Uno”。接下來,在Tools > Port下,選擇連接到開發板的COM埠。如果您的驅動程式安裝正確,它旁邊將顯示您的開發板名稱。如果沒有,請按照這些說明手動安裝開發板的驅動程式。
如果您更願意在web端進行編碼(在使用多台電腦來開發Arduino專案時會用到),您可以設置 Arduino Web Editor並安裝Arduino Create Plugin,以實現在Google Chrome或者Mozilla Firefox上編寫及上傳草圖。
為了瞭解草圖的工作原理,我們將運行一個名為Blink的基本草圖。您不需要為該草圖進行任何特別的接線,運行該草圖是檢測您的Arduino是否工作正常的便捷方法。
Blink草圖內置於Arduino IDE。要打開它,請進入File > Examples > 01.Basics > Blink。這將在新視窗中打開簡版草圖。上傳後,該草圖將使開發板上的橙色LED進行週期性閃爍。
要上傳草圖,請將Arduino插入您的電腦中,然後點擊“Sketch > Upload”或按下“Ctrl-U”鍵。草圖上傳完成後,Uno上標有“L”的橙色LED將開始以每秒一次的頻率進行閃爍。
恭喜您!您已經成功上傳了第一個草圖。
既然您已經知道Blink草圖是用來幹什麼的了,我們可以回過頭來看看它是如何工作的,還可以對其進行一些調整。首先,讓我們看一下代碼中的setup()部分:
void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT);
}
這部分代碼僅運行一次,用來初始化Arduino板上的LED。pinMode() 函數使您能夠將引腳分配為輸入或輸出。Arduino Uno有14個可用作輸入或輸出的數位引腳。但是,該草圖使用的是內置LED,所以引腳已經指定好了。因此,這行代碼將LED指定為輸出。
接下來,我們來看一下loop()函數中的內容。
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啟動,該代碼就會被運行。這部分有四行代碼。第一行使用了digitalWrite() 函數,將引腳(在本例中為內置LED)分配為高電平或低電平。對於該代碼,您可以將其視為開啟或關閉。當引腳設置為高電平時,Arduino Uno將引入5V電流通過LED,使其點亮。當引腳設置為低電平時,Uno將把電壓降至0V,LED關閉。
因此,迴圈代碼中的第一行用於打開LED。下一個函數是delay()。這個函數的作用和它的名稱含義一樣。它會使草圖停滯等待一段時間,不執行任何操作。delay()函數以毫秒為單位。因為該草圖告訴Uno延遲1000毫秒,所以LED將會保持亮起1秒。
第三行和第四行會以相反的順序重複執行以上操作。第三行將LED引腳設置為低電平,將其關閉,第四行使程式等待1秒。通過迴圈該過程,LED將閃爍1秒,關閉1秒,然後循環往復,從而在通電的情況下一直閃爍。
現在您已經瞭解了該草圖的工作原理了,可以嘗試對腳本進行修改來獲得不同的效果。您可以將delay()間隔設置為100毫秒來實現燈光快速閃爍的效果。您還可以刪除掉關閉LED的代碼,讓燈光始終保持亮起的狀態。
在編寫草圖時,內置LED是一個特別有用的工具。因為如果您的程式失敗,Arduino並不能總是提供足夠的回饋。您可以使用LED來診斷草圖是否可以正常工作,例如在草圖成功運行的時候LED可以被點亮,或者草圖運行失敗的時候LED會發生閃爍。雖然僅僅有LED閃爍這樣的資訊可能看起來並不夠,但是在更大的項目中這將會非常有用。