在 Arduino 專案中,我們經常需要控制高電壓設備,例如燈泡、風扇、電磁閥或其他家用電器。然而,Arduino 本身只能輸出 5V 低電壓訊號,無法直接驅動 110V 或 220V 的電器。這時候,繼電器(Relay) 就成為不可或缺的元件。
繼電器是一種電子開關,能夠透過 Arduino 的低電壓訊號,來控制高電壓電器的開關。這讓我們能夠使用 Arduino 進行 智慧家居、自動控制、遠端開關 等應用。無論是控制家裡的燈光,還是打造 DIY 智能電器,繼電器都是最簡單且安全的解決方案。
本教學你將學到什麼?
本篇教學適合 Arduino 新手 或 想學習繼電器控制 的讀者,我們將一步步介紹:
- 繼電器的工作原理與種類
- 如何將繼電器模組接線到 Arduino(含電路圖)
- Arduino 控制繼電器的完整程式碼
- 常見錯誤與解決方法
- 應用案例:智慧家居、風扇開關、自動化控制
為什麼要學習 Arduino 繼電器?
學習如何使用 Arduino 控制繼電器,不僅能提升你的電子技能,也能為你的專案開啟更多可能性。例如:
- 智慧家居自動化(例如使用感測器來自動開關風扇)
- 省電應用(讓設備根據時間或環境變化自動運作)
接下來,我們將從 繼電器的基本原理 開始,帶你一步步學會如何使用 Arduino 輕鬆控制高電壓設備!
Table of Contents
Toggle繼電器的工作原理與種類
繼電器(Relay)是一種電磁開關,它透過低電壓電流來控制高電壓設備的開關。其內部主要由電磁線圈、可動觸點、靜態觸點組成。當線圈通電時,會產生磁場吸引可動觸點,使其與靜態觸點接觸,從而導通電路;當線圈斷電時,磁場消失,觸點恢復斷開狀態。這種機制讓微控制器(如 Arduino)能夠安全地控制大功率裝置,如燈泡、風扇、馬達等。
繼電器的種類
根據不同的設計與應用需求,繼電器可分為以下幾種:
- 機械式繼電器(Electromechanical Relay, EMR):
透過電磁線圈驅動物理觸點開關,適用於家電控制、工業自動化等。
- 固態繼電器(SSR)(Solid State Relay):
利用電子元件(如光耦合器)進行開關控制,無機械接點,壽命長且反應速度快,適用於高速開關的應用。
- 單刀單擲(SPST)/ 單刀雙擲(SPDT)繼電器:
SPST(Single Pole Single Throw):只有一組開關,簡單開關電路。
SPDT(Single Pole Double Throw):一進兩出的開關,可切換兩個電路。
- 多通道繼電器模組:
市面上常見的 1 路、2 路、4 路、8 路繼電器模組,可同時控制多個設備,適合 Arduino 應用。
實驗準備材料
- Arduino UNO x 1
- 二路 5V Relay(繼電器) x 1
- LED燈 x 2
- 220Ω電阻 x 2
- 麵包板 x 1
- 杜邦線 x 數條
*注意事項:Arduino UNO Pin腳輸出電壓值為5V,避免在購買Relay時,選錯驅動電壓,分享這優良店家連結,方便大家購買材料,連結如下:


如何將繼電器模組接線到 Arduino(含電路圖)
我們將以大家熟悉的 Arduino LED 閃爍(LED Blinking)作為示範。雖然 LED 閃爍可直接由 Arduino 的數位腳位驅動,但由於這通常是初學者接觸 Arduino 的第一個實作範例,因此能幫助理解開關動作的原理。在此,我們將使用繼電器來取代 Arduino 腳位的開關功能,透過兩者的對應關係,使概念更直觀易懂。
- 繼電器輸入端接腳:
VCC—接電源
GND—接地
IN—接Arduino Pin腳
- 繼電器輸出端接腳:
NO (Normally Open)—常開(電路一般是不導通)
COM (Common)—表示共接點
NC (Normally Close)—常閉(電路一般是導通)
此處使用繼電器的常開(NO,Normally Open)端來控制 LED 電源。因此,啟動時 LED 預設為熄滅,當 Arduino Pin 輸出 HIGH 訊號後,繼電器閉合,LED 才會亮起。
接線圖請參考底下:

