Arduino程式控制入門指南

經過幾年 ESP8266 的專案開發經驗,其中也實作過一些 Arduino 案例,所以想留下一些 Arduino 的知識,以備之後不用常常再上網找相關資訊。在此留下一些 Arduino 的經驗談,作為給初學者的基本基礎知識。

每個部分有一些詳細的理論說明、摘要以及較高階的方法。初學者不需要全部都理解,重要的是開始動手做,在實作過程中學習才是最有效率的方式。

如果您是一個初學者,肯定過程中一定會有一些您不理解的地方。不用擔心,這是絕對正常的,所以先不要氣餒,只要持續在接下來的步驟中閱讀了其他範例,整體架構就會漸漸變得清晰起來,所以請不要放棄!

我也會提供一些相關 Arduino 的參考網頁、Wiki 和其他資源網頁連接。如果您想進一步了解某個主題,這些都是不錯的起點想法。同樣,如果您不了解這些主題中的任何一個,對於初學者來說也不用太擔心,一些邏輯可能讓你困惑,甚至使你沮喪。如果是這種情況,就先暫時跳過這些案例,但是不要放棄!

類似這樣的理論課程會是很有幫助,但是建議你還是要透過自己動手做實驗來學習。將此篇入門指南作為起點,作為參考,只要製作自己的實例,修改這邊提供給您的範例,嘗試新的想法,不懂的地方問問 Google,您的可能性會是無限的!


什麼是 Arduino?

首先第一件事情:Arduino 是什麼?

讓我們看一下 Arduino 網站 上的介紹:

『Arduino 是一個基於易於使用的硬體和軟體的開源電子平台。Arduino 開發板能夠讀取輸入(如感測器上的指示燈、手指按於按鍵上而送出的訊號或 Twitter 的訊息),接著再將訊息轉換為輸出(如啟動馬達、開啟 LED 或在網路上發佈訊息等)。您可以通過向 Arduino 控制板上的微控制器發送一組指令來告訴它該怎麼做。要達到這些功能,你必須學會使用基於 Wiring 的 Arduino 編輯程式語言,和基於 Processing 的 Arduino 開發工具(IDE)。』

這實際上說明了一切。您可以在 此處 找到官方的完整介紹。

Arduino Uno 開發板

(圖片來源:arduino.cc)

有關 Arduino Uno 控制板的規格:

Arduino 開發板本身是一塊藍色的電路板,大小相當於一張信用卡(也有其他尺寸的開發板,例如更小的 Arduino Nano 或功能更強的 Arduino Mega)。

以下是 Arduino Uno(最常見的入門型號)的主要規格:

規格項目 數值
微控制器 ATmega328P
工作電壓 5V
輸入電壓(建議) 7~12V(Vin 引腳)
數位 I/O 引腳 14 個(其中 6 個支援 PWM 輸出)
類比輸入引腳 6 個(10 位元解析度,0~1023)
每引腳最大電流 40mA
Flash 記憶體 32KB(其中 0.5KB 用於 bootloader)
SRAM 2KB
EEPROM 1KB
時脈速度 16MHz

I/O 引腳(輸入/輸出)可以用作:

  • 輸入引腳:連接按鈕或旋鈕、溫度感測器、光線感測器、甚至是鍵盤與滑鼠、數位樂器等。
  • 輸出引腳:連接發光二極體(LED)、驅動馬達、在家中控制路燈、連接到小型顯示器、甚至連接到網際網路,以便它可以檢查你的郵件,發出鳴叫聲等。

透過 USB 連接,您也可以用它來控制您的電腦,或使用您的電腦來控制 Arduino。如您所見,應用是非常廣泛的!

您可以從 Arduino 官方商店 或 PCHome、蝦皮、露天等當地經銷商處購買 Arduino 開發板。

若要了解如何使用 Arduino 控制板,請查看 Arduino 官方部落格 或 Instructables 上的 Arduino 頻道


開始之前:如何不燒掉 Arduino

在開始將撰寫完成的程式碼燒錄入 Arduino 之前,最好先了解會燒毀損壞電路板的幾種常見原因。以下這 12 點是每位 Arduino 初學者都必須牢記的安全守則:

  • ❌ 每個引腳輸出超過 40mA 的電流

Arduino 的每個輸出引腳最大只能提供 40mA 的電流,因此,您不能直接驅動馬達或揚聲器,也不能在不串聯限流電阻的情況下直接連接 LED。一般 LED 的工作電流約為 10~20mA,請務必加上適當的限流電阻(例如 220Ω 或 330Ω)。

  • ❌ 將輸出短路接到 +5V、+3.3V 或 GND 引腳

如果輸出引腳的電壓為 5V,而您直接將它接地,則會消耗大量電流,幾乎會立即燒毀您的 Arduino。

  • ❌ 引腳直接接觸導電表面

