關閉

Arduino 入門教學:UNO R3 規格、功能與應用完整介紹

Arduino UNO R3 是什麼? Arduino UNO R3 是最常見的 Arduino 入門開發板之一,適合用來學習微控制器、電子電路、感測器控制、馬達控制、LED 顯示、資料讀取與 IoT 原型開發。 UNO R3 的核心是 ATmega328P 微控制器,具備數位輸入輸出腳位、類比輸入腳位、PWM 輸出、UART、I2C、SPI 等常用介面。

Arduino UNO R3 是什麼?

Arduino UNO R3 是最常見的 Arduino 入門開發板之一,適合用來學習微控制器、電子電路、感測器控制、馬達控制、LED 顯示、資料讀取與 IoT 原型開發。

Arduino UNO R3 的核心是 ATmega328P 微控制器,具備數位輸入輸出腳位、類比輸入腳位、PWM 輸出、UART、I2C、SPI 等常用介面。對初學者來說,它最大的優點是容易上手、範例多、社群資源豐富,而且可以直接透過 USB 連接電腦燒錄程式。

本文會完成哪些內容?

Arduino UNO R3 適合誰學習?

Arduino UNO R3 主要規格

Arduino UNO R3 使用 ATmega328P 作為主控晶片,工作電壓為 5V,常見輸入電壓建議為 7V 到 12V。它提供 14 個數位 I/O 腳位,其中 6 個可作為 PWM 輸出,並提供 6 個類比輸入腳位。

這些規格讓 UNO R3 很適合用來控制 LED、讀取感測器、輸出 PWM 控制馬達速度,或透過序列通訊與其他模組交換資料。

Arduino UNO R3 腳位功能說明

Arduino UNO R3 的腳位可以分成數位 I/O、類比輸入、電源腳位與通訊腳位。初學時不需要一次記住全部腳位,但要先理解每種腳位的用途。

數位 I/O 腳位

數位腳位可以輸出 HIGH 或 LOW,也可以讀取外部訊號。HIGH 通常代表 5V,LOW 通常代表 0V。常見應用包括控制 LED、讀取按鈕、控制繼電器或偵測簡單開關狀態。

pinMode(13, OUTPUT);
digitalWrite(13, HIGH);
digitalWrite(13, LOW);

類比輸入腳位

A0 到 A5 是類比輸入腳位,可以讀取 0V 到 5V 之間的電壓,並轉換成 0 到 1023 的數值。常見用途包含讀取可變電阻、光敏電阻、溫度感測器、土壤濕度感測器等。

int value = analogRead(A0);
Serial.println(value);

PWM 輸出腳位

PWM 可以用來模擬類比輸出,常用於 LED 亮度調整、馬達速度控制與蜂鳴器控制。Arduino UNO R3 上帶有 ~ 符號的腳位通常支援 PWM。

analogWrite(9, 128);

UART、I2C 與 SPI 通訊介面

UART 常用於序列通訊,例如與電腦 Serial Monitor、藍牙模組或部分感測器溝通。I2C 常用於 LCD、OLED、RTC、SHT30 等模組。SPI 則常用於 SD Card、RFID、Ethernet Shield、TFT 顯示器等模組。

Arduino UNO R3 供電方式

Arduino UNO R3 可以透過 USB、DC Jack 或 Vin 腳位供電。初學測試時最簡單的方式是使用 USB 連接電腦,這樣可以同時供電與燒錄程式。

若是接感測器、繼電器、馬達或外部模組,要特別注意電流需求。馬達與繼電器通常不建議直接由 Arduino 腳位供電,應使用外部電源與驅動模組。

安裝前準備

開始實作之前,請準備 Arduino UNO R3、USB 傳輸線、電腦與 Arduino IDE。若要做基本 LED Blink 測試,只需要 UNO R3 本身即可,因為板子上通常已經有內建 LED 連接到 D13 腳位。

Step 1:安裝 Arduino IDE

Arduino IDE 是撰寫、編譯與上傳 Arduino 程式的官方開發工具。初學者建議先使用 Arduino IDE,因為它內建許多範例,對學習 UNO R3 很方便。

安裝完成後,將 Arduino UNO R3 透過 USB 線連接到電腦。若是 Windows 環境,部分相容板可能需要額外安裝 CH340 或其他 USB-to-Serial 驅動程式。

