Arduino Leonardo vs Arduino Uno:差異、優缺點與選擇指南
Arduino Uno 是許多人學習 Arduino 的第一塊板子, 而 Arduino Leonardo 則是另一款功能相似但更靈活的控制板。 兩者都屬於 Arduino 官方 8-bit 系列,但在「USB通訊」與「微控制器架構」上有本質不同。
一、基本規格比較表
| 項目 | Arduino Uno | Arduino Leonardo |
|---|---|---|
| 微控制器 | ATmega328P | ATmega32u4 |
| 工作電壓 | 5 V | 5 V |
| I/O 腳位 | 14 個數位腳(6 個 PWM)6 個類比輸入 | 20 個數位腳(7 個 PWM)12 個類比輸入 |
| Flash 記憶體 | 32 KB(含 bootloader) | 32 KB(含 bootloader) |
| SRAM | 2 KB | 2.5 KB |
| EEPROM | 1 KB | 1 KB |
| USB 介面晶片 | 需額外 ATmega16U2 做 USB-Serial 轉換 | 內建 USB 控制器(ATmega32u4) |
| 通訊介面 | UART、I²C、SPI | UART、I²C、SPI |
| 可模擬 USB 裝置 | ❌ 不行 | ✅ 可以(鍵盤、滑鼠、Joystick) |
| 電腦連線端口 | USB Type-B | Micro USB |
| 時脈頻率 | 16 MHz | 16 MHz |
二、核心差異解說
USB 架構不同
- Uno → ATmega328P 沒有 USB 功能,需要 另一顆 ATmega16U2 負責 USB-Serial 轉換。 所以電腦看到的是「序列埠 (COM port)」。
- Leonardo → ATmega32u4 本身內建 USB 控制器,可以直接模擬成:
- 鍵盤(Keyboard)
- 滑鼠(Mouse)
- Joystick
- MIDI 裝置
這是最大差異。Leonardo 能當「人機介面裝置 (HID)」,Uno 不能。
序列埠行為不同
- Uno:
Serial指的是與電腦 USB 之間的通訊。 - Leonardo:
Serial是 UART(實體 TX/RX 腳), 而Serial1是 USB 虛擬序列埠。
這點常讓初學者混淆: 如果你用 Leonardo,要記得電腦的序列監控視窗使用的是 Serial (USB), 而 TX/RX 硬體腳則是 Serial1。
可模擬輸入裝置(HID)
Leonardo 能直接讓 Arduino 變成:
- USB 鍵盤:
Keyboard.print("Hello"); - USB 滑鼠:
Mouse.move(10, 0);這對遊戲控制器、宏鍵盤、滑鼠模擬器非常有用。 Uno 做不到這點。
腳位與資源稍微多一些
Leonardo 比 Uno 多幾個 PWM 與類比輸入腳。 這在需要更多感測器或輸入控制時稍佔優勢。
三、優缺點比較
| 板子 | 優點 | 缺點 |
|---|---|---|
| Arduino Uno | – 穩定、相容性最好- 幾乎所有範例與模組都支援- 適合初學者入門 | – 無法模擬 USB 裝置- 無法同時處理多埠 USB 通訊 |
| Arduino Leonardo | – 內建 USB,可模擬鍵盤滑鼠- 額外腳位與更大 SRAM- 可同時有 USB 與 UART 兩個通訊 | – 某些舊程式或模組相容性較差- 上傳程式時需等待重啟,容易讓初學者誤判錯誤 |
四、什麼時候該選哪一塊?
| 使用情境 | 建議板子 |
|---|---|
| 初學 Arduino、學語法、跑範例 | Uno |
| 做鍵盤、滑鼠、搖桿模擬器 | Leonardo |
| 需要與感測器、模組相容 | Uno |
| 想整合 USB 裝置功能 | Leonardo |
| 製作自動化輸入裝置(例如腳踏板、巨集鍵盤) | Leonardo |
五、簡單實例
Uno:基本序列輸出
void setup() {
Serial.begin(9600);
}
void loop() {
Serial.println("Hello from UNO!");
delay(1000);
}
Leonardo:模擬鍵盤輸入
#include <Keyboard.h>
void setup() {
Keyboard.begin();
delay(1000);
Keyboard.print("Hello from Leonardo!");
Keyboard.end();
}
void loop() {}
當你插上電腦時,Leonardo 會像鍵盤一樣自動輸入文字。
六、結語
| 結論 | Leonardo | Uno |
|---|---|---|
| 可模擬鍵盤滑鼠 | ✅ | ❌ |
| 相容性與穩定性 | ⚪ 中等 | ✅ 高 |
| 適合初學者 | ⚪ 次佳 | ✅ 最佳 |
| 可同時 USB + UART | ✅ | ⚪ 受限 |
| USB 晶片數量 | 1 顆 (整合) | 2 顆 (分開) |
簡單記法:
Uno = 經典穩定、教學首選 Leonardo = USB 輸入裝置創作神器
