你是不是常常有這種困擾:「想學 Arduino,但看到網路上那些感測器套件好貴,怕買了不會用?」或是「零件還在運送途中,手很癢想寫程式?」
別擔心!今天這篇文章就是要來拯救你的荷包與時間。我們要來聊聊 Arduino IO Simulator(Arduino 輸入輸出模擬器)。只要有一台電腦、有網路,不用花半毛錢,也不用怕接錯線把板子燒掉(這是新手最怕的惡夢 😱),現在立刻就能開始你的創客之旅!
這篇教學會教你如何使用目前最強大、最方便的線上模擬器 Wokwi 來進行 Arduino IO 練習。
Table of Contents
Toggle為什麼你需要模擬器 (Simulator)?
在我們進入實作之前,先簡單說說為什麼高手也都愛用模擬器:
- 零成本 (Zero Cost):不用買板子、不用買麵包板、不用買 LED,全部免費。
- 防呆防燒 (Safety):在模擬器裡,正負極接反了頂多跳出警告,不會有「焦味」飄出來。
- 快速除錯 (Debug):可以立刻看到程式碼對硬體的影響,不需要一直拔插線路。
5 分鐘快速上手:Wokwi 模擬器
雖然市面上有很多軟體(如 Proteus, Tinkercad),但我最推薦 Wokwi。因為它不用安裝、支援繁體中文顯示、而且模擬速度超級快!
第一步:進入戰場
直接打開瀏覽器,前往 Wokwi 官網,選擇 Arduino UNO 開發板。你會看到畫面分成兩半:
左邊:寫程式碼的地方 (Sketch)。
右邊:虛擬的硬體電路區。
第二步:接線 (Virtual Wiring)
我們來做一個最經典的 IO 練習:「按鈕控制 LED 燈」。這涵蓋了數位輸入 (Input) 與數位輸出 (Output)。
在右邊按一下 + 號,新增一個 LED 和一個 Pushbutton (按鈕)。
連接 LED:
LED 長腳 (陽極) -> 連接到 Arduino Pin 13。
LED 短腳 (陰極) -> 連接到 Arduino GND。
連接按鈕:
按鈕一端 -> 連接到 Arduino Pin 2。
按鈕另一端 -> 連接到 Arduino GND。
(小撇步:我們等等會用程式碼開啟內建的上拉電阻,所以不用外接電阻,接線超簡單!)
實戰程式碼 (附繁體中文註解)
硬體接好了,接下來就是靈魂——程式碼。
很多新手看到英文就頭暈,別怕!我把每一行都加上了繁體中文註解,你直接複製貼上,然後試著讀懂它的邏輯。
// --- 定義腳位變數 ---
// 設定 LED 連接在數位腳位 13
const int ledPin = 13;
// 設定按鈕連接在數位腳位 2
const int buttonPin = 2;
// 變數用來儲存按鈕目前的狀態 (0 或 1)
int buttonState = 0;
void setup() {
// --- 設定模式 ---
// 設定 LED 腳位為輸出模式 (Output)
pinMode(ledPin, OUTPUT);
// 設定按鈕腳位為輸入模式 (Input)
// 特別注意:使用 INPUT_PULLUP 會啟用 Arduino 內部的上拉電阻
// 這樣按鈕沒按時會是高電位 (HIGH),按下會變成低電位 (LOW)
// 這可以省去在電路上外接電阻的麻煩!
pinMode(buttonPin, INPUT_PULLUP);
// 開啟序列埠監控視窗,方便我們觀察數值 (鮑率 9600)
Serial.begin(9600);
}
void loop() {
// --- 主要邏輯迴圈 ---
// 1. 讀取按鈕的狀態
// digitalRead 會回傳 HIGH (1) 或 LOW (0)
buttonState = digitalRead(buttonPin);
// 2. 判斷按鈕是否被按下
// 因為我們用了 INPUT_PULLUP,所以按下按鈕時,電路接地,讀到的會是 LOW
if (buttonState == LOW) {
// 如果按鈕被按下 -> 開燈
digitalWrite(ledPin, HIGH);
Serial.println("按鈕已按下:開燈 (LED ON)");
} else {
// 如果按鈕沒被按下 -> 關燈
digitalWrite(ledPin, LOW);
// 可以在這裡把註解拿掉,觀察沒按下的狀態,但怕洗版先註解掉
// Serial.println("按鈕鬆開:關燈 (LED OFF)");
}
// 小小的延遲,避免電腦跑太快,也稍微消除按鈕彈跳雜訊
delay(50);
}
測試與驗證
- 把上面的程式碼貼到 Wokwi 左側的編輯區。
- 按下綠色的 Play (執行) 按鈕。
- 現在,用滑鼠去點擊右邊電路圖上的按鈕。
- 按住不放 👉 LED 燈亮起 💡
- 放開滑鼠 👉 LED 燈熄滅 🌑
- 如果你有打開 Serial Monitor (序列埠監控),還會看到文字跳出來跟你說「按鈕已按下」。
總結
恭喜你!你剛剛在沒有花一毛錢的情況下,完成了 Arduino 最基礎也最重要的 IO (Input/Output) 練習。
- Input (輸入):Arduino 讀取了按鈕的訊號。
- Output (輸出):Arduino 控制了 LED 的亮滅。
- Simulator (模擬器):幫你驗證了這個邏輯是正確的。
只要懂了這個邏輯,未來你要把按鈕換成「紅外線感測器」,把 LED 換成「繼電器」或「馬達」,程式碼的架構其實都是一樣的喔!
覺得這篇文章有幫助嗎?趕快分享給身邊想學電子的朋友,或是存下來當作你的 Arduino 筆記吧! 我們下次見!👋
Aruino UNO入學文章:Arduino快速入門教學課程