Step 2:選擇 Arduino UNO 開發板

開啟 Arduino IDE 後,需要先選擇正確的開發板類型。若使用 Arduino UNO R3,請選擇 Arduino Uno。

Tools → Board → Arduino AVR Boards → Arduino Uno

如果板子選錯,可能會出現編譯錯誤、上傳失敗或程式無法正常執行。

Step 3:選擇正確的序列埠

Arduino UNO R3 透過 USB 連接電腦後,系統會產生一個序列埠。你需要在 Arduino IDE 中選擇正確的 Port。

Tools → Port → 選擇 Arduino UNO 對應的 COM Port 或 tty 裝置

在 Windows 中通常會看到 COM3、COM4、COM5 之類的名稱。在 Linux 或 macOS 中,常見名稱可能是 /dev/ttyACM0、/dev/ttyUSB0 或 /dev/cu.usbmodem。

Step 4:第一個 Arduino 程式:Blink LED

Blink 是 Arduino 最經典的入門範例,它會讓 UNO R3 板子上的內建 LED 每秒閃爍一次。這個範例可以用來確認 Arduino IDE、USB 連線、板子設定與上傳流程是否正常。

void setup() {
  pinMode(13, OUTPUT);
}

void loop() {
  digitalWrite(13, HIGH);
  delay(1000);
  digitalWrite(13, LOW);
  delay(1000);
}

按下 Upload 後,如果上傳成功,UNO R3 板子上的 L LED 應該會每秒閃爍一次。這代表 Arduino IDE 與 UNO R3 已經可以正常運作。

Step 5:使用 Serial Monitor 測試序列輸出

Serial Monitor 是 Arduino 入門時非常重要的除錯工具。你可以透過它查看感測器數值、變數狀態或程式執行流程。

void setup() {
  Serial.begin(9600);
}

void loop() {
  Serial.println("Hello Arduino UNO R3");
  delay(1000);
}

上傳後打開 Serial Monitor,並確認鮑率設定為 9600。如果畫面每秒顯示 Hello Arduino UNO R3,代表序列通訊正常。

Step 6:讀取類比輸入數值

接下來可以使用 A0 腳位讀取類比數值。這個範例可用於可變電阻、光敏電阻、溫度感測器或其他類比輸出模組。

void setup() {
  Serial.begin(9600);
}

void loop() {
  int value = analogRead(A0);
  Serial.println(value);
  delay(500);
}

analogRead() 會回傳 0 到 1023 的數值,代表輸入電壓從 0V 到 5V 的轉換結果。這是學習感測器讀取非常重要的基礎。

Step 7:PWM 控制 LED 亮度

PWM 可以讓 LED 亮度逐漸變化,也可以用於馬達速度控制。以下範例會讓接在 D9 的 LED 逐漸變亮再變暗。

int ledPin = 9;

void setup() {
  pinMode(ledPin, OUTPUT);
}

void loop() {
  for (int brightness = 0; brightness <= 255; brightness++) {
    analogWrite(ledPin, brightness);
    delay(10);
  }

  for (int brightness = 255; brightness >= 0; brightness--) {
    analogWrite(ledPin, brightness);
    delay(10);
  }
}

Arduino UNO R3 常見應用

Arduino UNO R3 的用途非常廣,從最簡單的 LED 控制,到感測器資料讀取、馬達控制、LCD 顯示、資料記錄、無線通訊與 IoT 原型都可以實作。

Arduino UNO R3 與感測器專案範例

如果你已經完成 Blink、Serial Monitor 與 analogRead 測試,下一步可以開始接感測器。以下是常見的 Arduino UNO R3 入門專案方向。

Arduino UNO R3 開發時的注意事項

常見故障排除

問題 1:Arduino IDE 找不到 UNO R3 的 Port

如果 Arduino IDE 看不到序列埠,通常是 USB 線、驅動程式或系統權限問題。請先確認 USB 線可以傳輸資料,而不是只能充電的線。

問題 2:上傳程式時出現 avrdude 錯誤

avrdude 錯誤通常代表電腦無法和 Arduino bootloader 正常通訊。常見原因是 Board 選錯、Port 選錯、USB 線不良、驅動未安裝或 D0/D1 腳位被外部模組占用。

問題 3:LED Blink 沒有閃爍