繼電器(Relay)作動原理:
繼電器(Relay)是一種電磁開關,透過低電壓訊號來控制高電壓電路。內部由電磁線圈、可動觸點、靜態觸點組成。當線圈通電時,會產生磁場吸引可動觸點,使電路導通;當線圈斷電時,磁場消失,觸點恢復斷開狀態。
下圖取自維基百科,示意 Arduino 控制繼電器線圈通電,從而觸發輸出端的開關動作。
Arduino 控制繼電器的完整程式碼
int relay1 = 5;
int relay2 = 8;
void setup() {
// put your setup code here, to run once:
pinMode(relay1, OUTPUT);
pinMode(relay2, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(relay1, HIGH);
digitalWrite(relay2, LOW);
delay(1000);
digitalWrite(relay1, LOW);
digitalWrite(relay2, HIGH);
delay(1000);
}
在程式中,我們使用 Arduino 的 Pin 5 和 Pin 8 作為輸出。當 relay1 = HIGH 時,繼電器閉合,電源接通,LED 亮起;反之,當 relay2 = LOW 時,繼電器斷開,LED 熄滅。
在底下影片中,可以聽到繼電器吸磁和脫磁的彈片聲音,像是按家裏牆壁上開關一樣。
Arduino 控制繼電器的 5 大常見錯誤與解決方法
- 繼電器無法觸發(無反應)
- 可能原因:Arduino 提供的訊號電壓不足(部分繼電器模組需要 5V 訊號,但 Arduino 可能輸出3V)。
- 解決方法:確認繼電器的驅動電壓,若需要 5V,請使用 Arduino Uno(5V 輸出) 或加裝 電位提升模組。
- 繼電器一直吸合(無法關閉)
- 可能原因:程式碼設定錯誤,或繼電器模組的 低電平觸發(LOW Trigger) 沒有正確考慮。
- 解決方法:檢查程式碼,若是 LOW 觸發繼電器,請使用 digitalWrite(pin, LOW); 來啟動,digitalWrite(pin, HIGH); 來關閉。
- 繼電器開關時,Arduino 重新啟動
- 可能原因:繼電器開關時產生電磁干擾(EMI),影響 Arduino 電路穩定性。
- 決方法:使用獨立電源 供應繼電器模組,不要與 Arduino 共用同一電源。加裝二極體(如 1N4007) 在繼電器線圈兩端,吸收反向電流。
- 繼電器作動,但無法控制電器
- 可能原因:繼電器的觸點接線錯誤,或電器需要更高功率。
- 解決方法:確認繼電器的 COM(公共端)、NO(常開端)、NC(常閉端) 是否正確接線。檢查電器的功率是否超過繼電器的負載能力(如 10A/250V)。
- 繼電器開關時,出現噪音或抖動
- 可能原因:供電電壓不穩定,或 Arduino 訊號不乾淨。
- 解決方法:確保電源穩定,可加裝 電解電容(如 1000µF) 過濾雜訊。若使用機械式繼電器,可改用 固態繼電器(SSR) 減少抖動與噪音。
應用案例:智慧家居、風扇開關、自動化控制
我們將製作一個電源插座,一側為 Arduino UNO 供電,另一側則連接繼電器,如下圖所示。
如果你對這個電源插座的製作過程感興趣,歡迎留言告訴我,我會準備一篇詳細的教學與大家分享!

這是一顆單通道繼電器,我們將其 IN 腳位連接至 Arduino UNO 的 Pin 8。當程式上傳至 Arduino UNO 後,使用 9V 電源適配器供電,而非 USB 供電,以便控制 110V 家電或其他裝置。我也會分享兩種測試裝置,供大家參考!
結語
透過本篇教學,你已經學會了 繼電器的工作原理、接線方法、Arduino 控制技巧,以及常見錯誤的解決方案。繼電器讓 Arduino 可以安全地控制高電壓設備,為智慧家居、自動化設備、遠端控制等應用開啟更多可能性。
在實作時,請務必確認電壓與電流匹配,確保接線正確,並使用適當的保護元件(如二極體與濾波電容),以提升系統穩定性。
現在,你可以開始你的第一個 Arduino 繼電器專案,例如 遠端開關燈光、定時控制風扇 或 自動化設備!希望這篇文章對你有幫助,歡迎分享你的成果,讓更多人一起學習 Arduino!