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 的用途與特色
- 了解 UNO R3 的主要硬體規格
- 說明數位腳位、類比腳位、PWM、UART、I2C、SPI 的作用
- 介紹 Arduino UNO R3 的供電方式
- 安裝 Arduino IDE 開發環境
- 設定開發板與序列埠
- 完成第一個 LED Blink 測試程式
- 使用 Serial Monitor 測試序列輸出
- 整理 Arduino UNO R3 常見應用
- 提供故障排除與 Q&A
- 補充進階學習方向與專案建議
Arduino UNO R3 適合誰學習?
- 第一次接觸 Arduino 的初學者
- 想學習感測器與電子電路控制的人
- 想做溫度、濕度、光照、距離偵測專案的人
- 想學習 IoT 原型開發的人
- 想入門微控制器與嵌入式系統的人
- 想做 LED、馬達、蜂鳴器、LCD 顯示控制的人
- 學校課程、創客教育、專題製作或自學使用者
Arduino UNO R3 主要規格
Arduino UNO R3 使用 ATmega328P 作為主控晶片,工作電壓為 5V,常見輸入電壓建議為 7V 到 12V。它提供 14 個數位 I/O 腳位,其中 6 個可作為 PWM 輸出,並提供 6 個類比輸入腳位。
這些規格讓 UNO R3 很適合用來控制 LED、讀取感測器、輸出 PWM 控制馬達速度,或透過序列通訊與其他模組交換資料。
- 主控晶片:ATmega328P
- 工作電壓:5V
- 建議輸入電壓:7V 到 12V
- 數位 I/O 腳位:14 個
- PWM 腳位:6 個,通常為 3、5、6、9、10、11
- 類比輸入腳位:6 個,A0 到 A5
- Flash 記憶體:32KB
- SRAM:2KB
- EEPROM:1KB
- 時脈頻率:16MHz
- 通訊介面:UART、I2C、SPI
- USB 連接:可用於供電、燒錄程式與序列通訊
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 顯示器等模組。
- UART:D0 RX、D1 TX
- I2C:A4 SDA、A5 SCL
- SPI:D10 SS、D11 MOSI、D12 MISO、D13 SCK
Arduino UNO R3 供電方式
Arduino UNO R3 可以透過 USB、DC Jack 或 Vin 腳位供電。初學測試時最簡單的方式是使用 USB 連接電腦,這樣可以同時供電與燒錄程式。
若是接感測器、繼電器、馬達或外部模組,要特別注意電流需求。馬達與繼電器通常不建議直接由 Arduino 腳位供電,應使用外部電源與驅動模組。
- USB 供電:適合初學測試與程式燒錄
- DC Jack:可接外部電源,常見建議 7V 到 12V
- Vin 腳位:可輸入外部電源,但需注意電壓範圍
- 5V 腳位:提供 5V 電源,但不可超過板子可承受電流
- 3.3V 腳位:提供 3.3V 電源,適合部分低電壓模組
安裝前準備
開始實作之前,請準備 Arduino UNO R3、USB 傳輸線、電腦與 Arduino IDE。若要做基本 LED Blink 測試,只需要 UNO R3 本身即可,因為板子上通常已經有內建 LED 連接到 D13 腳位。
- Arduino UNO R3 開發板
- USB Type-B 傳輸線
- Windows、macOS 或 Linux 電腦
- Arduino IDE
- LED、電阻、麵包板與杜邦線,若要做外接 LED 測試才需要
- 常用感測器模組,例如 DHT11、SHT30、LDR、HC-SR04,可作為延伸練習
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 原型都可以實作。
- LED 閃爍與燈光控制
- 按鈕輸入與開關控制
- 溫度與濕度感測
- 光照感測與自動照明
- 超音波距離測量
- 伺服馬達角度控制
- 直流馬達速度控制
- LCD 或 OLED 顯示資料
- 蜂鳴器警報系統
- SD Card 資料記錄
- Ethernet Shield 或 Wi-Fi 模組網路連線
- IoT 感測資料上傳
Arduino UNO R3 與感測器專案範例
如果你已經完成 Blink、Serial Monitor 與 analogRead 測試,下一步可以開始接感測器。以下是常見的 Arduino UNO R3 入門專案方向。
- 使用 DHT11 或 DHT22 讀取溫度與濕度
- 使用 SHT30 透過 I2C 讀取高精度溫度濕度
- 使用 HC-SR04 超音波模組測量距離
- 使用 LDR 光敏電阻做自動夜燈
- 使用 DS18B20 做防水溫度量測
- 使用 16x2 LCD 顯示感測器數值
- 使用 W5500 Ethernet Shield 上傳資料到伺服器
- 使用繼電器模組控制風扇或燈具
Arduino UNO R3 開發時的注意事項
- 不要讓 I/O 腳位直接承受過大電流
- 馬達、繼電器與大功率負載應使用外部電源與驅動電路
- 外部電源與 Arduino 通常需要共地
- 接線前先確認模組工作電壓是 5V 還是 3.3V
- 使用感測器前先確認腳位順序,避免 VCC 與 GND 接反
- 不確定接法時,先查模組規格或使用萬用電表確認
- 上傳程式失敗時,先檢查 Board、Port、USB 線與驅動程式
常見故障排除
問題 1:Arduino IDE 找不到 UNO R3 的 Port
如果 Arduino IDE 看不到序列埠,通常是 USB 線、驅動程式或系統權限問題。請先確認 USB 線可以傳輸資料,而不是只能充電的線。
- 更換 USB 傳輸線
- 更換 USB Port
- Windows 檢查裝置管理員是否有 COM Port
- 相容板可能需要安裝 CH340 驅動
- Linux 使用者需確認是否有序列埠權限
問題 2:上傳程式時出現 avrdude 錯誤
avrdude 錯誤通常代表電腦無法和 Arduino bootloader 正常通訊。常見原因是 Board 選錯、Port 選錯、USB 線不良、驅動未安裝或 D0/D1 腳位被外部模組占用。
- 確認 Board 選擇 Arduino Uno
- 確認 Port 選擇正確
- 拔掉接在 D0、D1 的外部模組後再上傳
- 重新插拔 USB
- 更換 USB 線
- 按下 Reset 後再嘗試上傳
問題 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。
- 確認感測器腳位順序
- 確認供電電壓
- 確認 GND 是否共地
- 確認使用正確函式庫
- 確認程式腳位與實際接線一致
- 使用 Serial Monitor 印出原始數值協助除錯
Arduino UNO R3 入門學習路線
初學 Arduino 不建議一開始就做太複雜的專案。比較好的方式是先學會輸出、輸入、類比讀取、PWM、序列通訊,接著再學感測器、LCD、馬達與網路模組。
- LED Blink 與 digitalWrite
- 按鈕輸入與 digitalRead
- 類比輸入與 analogRead
- PWM 輸出與 analogWrite
- Serial Monitor 除錯
- 溫度、濕度、光照等感測器
- LCD 或 OLED 顯示
- 馬達與繼電器控制
- SD Card 資料記錄
- Ethernet 或 Wi-Fi 網路通訊
- IoT 資料上傳與伺服器整合
進階應用: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 LED Blink 入門實作
- Arduino 溫度感測器 SHT30 實作教學
- Arduino 16x2 LCD 顯示器教學
- Arduino W5500 Ethernet Shield 網路資料上傳教學
- Arduino 與 MySQL IoT 資料記錄系統
- ESP32 入門教學:Wi-Fi 與 IoT 應用
總結
Arduino UNO R3 是非常適合初學者的微控制器開發板,具備數位 I/O、類比輸入、PWM、UART、I2C、SPI 等常用功能,可以用來學習 LED 控制、感測器讀取、馬達控制、LCD 顯示與 IoT 原型開發。
學習 Arduino UNO R3 時,建議先從 Arduino IDE 安裝、Board 與 Port 設定、Blink 測試、Serial Monitor、analogRead 與 PWM 控制開始,再逐步進入感測器、顯示器、資料記錄與網路通訊。