如果使用板子內建 LED,請確認程式使用的是 13 腳。如果使用外接 LED,請確認 LED 極性、電阻與接線方式。LED 長腳通常為正極,短腳通常為負極。

pinMode(13, OUTPUT);
digitalWrite(13, HIGH);

問題 4:Serial Monitor 顯示亂碼

Serial Monitor 顯示亂碼通常是鮑率設定不同。程式中 Serial.begin() 設定多少,Serial Monitor 也要選相同速度。

Serial.begin(9600);

如果程式使用 9600,Serial Monitor 也要選 9600 baud。

問題 5:接上感測器後數值不正確

感測器數值不正確通常與接線、電壓、函式庫或腳位設定有關。請先確認 VCC、GND、Signal 腳位是否正確,並確認感測器需要 5V 還是 3.3V。

Arduino UNO R3 入門學習路線

初學 Arduino 不建議一開始就做太複雜的專案。比較好的方式是先學會輸出、輸入、類比讀取、PWM、序列通訊,接著再學感測器、LCD、馬達與網路模組。

進階應用:Arduino UNO R3 與 IoT

Arduino UNO R3 本身沒有內建 Wi-Fi,但可以透過 W5500 Ethernet Shield、ESP8266 模組、ESP-01 或其他通訊模組連接網路。這樣就能把感測器資料傳送到網站、資料庫或 API Server。

例如你可以使用 UNO R3 搭配 SHT30 溫溼度感測器與 W5500 Ethernet Shield,每隔一段時間將資料送到 PHP API,再存入 MySQL 或 MariaDB,建立自己的 IoT 感測記錄系統。

Arduino UNO R3
   ↓
感測器:SHT30 / DHT22 / DS18B20
   ↓
通訊模組:W5500 Ethernet Shield / Wi-Fi 模組
   ↓
Web API:PHP / Node.js / Python
   ↓
Database:MySQL / MariaDB
   ↓
Dashboard:Web 圖表與告警系統

Q&A 常見問題

Q1:Arduino UNO R3 適合初學者嗎?

適合。UNO R3 是 Arduino 最常見的入門板之一,範例多、資料多、接線簡單,很適合第一次學習微控制器、電子電路與感測器控制的人。

Q2:Arduino UNO R3 可以做 IoT 嗎?

可以,但 UNO R3 本身沒有內建網路功能,需要搭配 Ethernet Shield、Wi-Fi 模組或其他通訊模組,才能將資料傳送到網路伺服器或雲端平台。

Q3:Arduino UNO R3 可以直接控制馬達嗎?

不建議直接用 Arduino 腳位驅動馬達,因為馬達需要的電流通常超過 I/O 腳位可承受範圍。應使用馬達驅動模組,例如 L298N、TB6612FNG 或 MOSFET 驅動電路。

Q4:Arduino UNO R3 和 ESP32 有什麼不同?

UNO R3 適合入門學習基本電子控制,ESP32 則具備 Wi-Fi、Bluetooth、較高效能與更多功能。如果你是初學者,可以先從 UNO R3 學基礎,再進階到 ESP32 做 IoT 專案。

Q5:Arduino UNO R3 可以接幾個感測器?

可接數量取決於腳位、通訊介面、供電與程式記憶體。I2C 感測器可以共用 SDA、SCL,但每個裝置需要不同位址。類比感測器則通常會占用 A0 到 A5 腳位。

Q6:Arduino 程式上傳成功,但功能不正常怎麼辦?

請先用 Serial Monitor 印出關鍵變數,確認程式是否有進入 loop、感測器是否有讀到數值、腳位是否正確。很多 Arduino 問題不是程式錯,而是接線、電源或模組腳位定義錯誤。

延伸閱讀與內鏈建議

總結

Arduino UNO R3 是非常適合初學者的微控制器開發板,具備數位 I/O、類比輸入、PWM、UART、I2C、SPI 等常用功能,可以用來學習 LED 控制、感測器讀取、馬達控制、LCD 顯示與 IoT 原型開發。

學習 Arduino UNO R3 時,建議先從 Arduino IDE 安裝、Board 與 Port 設定、Blink 測試、Serial Monitor、analogRead 與 PWM 控制開始,再逐步進入感測器、顯示器、資料記錄與網路通訊。