關閉

Arduino 入門完整教學|電子零件、基礎電學、IDE 與介面實作

從電子零件與基礎電學開始,逐步學習 Arduino IDE、GPIO、感測器、麵包板接線與實作專案,適合沒有電子背景的初學者建立完整的 Arduino 基礎。

本篇文章將以完整學習路線的方式,帶你從 Arduino 基礎觀念開始,逐步了解 Arduino IDE 安裝、程式結構、基本函數、數位輸入輸出、按鍵與 LED 控制、4x4 Keypad、七段顯示器、RS232、SPI 通訊介面,以及計時器與中斷機制。

1. Arduino 是什麼?

Arduino 是一套開源電子開發平台,包含硬體開發板、開發軟體 Arduino IDE,以及大量可重複使用的函式庫。常見的 Arduino UNO、Mega、Nano 等開發板,都可以用來控制 LED、按鍵、馬達、感測器、顯示器與通訊模組。

2. 學 Arduino 前需要具備哪些基礎?

很多初學者一開始只想直接複製程式碼,但 Arduino 不只是寫程式,它同時包含電子電路與硬體控制。因此,在正式進入 Arduino 程式設計前,建議先理解電壓、電流、電阻、歐姆定律、正負極、GND、數位訊號、類比訊號、麵包板接線與 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 範例測試是否能成功上傳程式。

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 安裝、設定與測試流程

16. Arduino 供電、停止與重置觀念

Arduino 不像 Linux Server 一樣有 service start 或 service stop 指令。Arduino 程式一旦上傳到開發板,接上 USB 或外部電源後就會自動啟動。若要停止執行,可以拔除電源、按下 Reset 重新啟動,或上傳一個空白程式。

17. Arduino 常見故障排除

常見問題包括 Arduino IDE 找不到 COM Port、上傳程式失敗、LED 不會亮、按鍵狀態亂跳。排查時應先確認 USB 線、開發板型號、COM Port、驅動程式、GND 接線、LED 極性與程式腳位設定。

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 是學習電子控制、感測器應用與 IoT 開發非常適合的入門平台。真正完整的 Arduino 學習,不應該只停留在 Blink 範例,而是要從電子零件、基礎電學、麵包板接線、Arduino IDE、程式語法、GPIO 控制、序列通訊、SPI、Keypad、七段顯示器、計時器與中斷逐步建立完整基礎。