確保不要將運作中的 Arduino 放在導電(金屬)表面上,因為這會使底部的引腳短路。建議放在防靜電泡棉或木頭墊板上。

  • ❌ 所有輸出引腳的總電流超過 200mA

Arduino 上的 ATmega 控制晶片最多只能承載 200mA 的總電流。如果同時驅動多個高耗電設備(例如 10 個每個 20mA 的 LED),會損壞您的電路板。若需要驅動多個高電流設備,請使用電晶體或 MOSFET 驅動電路。

  • ❌ 向輸入引腳提供超過工作電壓的電壓

向引腳輸入超過 5V(或 3.3V,取決於開發板工作電壓)的電壓是非常危險的。請注意,如果將 5V 的 Arduino 輸出連接到 3.3V 的感測器晶片,也可能會燒毀該晶片,需要加上電壓分壓電路或電位轉換器(Level Shifter)。

  • ❌ 向 5V 引腳提供超過 5V 的電壓

Arduino 開發板的 5V 直接進入 ATmega 晶片,其最大承受電壓極限為 6V,超過就會損毀。

  • ❌ 向 Vin 引腳提供超過 12V 的電壓

板上有一個板載 5V 穩壓器,如果以 12V 以上的電壓供電,會因過熱而導致穩壓器燒毀。建議使用 7~9V 的乾淨直流電源。

  • ❌ 從 5V 引腳抽取超過 500mA 的電流(使用外部電源時)

板載的 5V 穩壓器最大大約只能提供 500mA 的電流。USB 電源也有限流保險絲保護,限制在 500mA 以內。需要更多電流時,請使用外部穩壓電源模組。

  • ❌ 從 3.3V 引腳抽取超過 50mA 的電流

板載 3.3V 穩壓器只能提供 50mA 的電流。這意味著您無法將耗電的 3.3V 設備(例如 ESP8266 或 nRF24L01 無線模組)直接連接到 Arduino:您需要外接一個外部 3.3V 穩壓器(例如 AMS1117-3.3)。

  • ❌ 反接電源極性

如果將 5V 或 Vin 引腳與 GND 引腳接反,電路板將會立即燒毀。圓形 DC 電源插孔有二極體保護,但 Vin/5V 引腳沒有。使用前請務必以三用電表確認電壓和極性。

  • ❌ 使用 USB 電源時,將負載連接到 Vin 引腳

如果 Arduino 的 5V 來自 USB 連接,此時將負載連接到 Vin 引腳,電流會逆向流過穩壓器,從而導致穩壓器損壞。

  • ❌ 靜電放電 (ESD)

儘管大多數晶片都有二極體防護靜電,但最好還是使用防靜電腕帶,或者在乾燥環境下觸摸開發板前先觸摸接地的金屬物放電,桌子下面避免鋪地毯。


軟體開發環境

Arduino IDE

為了對 Arduino 進行程式編寫,我們需要下載安裝 Arduino IDE(整合開發環境)。目前最新版本為 Arduino IDE 2.x,介面更現代、有自動補全功能,建議直接安裝新版。

您可以前往 Arduino 官方下載頁面 下載最新版本。

Arduino IDE 軟體畫面

Windows 安裝步驟:

  1. 進入官方網站的下載頁面,選擇 Windows 版本的安裝程式(.exe)
  2. 如果您想支持該開源項目,可以考慮 donate 一些錢,之後再點擊「JUST DOWNLOAD」,或直接點選「下載」。
  3. 下載完成後開啟並執行安裝檔(.exe)。
  4. 在 UAC 彈窗中點擊「是」,授予系統管理員權限。
  5. 閱讀並同意軟體許可協議(License Agreement)。
  6. 選擇要安裝的元件,您將需要安裝 Arduino 軟體USB 驅動程式(這非常重要,否則電腦將無法識別連接的開發板)。
  7. 接受預設的安裝路徑,或選擇另一個路徑,然後點擊安裝。
  8. 過程中若系統提示您是否要安裝 Arduino USB 驅動程式(裝置軟體),請點選「安裝」,這樣電腦才能辨識 Arduino 板子。
  9. 等待安裝完成,在桌面上可以看到 Arduino IDE 的圖示,雙擊即可啟動。

(完整的官方安裝指南也可以在 Arduino 官方網站 上找到。)

第一個程式:Blink(讓 LED 閃爍)

安裝完 IDE 之後,最好的入門實驗就是讓 Arduino 上內建的 LED 燈閃爍起來,這就是著名的 “Blink” 程式,相當於程式設計中的 “Hello World”!

以下是 Blink 的程式碼:

// 宣告常數:Arduino Uno 的內建 LED 連接在 Pin 13
const int LED_PIN = 13;

// setup() 在開機或重置時只執行一次
void setup() {
  // 將 LED_PIN 設定為輸出模式
  pinMode(LED_PIN, OUTPUT);
}

