學習 Arduino IDE 與第一支程式
本章將帶你完成 Arduino IDE 的安裝與基本設定,認識程式編輯、編譯、上傳及序列埠除錯等常用功能。
你也會建立第一支 Arduino 程式,理解 setup() 與 loop() 的執行方式,並透過 Blink 範例確認開發板、USB 連線與通訊埠設定是否正確。
本章以 Arduino Uno 與 Arduino IDE 2.x 為主要示範環境;不同開發板的板型名稱、內建 LED 腳位及驅動需求可能不同。
本章學習目標
- 安裝 Arduino IDE。
- 認識 Arduino IDE 的操作介面。
- 建立第一個 Arduino 專案。
- 了解 setup() 與 loop() 的用途。
- 上傳第一支 Blink 程式。
- 使用 Serial Monitor 觀察程式輸出。
什麼是 Arduino IDE
Arduino IDE(Integrated Development Environment,整合開發環境)是 Arduino 官方提供的免費開發工具,也是初學者學習 Arduino 時最常使用的程式開發環境。
使用 Arduino IDE 可以編寫與編譯程式、將程式上傳至開發板、管理函式庫與開發板套件,並使用 Serial Monitor 或 Serial Plotter 觀察執行結果。
- 編寫 Arduino 程式。
- 編譯程式並檢查語法錯誤。
- 將程式上傳至 Arduino 開發板。
- 管理函式庫(Library)。
- 安裝與管理開發板套件(Board Package)。
- 使用 Serial Monitor 顯示文字與數值。
- 使用 Serial Plotter 將連續數值繪製成折線圖。
- 支援 Windows、Linux 與 macOS。
Arduino IDE 版本比較
| 版本 | 說明 |
|---|---|
| Arduino IDE 2.x | 建議初學者使用,介面現代化,提供程式自動完成、語法提示、多分頁編輯及較完整的開發功能。 |
| Arduino IDE 1.8.x | 舊版開發環境,仍可在部分舊教材、舊系統或既有專案中看到。 |
本教材建議使用 Arduino IDE 2.x。實際可安裝版本仍應依作業系統支援情況與 Arduino 官方目前提供的版本為準。
安裝 Arduino IDE
請從 Arduino 官方網站下載符合目前作業系統的 Arduino IDE 安裝程式,再依安裝精靈完成安裝。
安裝前應先確認作業系統版本與處理器架構。若電腦由公司或學校管理,也可能需要系統管理員權限才能完成安裝或安裝 USB 驅動程式。
- 進入 Arduino 官方網站的軟體下載頁面。
- 選擇適合 Windows、Linux 或 macOS 的安裝版本。
- 下載安裝程式或壓縮套件。
- 依畫面指示完成安裝。
- 啟動 Arduino IDE,確認主視窗可以正常開啟。
認識 Arduino IDE 操作介面
Arduino IDE 啟動後,主要會看到功能表、工具列、程式編輯區、訊息或輸出視窗,以及底部狀態列。
工具列中的 Verify 用來編譯並檢查程式,Upload 用來編譯後上傳至開發板;開發板與通訊埠選擇區則決定程式要傳送到哪一塊板子。
- 功能表(Menu):開啟檔案、範例、工具與設定。
- 驗證(Verify):編譯程式並檢查錯誤。
- 上傳(Upload):將程式編譯後寫入開發板。
- Board 選擇:指定目前使用的開發板型號。
- Port 選擇:指定 Arduino 連接的序列通訊埠。
- 程式編輯區(Editor):輸入與修改程式碼。
- Output 視窗:顯示編譯、上傳與錯誤訊息。
- Serial Monitor:顯示 Arduino 經由序列埠輸出的文字與數值。
第一次設定 Arduino IDE
Arduino IDE 安裝完成後,至少要選擇正確的開發板與通訊埠。這兩項設定錯誤時,即使程式本身沒有問題,也可能無法成功上傳。
Step 1:選擇開發板
- 開啟 Tools。
- 進入 Board。
- 選擇 Arduino AVR Boards。
- 選擇 Arduino Uno。
若使用 Arduino Nano、Mega、ESP32 或其他開發板,必須選擇相符的板型。部分非 AVR 開發板需要先透過 Boards Manager 安裝對應的開發板套件。
Step 2:選擇通訊埠
使用 USB 線將 Arduino Uno 連接到電腦,再於 Arduino IDE 中選擇新增出現的通訊埠。
最可靠的辨識方法是先查看未連接開發板時的通訊埠清單,再接上 Arduino,比較新增的項目。
| 作業系統 | 常見名稱 |
|---|---|
| Windows | COM3、COM4、COM5 等,實際編號依電腦而異。 |
| Linux | /dev/ttyUSB0、/dev/ttyACM0 等。 |
| macOS | /dev/cu.usbmodemXXXX 或其他由系統建立的序列裝置名稱。 |
找不到通訊埠時的檢查方式
- 確認 USB 線支援資料傳輸;部分充電線只有供電功能。
- 重新插拔 USB 線,並改用另一個 USB 連接埠測試。
- 確認 Arduino 開發板的電源指示燈是否亮起。
- 確認作業系統是否已辨識 USB 序列裝置。
- 相容版開發板可能使用不同的 USB 轉序列晶片,必要時需安裝對應驅動程式。
- 關閉可能占用序列埠的其他程式,再重新開啟 Arduino IDE。
- Linux 使用者若遇到權限問題,應依所用發行版檢查序列裝置群組權限。
Arduino 程式的基本架構
Arduino Sketch 最基本的結構由 setup() 與 loop() 兩個函式組成。開發板重設或上電後,會先執行一次 setup(),接著持續重複執行 loop()。
void setup()
{
}
void loop()
{
}
setup() 只執行一次
setup() 通常用來完成程式啟動時的初始化工作,例如設定腳位模式、啟動序列埠、初始化顯示器或感測器,以及建立通訊。
void setup()
{
Serial.begin(9600);
pinMode(13, OUTPUT);
}
loop() 持續循環執行
setup() 執行完成後,Arduino 會持續重複執行 loop() 中的內容,直到開發板斷電、重設或載入其他程式。
感測器讀值、按鍵判斷、LED 控制與通訊處理等需要持續更新的工作,通常會放在 loop() 內。
第一支程式:Blink
Blink 是 Arduino IDE 內建的基礎範例。它會讓開發板上的內建 LED 依固定時間亮起與熄滅,可用來確認程式編譯、USB 連線、開發板選擇及通訊埠設定是否正常。
- 開啟 File。
- 選擇 Examples。
- 進入 01.Basics。
- 開啟 Blink。
void setup()
{
pinMode(LED_BUILTIN, OUTPUT);
}
void loop()
{
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
Blink 程式逐行解析
LED_BUILTIN 代表內建 LED 腳位
在經典 Arduino Uno 上,板載 LED 通常連接到數位腳位 D13,因此 LED_BUILTIN 在此板型上對應該腳位。
使用 LED_BUILTIN 而不是直接寫入數字,可讓程式在不同開發板之間保有較好的可攜性,因為不同板型的內建 LED 腳位不一定相同。
pinMode() 設定腳位模式
pinMode(LED_BUILTIN, OUTPUT);
pinMode() 用來設定數位腳位的工作模式。OUTPUT 表示該腳位將由 Arduino 輸出高電位或低電位,以控制 LED 或其他外部電路。
digitalWrite() 控制高低電位
digitalWrite(LED_BUILTIN, HIGH);
digitalWrite(LED_BUILTIN, LOW);
digitalWrite() 用來控制已設為 OUTPUT 的數位腳位。HIGH 代表輸出邏輯高電位,LOW 代表輸出邏輯低電位。
在 Arduino Uno 的板載 LED 電路中,HIGH 會使 LED 亮起,LOW 會使 LED 熄滅。實際輸出電壓取決於開發板的邏輯電壓,不應假設所有 Arduino 相容板都固定為 5V。
delay() 暫停程式執行
delay(1000);
delay() 的參數單位是毫秒。delay(1000) 會暫停約 1000 毫秒,也就是約 1 秒。
在 Blink 範例中,LED 亮 1 秒後熄滅 1 秒,因此一個完整的亮滅循環約為 2 秒。
編譯並上傳 Blink 程式
- 確認 Arduino Uno 已透過可傳輸資料的 USB 線連接電腦。
- 確認 Arduino IDE 已選擇正確的 Board。
- 確認 Arduino IDE 已選擇正確的 Port。
- 按下 Verify,先編譯程式並檢查語法。
- 確認 Output 視窗未顯示編譯錯誤。
- 按下 Upload,將程式寫入 Arduino。
- 觀察 Output 視窗的上傳結果與開發板上的內建 LED。
上傳成功後,開發板通常會重新啟動並執行新程式。預期結果是內建 LED 約每秒切換一次亮滅狀態。
若 LED 沒有閃爍,應先確認所用開發板是否具有內建 LED,以及該板型的 LED_BUILTIN 定義是否適用。
使用 Serial Monitor 觀察程式輸出
Serial Monitor 是 Arduino 開發中最常用的除錯工具之一。程式可以透過 Serial.print() 或 Serial.println() 將文字與數值傳送到電腦,協助觀察感測器資料、程式流程及變數狀態。
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.println("Hello Arduino");
delay(1000);
}
- 將程式上傳至 Arduino。
- 開啟 Tools。
- 選擇 Serial Monitor。
- 將 Serial Monitor 的鮑率設定為 9600。
- 觀察視窗是否約每秒顯示一次 Hello Arduino。
Serial.begin(9600) 與 Serial Monitor 的鮑率必須一致,否則可能看到亂碼或無法正確閱讀輸出。
Serial Monitor 可用來觀察溫度、光敏電阻、超音波距離、按鍵狀態與通訊資料,是後續感測器實作的重要工具。
使用 Serial Plotter 顯示數值變化
Serial Plotter 可以將 Arduino 經由序列埠輸出的連續數值繪製成圖形,適合觀察溫度、光照強度與距離等資料隨時間的變化。
要讓圖形容易判讀,程式應以穩定格式輸出數值,並避免在同一資料列混入不必要的說明文字。
常見上傳問題與故障排除
編譯時出現語法錯誤
先查看 Output 視窗指出的錯誤行號與訊息,檢查分號、括號、函式名稱及大小寫。Arduino 程式語言區分英文大小寫,例如 setup() 與 Setup() 並不相同。
上傳時找不到開發板
確認 Board 與 Port 是否正確、USB 線是否可傳輸資料,以及作業系統是否已辨識 USB 序列裝置。相容版開發板也可能需要額外的 USB 轉序列驅動程式。
通訊埠被其他程式占用
若上傳時顯示無法開啟通訊埠,請先關閉其他 Serial Monitor、終端機或可能使用同一通訊埠的程式,再重新執行上傳。
Serial Monitor 顯示亂碼
檢查 Serial.begin() 設定的鮑率是否與 Serial Monitor 右下角或工具列中的鮑率一致。例如程式使用 Serial.begin(9600),Serial Monitor 也應選擇 9600 baud。
本章實作練習
- 安裝並啟動 Arduino IDE 2.x。
- 連接 Arduino Uno,選擇正確的 Board 與 Port。
- 開啟 Blink 範例並完成編譯與上傳。
- 將兩個 delay(1000) 改成 delay(500),比較 LED 閃爍速度。
- 再將 LED 亮燈延遲設為 200 毫秒、熄燈延遲設為 800 毫秒,觀察不對稱閃爍效果。
- 建立使用 Serial.println("Hello Arduino"); 的程式,並在 Serial Monitor 查看輸出。
- 故意將 Serial Monitor 設成不同鮑率,觀察結果後再改回正確設定。
本章重點整理
- Arduino IDE 可用來編寫、編譯與上傳 Arduino 程式。
- 上傳前必須確認 Board 與 Port 設定正確。
- setup() 在開機或重設後執行一次,loop() 則持續循環。
- Blink 可用來驗證基本開發環境與開發板連線。
- pinMode() 設定腳位模式,digitalWrite() 控制數位輸出,delay() 以毫秒為單位暫停程式。
- Serial Monitor 適合檢查文字與數值,Serial Plotter 適合觀察連續資料的變化。
下一章學習方向
完成開發環境與第一支程式後,下一步可學習 Arduino 程式語法與變數,包括基本 C/C++ 語法、常用資料型別、常數、運算子與條件判斷。
先建立程式設計基礎,再進入 GPIO、Digital I/O、Analog Input、PWM、UART、I²C 與 SPI,能讓後續硬體控制與感測器實作更容易理解。