本篇文章將以完整學習路線的方式,帶你從 Arduino 基礎觀念開始,逐步了解 Arduino IDE 安裝、程式結構、基本函數、數位輸入輸出、按鍵與 LED 控制、4x4 Keypad、七段顯示器、RS232、SPI 通訊介面,以及計時器與中斷機制。
1. Arduino 是什麼?
Arduino 是一套開源電子開發平台,包含硬體開發板、開發軟體 Arduino IDE,以及大量可重複使用的函式庫。常見的 Arduino UNO、Mega、Nano 等開發板,都可以用來控制 LED、按鍵、馬達、感測器、顯示器與通訊模組。
- LED 燈號控制
- 溫濕度感測器讀取
- 馬達控制
- 自動澆水系統
- 環境監測系統
- 門禁與密碼鍵盤
- LCD 或七段顯示器顯示資料
- RS232、SPI、I2C 通訊實驗
- IoT 物聯網資料收集
2. 學 Arduino 前需要具備哪些基礎?
很多初學者一開始只想直接複製程式碼,但 Arduino 不只是寫程式,它同時包含電子電路與硬體控制。因此,在正式進入 Arduino 程式設計前,建議先理解電壓、電流、電阻、歐姆定律、正負極、GND、數位訊號、類比訊號、麵包板接線與 LED 限流觀念。
- 電壓 Voltage
- 電流 Current
- 電阻 Resistance
- 歐姆定律 V = I × R
- 正極、負極與接地 GND
- 數位訊號 HIGH / LOW
- 類比訊號 Analog
- 麵包板接線方式
- LED 極性
- 電阻限流觀念
3. Arduino 常見電子零件與電路符號
學習 Arduino 時,常見的電子零件包括電阻、LED、按鍵開關、電容、二極體、電晶體、蜂鳴器、可變電阻、感測器模組、七段顯示器、4x4 Keypad 與 LCD 顯示器。初學者應該學會辨識基本電路符號,因為後續看接線圖、電路圖或模組說明時,都會用到這些符號。
4. Arduino 麵包板與工具儀錶使用
麵包板是 Arduino 初學者最常使用的電路實驗工具。它可以讓你不用焊接,就能快速測試電路。常見工具包括麵包板、杜邦線、USB 傳輸線、三用電錶、電阻色碼表、Arduino UNO 開發板與電源供應器。使用麵包板時要特別注意電源正負極,不要把 5V 和 GND 短路。
5. Arduino IDE 安裝與開發環境設定
Arduino IDE 是撰寫、編譯與上傳 Arduino 程式的官方開發工具。初學者可以先使用 Arduino IDE 2.x 版本。安裝後需要選擇正確的開發板型號與 COM Port,接著可以使用 Blink 範例測試是否能成功上傳程式。
- 下載 Arduino IDE
- 安裝開發軟體
- 使用 USB 線連接 Arduino UNO
- 開啟 Arduino IDE
- 選擇開發板型號:Arduino Uno
- 選擇正確 COM Port
- 開啟 Blink 範例
- 編譯並上傳程式
6. 第一個 Arduino 程式:Blink LED
void setup() {
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
Blink 範例會讓 Arduino 開發板上的 LED 每秒閃爍一次。這個範例雖然簡單,但已經包含 setup()、loop()、pinMode()、digitalWrite() 與 delay() 等 Arduino 程式最重要的基本結構。
7. Arduino 程式語言語法與流程控制
Arduino 程式語言主要基於 C/C++,因此會使用變數、條件判斷、迴圈、函數與陣列。初學者不需要一開始就學完 C++,但至少要理解變數、if else 條件判斷、for 迴圈、while 迴圈與自訂函數。
8. Arduino 基本函數整理
Arduino 常用基本函數包括 pinMode()、digitalWrite()、digitalRead()、analogRead()、analogWrite()、delay()、millis()、Serial.begin()、Serial.print()、Serial.println() 與 attachInterrupt()。其中 pinMode()、digitalWrite()、digitalRead() 與 Serial.println() 是初學者最常使用的函數。
9. Arduino IDE 檔案結構說明
Arduino 的主要程式檔案副檔名是 .ino。一個 Arduino 專案通常會是一個資料夾,資料夾名稱會和 .ino 檔案名稱相同。當專案變大時,也可以拆成 .h 與 .cpp 檔案,將感測器、顯示器與通訊功能分開管理。
10. Arduino 按鍵與 LED 控制實驗
const int buttonPin = 2;
const int ledPin = 13;
void setup() {
pinMode(buttonPin, INPUT_PULLUP);
pinMode(ledPin, OUTPUT);
}
void loop() {
int buttonState = digitalRead(buttonPin);
if (buttonState == LOW) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
}
}
這個實驗可以讓初學者理解 Arduino 的輸入與輸出控制。按鍵接到 D2 與 GND,LED 使用 D13 腳位。當按下按鍵時,LED 亮起;放開按鍵時,LED 熄滅。
11. Arduino RS232 介面說明
RS232 是常見的序列通訊介面,常用於工業設備、感測器模組、PLC 或控制器資料交換。Arduino 本身 UART 是 TTL 電位,不是標準 RS232 電位,因此若要連接真正 RS232 設備,通常需要 MAX232 或 RS232 轉 TTL 模組。
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Hello Arduino RS232");
delay(1000);
}
12. Arduino SPI 介面說明
SPI 是一種高速同步序列通訊介面,常用於 SD 卡模組、顯示器、感測器與無線通訊模組。Arduino UNO 常見 SPI 腳位為 D10 SS、D11 MOSI、D12 MISO、D13 SCK。
13. Arduino 4x4 Keypad 與七段顯示器實驗
4x4 Keypad 可用來製作密碼輸入、選單控制或簡易操作介面。七段顯示器則常用於顯示數字,例如倒數計時、溫度數值或狀態碼。這類實驗可以幫助初學者理解輸入掃描、數字顯示與人機介面設計。
14. Arduino 計時器與中斷機制
Arduino 程式中常見的 delay() 雖然簡單,但它會讓程式暫停,導致其他任務無法即時處理。因此,當專案變複雜時,應該學習 millis()、計時器與中斷機制。
const int ledPin = 13;
unsigned long previousMillis = 0;
const long interval = 1000;
int ledState = LOW;
void setup() {
pinMode(ledPin, OUTPUT);
}
void loop() {
unsigned long currentMillis = millis();
if (currentMillis - previousMillis >= interval) {
previousMillis = currentMillis;
if (ledState == LOW) {
ledState = HIGH;
} else {
ledState = LOW;
}
digitalWrite(ledPin, ledState);
}
}
15. Arduino 安裝、設定與測試流程
- 安裝 Arduino IDE
- 安裝 USB 驅動程式
- 連接 Arduino 開發板
- 選擇正確開發板
- 選擇正確連接埠
- 開啟 Blink 範例
- 編譯程式
- 上傳程式
- 觀察 LED 是否閃爍
- 開啟序列監控視窗測試輸出
16. Arduino 供電、停止與重置觀念
Arduino 不像 Linux Server 一樣有 service start 或 service stop 指令。Arduino 程式一旦上傳到開發板,接上 USB 或外部電源後就會自動啟動。若要停止執行,可以拔除電源、按下 Reset 重新啟動,或上傳一個空白程式。
17. Arduino 常見故障排除
常見問題包括 Arduino IDE 找不到 COM Port、上傳程式失敗、LED 不會亮、按鍵狀態亂跳。排查時應先確認 USB 線、開發板型號、COM Port、驅動程式、GND 接線、LED 極性與程式腳位設定。
- 找不到 COM Port:更換 USB 資料線、檢查 Windows 裝置管理員、安裝 CH340 驅動。
- 上傳失敗:確認開發板型號、COM Port、序列監控視窗是否占用連線。
- LED 不會亮:檢查 LED 極性、限流電阻、GND、pinMode 與腳位編號。
- 按鍵狀態亂跳:使用 INPUT_PULLUP,或加入 debounce 去彈跳程式。
18. Arduino 初學者常見 Q&A
Q1:Arduino 適合完全沒有電子基礎的人學嗎?
適合。但建議不要只複製程式碼,應該同步學習電壓、電流、電阻、LED、按鍵與麵包板接線。
Q2:Arduino UNO、Nano、Mega 要先買哪一種?
初學者建議先買 Arduino UNO。UNO 教學資源最多,接線也比較清楚,適合入門學習。
Q3:Arduino 可以做 IoT 嗎?
可以,但 Arduino UNO 本身沒有網路功能,需要搭配 Ethernet Shield、Wi-Fi 模組,或改用 ESP8266、ESP32。
19. Arduino 進階學習方向
- Arduino + LCD 顯示器
- Arduino + SHT30 溫濕度感測器
- Arduino + W5500 Ethernet Shield
- Arduino + RS232 工業設備通訊
- Arduino + SPI SD 卡資料記錄
- Arduino + 中斷控制
- Arduino + Timer 非阻塞控制
- Arduino + IoT 資料上傳
- Arduino + PHP / MySQL 後端接收資料
- Arduino + Web Dashboard 顯示感測數據
結論
Arduino 是學習電子控制、感測器應用與 IoT 開發非常適合的入門平台。真正完整的 Arduino 學習,不應該只停留在 Blink 範例,而是要從電子零件、基礎電學、麵包板接線、Arduino IDE、程式語法、GPIO 控制、序列通訊、SPI、Keypad、七段顯示器、計時器與中斷逐步建立完整基礎。