// loop() 持續重複執行
void loop() {
  digitalWrite(LED_PIN, HIGH);  // 開啟 LED(輸出高電壓 5V)
  delay(1000);                  // 等待 1000 毫秒(1 秒)
  digitalWrite(LED_PIN, LOW);   // 關閉 LED(輸出低電壓 0V)
  delay(1000);                  // 再等待 1 秒
}

程式說明:

  • setup():在 Arduino 啟動時只執行一次,通常用來設定引腳模式、初始化序列埠等。
  • loop():會持續不斷地重複執行,就像一個無限迴圈,是 Arduino 程式的核心部分。
  • digitalWrite(pin, value):控制數位引腳的輸出,HIGH 代表 5V,LOW 代表 0V。
  • delay(ms):讓程式暫停執行指定的毫秒數(1000ms = 1 秒)。

只需要將程式碼貼入 IDE,按下「上傳」按鈕(向右的箭頭圖示),稍等幾秒後,您的 Arduino 板子上的 LED 就會開始每秒閃爍一次!


硬體和電子產品

在正式動手之前,了解基本的電子零件是十分重要的。如果您是電子學的新手,這些知識是很有價值的起步點。隨著您動手做實驗的次數增加,這些零件之間的物理現象和運作邏輯就會變得更加清晰。

電子學在本質上就是物理學的實踐應用!以下是我們在 Arduino 開發中經常會接觸到的基礎電子元件與設備:

麵包板 Breadboard

麵包板 (Breadboard)

電阻 Resistor

電阻器 (Resistor)

LED 燈

發光二極體 (LED)

電容器 Capacitor

電容器 (Capacitor)

二極體 Diode

二極體 (Diode)

三極體 Transistor

電晶體 (Transistor)

電位器 Potentiometer

可變電阻 (Potentiometer)

光敏電阻 LDR

光敏電阻 (LDR)

蜂鳴器 Buzzer

無源蜂鳴器 (Buzzer)

這些元件就像是積木一樣。透過控制電路中電流的流向、大小,配合我們所寫的程式碼,就能創造出千變萬化的智慧裝置。

歐姆定律(Ohm’s Law)— 初學者必知

在使用這些電子元件之前,有一個最基礎的公式您必須了解,那就是歐姆定律

電壓(V)= 電流(I)× 電阻(R)

也可以寫成:

  • I(電流 A)= V(電壓 V)÷ R(電阻 Ω)
  • R(電阻 Ω)= V(電壓 V)÷ I(電流 A)

實際範例:計算 LED 限流電阻

假設我們要將一顆 LED 連接到 Arduino 的 5V 引腳:

  • LED 工作電壓(正向電壓):約 2V
  • LED 工作電流:約 20mA(0.02A)
  • 電路中需要的電壓降:5V – 2V = 3V
  • 所需電阻值:R = 3V ÷ 0.02A = 150Ω

實際上建議選擇標準值 220Ω 或 330Ω 的電阻,可以保護 LED 同時亮度也足夠。

電路符號對照

以下為初學者提供各個電子零件的電路符號說明,這些符號在電路圖中隨處可見,認識它們對於看懂電路設計非常重要:

電阻符號

電阻器電路符號

LED燈符號

發光二極體電路符號

電容符號

電容器電路符號

二極體符號

二極體電路符號

電晶體符號

電晶體電路符號

可變電阻符號

可變電阻電路符號

光敏電阻符號

光敏電阻電路符號


初學者常見問題 & 實用建議

  • Q:Arduino 和樹莓派(Raspberry Pi)有什麼差別?

Arduino 是一個微控制器開發板,適合即時控制硬體(如控制馬達、讀取感測器),執行單一特定任務;而樹莓派是一台完整的小型電腦,跑 Linux 系統,適合需要作業系統支援的複雜應用。兩者各有所長,很多專案甚至會同時使用兩者。

  • Q:我需要很強的電子或程式背景才能學嗎?

完全不需要!Arduino 的設計目標就是讓非工程師背景的人也能輕鬆上手。只要有基本的邏輯思維,按照教學一步步操作,很快就能做出有趣的作品。

  • Q:我應該買哪一款 Arduino 開始學?

最推薦初學者從 Arduino Uno 開始,它的資源最豐富、教學最多、最容易排除問題。等熟悉之後,再根據專案需求選擇其他型號(如需要更多引腳的 Mega、超小型的 Nano、或內建 Wi-Fi 的 MKR 系列)。

  • 💡 小技巧:多多善用 Serial.println() 指令,可以在 IDE 的「序列埠監控視窗」中即時輸出數值,是偵錯(Debug)的最佳工具!

進階學習資源


接下來,各位可以前往 Arduino程式控制入門課程 中,一個單元接著一個單元,一步步地了解相關電子元件的深入說明,並透過實際動手操作,建立屬於自己的 Arduino 實作能力!

發佈留言

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

返回頂端