【省錢攻略】沒零件也能學 Arduino?5 分鐘上手Wokwi模擬器,新手入門零成本!

你是不是常常有這種困擾:「想學 Arduino,但看到網路上那些感測器套件好貴,怕買了不會用?」或是「零件還在運送途中,手很癢想寫程式?」

別擔心!今天這篇文章就是要來拯救你的荷包與時間。我們要來聊聊 Arduino IO Simulator(Arduino 輸入輸出模擬器)。只要有一台電腦、有網路,不用花半毛錢,也不用怕接錯線把板子燒掉(這是新手最怕的惡夢 😱),現在立刻就能開始你的創客之旅!

這篇教學會教你如何使用目前最強大、最方便的線上模擬器 Wokwi 來進行 Arduino IO 練習。

在我們進入實作之前,先簡單說說為什麼高手也都愛用模擬器:

  • 零成本 (Zero Cost):不用買板子、不用買麵包板、不用買 LED,全部免費。
  • 防呆防燒 (Safety):在模擬器裡,正負極接反了頂多跳出警告,不會有「焦味」飄出來。
  • 快速除錯 (Debug):可以立刻看到程式碼對硬體的影響,不需要一直拔插線路。

5 分鐘快速上手:Wokwi 模擬器

雖然市面上有很多軟體(如 Proteus, Tinkercad),但我最推薦 Wokwi。因為它不用安裝、支援繁體中文顯示、而且模擬速度超級快!

第一步:進入戰場

直接打開瀏覽器,前往 Wokwi 官網,選擇 Arduino UNO 開發板。你會看到畫面分成兩半:

  • 左邊:寫程式碼的地方 (Sketch)。

  • 右邊:虛擬的硬體電路區。

Wokwi_Website_Picture
Wokwi_Website_Picture-2

第二步:接線 (Virtual Wiring)

我們來做一個最經典的 IO 練習:「按鈕控制 LED 燈」。這涵蓋了數位輸入 (Input) 與數位輸出 (Output)。

  1. 在右邊按一下 + 號,新增一個 LED 和一個 Pushbutton (按鈕)

  2. 連接 LED

    • LED 長腳 (陽極) -> 連接到 Arduino Pin 13

    • LED 短腳 (陰極) -> 連接到 Arduino GND

  3. 連接按鈕

    • 按鈕一端 -> 連接到 Arduino Pin 2

    • 按鈕另一端 -> 連接到 Arduino GND

    • (小撇步:我們等等會用程式碼開啟內建的上拉電阻,所以不用外接電阻,接線超簡單!)

Wokwi_Website_Picture-3
Wokwi_Website_Picture-4

實戰程式碼 (附繁體中文註解)

硬體接好了,接下來就是靈魂——程式碼。

很多新手看到英文就頭暈,別怕!我把每一行都加上了繁體中文註解,你直接複製貼上,然後試著讀懂它的邏輯。

				
					// --- 定義腳位變數 ---
// 設定 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);
}
				
			

測試與驗證

  1. 把上面的程式碼貼到 Wokwi 左側的編輯區。
  2. 按下綠色的 Play (執行) 按鈕。
  3. 現在,用滑鼠去點擊右邊電路圖上的按鈕。
    • 按住不放 👉 LED 燈亮起 💡
    • 放開滑鼠 👉 LED 燈熄滅 🌑
  4. 如果你有打開 Serial Monitor (序列埠監控),還會看到文字跳出來跟你說「按鈕已按下」。

總結

恭喜你!你剛剛在沒有花一毛錢的情況下,完成了 Arduino 最基礎也最重要的 IO (Input/Output) 練習。

  • Input (輸入):Arduino 讀取了按鈕的訊號。
  • Output (輸出):Arduino 控制了 LED 的亮滅。
  • Simulator (模擬器):幫你驗證了這個邏輯是正確的。

只要懂了這個邏輯,未來你要把按鈕換成「紅外線感測器」,把 LED 換成「繼電器」或「馬達」,程式碼的架構其實都是一樣的喔!

覺得這篇文章有幫助嗎?趕快分享給身邊想學電子的朋友,或是存下來當作你的 Arduino 筆記吧! 我們下次見!👋

Aruino UNO入學文章:Arduino快速入門教學課程

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

返回頂端