|

Arduino Leonardo vs Arduino Uno:差異、優缺點與選擇指南

Arduino Uno 是許多人學習 Arduino 的第一塊板子, 而 Arduino Leonardo 則是另一款功能相似但更靈活的控制板。 兩者都屬於 Arduino 官方 8-bit 系列,但在「USB通訊」與「微控制器架構」上有本質不同。


一、基本規格比較表

項目Arduino UnoArduino Leonardo
微控制器ATmega328PATmega32u4
工作電壓5 V5 V
I/O 腳位14 個數位腳(6 個 PWM)6 個類比輸入20 個數位腳(7 個 PWM)12 個類比輸入
Flash 記憶體32 KB(含 bootloader)32 KB(含 bootloader)
SRAM2 KB2.5 KB
EEPROM1 KB1 KB
USB 介面晶片需額外 ATmega16U2 做 USB-Serial 轉換內建 USB 控制器(ATmega32u4)
通訊介面UART、I²C、SPIUART、I²C、SPI
可模擬 USB 裝置❌ 不行✅ 可以(鍵盤、滑鼠、Joystick)
電腦連線端口USB Type-BMicro USB
時脈頻率16 MHz16 MHz

二、核心差異解說

USB 架構不同

  • Uno → ATmega328P 沒有 USB 功能,需要 另一顆 ATmega16U2 負責 USB-Serial 轉換。 所以電腦看到的是「序列埠 (COM port)」。
  • Leonardo → ATmega32u4 本身內建 USB 控制器,可以直接模擬成:
    • 鍵盤(Keyboard)
    • 滑鼠(Mouse)
    • Joystick
    • MIDI 裝置

這是最大差異。Leonardo 能當「人機介面裝置 (HID)」,Uno 不能。


序列埠行為不同

  • UnoSerial 指的是與電腦 USB 之間的通訊。
  • LeonardoSerial 是 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 會像鍵盤一樣自動輸入文字。


六、結語

結論LeonardoUno
可模擬鍵盤滑鼠
相容性與穩定性⚪ 中等✅ 高
適合初學者⚪ 次佳✅ 最佳
可同時 USB + UART⚪ 受限
USB 晶片數量1 顆 (整合)2 顆 (分開)

簡單記法:

Uno = 經典穩定、教學首選 Leonardo = USB 輸入裝置創作神器

Similar Posts