關閉

第5章 Arduino IDE 安裝與第一支程式:Blink、setup、loop 完整教學

本章介紹 Arduino IDE 2.x 的安裝、操作介面與基本設定,帶領初學者選擇正確的 Arduino Uno 開發板及通訊埠,理解 setup() 與 loop() 的執行方式,並透過 Blink 範例完成第一支 Arduino 程式的編譯與上傳。同時介紹 Serial Monitor、Serial Plotter,以及通訊埠、USB 線、鮑率與程式語法等常見問題的排除方法。

學習 Arduino IDE 與第一支程式

本章將帶你完成 Arduino IDE 的安裝與基本設定,認識程式編輯、編譯、上傳及序列埠除錯等常用功能。

你也會建立第一支 Arduino 程式,理解 setup() 與 loop() 的執行方式,並透過 Blink 範例確認開發板、USB 連線與通訊埠設定是否正確。

本章以 Arduino Uno 與 Arduino IDE 2.x 為主要示範環境;不同開發板的板型名稱、內建 LED 腳位及驅動需求可能不同。

本章學習目標

什麼是 Arduino IDE

Arduino IDE(Integrated Development Environment,整合開發環境)是 Arduino 官方提供的免費開發工具,也是初學者學習 Arduino 時最常使用的程式開發環境。

使用 Arduino IDE 可以編寫與編譯程式、將程式上傳至開發板、管理函式庫與開發板套件,並使用 Serial Monitor 或 Serial Plotter 觀察執行結果。

Arduino IDE 版本比較

本教材建議使用 Arduino IDE 2.x。實際可安裝版本仍應依作業系統支援情況與 Arduino 官方目前提供的版本為準。

安裝 Arduino IDE

請從 Arduino 官方網站下載符合目前作業系統的 Arduino IDE 安裝程式,再依安裝精靈完成安裝。

安裝前應先確認作業系統版本與處理器架構。若電腦由公司或學校管理,也可能需要系統管理員權限才能完成安裝或安裝 USB 驅動程式。

認識 Arduino IDE 操作介面

Arduino IDE 啟動後,主要會看到功能表、工具列、程式編輯區、訊息或輸出視窗,以及底部狀態列。

工具列中的 Verify 用來編譯並檢查程式,Upload 用來編譯後上傳至開發板;開發板與通訊埠選擇區則決定程式要傳送到哪一塊板子。

第一次設定 Arduino IDE

Arduino IDE 安裝完成後,至少要選擇正確的開發板與通訊埠。這兩項設定錯誤時,即使程式本身沒有問題,也可能無法成功上傳。

Step 1:選擇開發板

若使用 Arduino Nano、Mega、ESP32 或其他開發板,必須選擇相符的板型。部分非 AVR 開發板需要先透過 Boards Manager 安裝對應的開發板套件。

Step 2:選擇通訊埠

使用 USB 線將 Arduino Uno 連接到電腦,再於 Arduino IDE 中選擇新增出現的通訊埠。

最可靠的辨識方法是先查看未連接開發板時的通訊埠清單,再接上 Arduino,比較新增的項目。

找不到通訊埠時的檢查方式

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 連線、開發板選擇及通訊埠設定是否正常。

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 程式

上傳成功後,開發板通常會重新啟動並執行新程式。預期結果是內建 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);
}

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 程式語法與變數,包括基本 C/C++ 語法、常用資料型別、常數、運算子與條件判斷。

先建立程式設計基礎,再進入 GPIO、Digital I/O、Analog Input、PWM、UART、I²C 與 SPI,能讓後續硬體控制與感測器實作更容易理解。