前言
為了使用繼電器,我上網做了一些功課,底下摘要整理我所吸收到的資訊:
什麼是繼電器?
▲ 各式各樣的繼電器 (圖片來源: http://kjsconsulting.biz/ )
繼電器 (Relay) 是一種可以讓小電力控制大電力的開關。例如,小電壓的電池或者是微控制器,只要用繼電器就可以切換馬達 (motors)、變壓器 (transformers)、電暖爐 (heaters)、燈泡 (bulbs) 等大電流設備的開關。
繼電器的運作原理可參考下圖:
當微控制器送出訊號時,電晶體會打開使得電流流進線圈,當微控制器關閉訊號時,電晶體會關閉形成斷路,電流就不會流通,不會驅動繼電器中的線圈。
當電流流經線圈 (激磁) 的時候,線圈產生的磁力會使得繼電器的銜鐵 (lever) 被吸引而改變接觸點,而當流經線圈的電流消失後,銜鐵會因為彈簧的反作用力返回原來的位置,因此利用電磁的吸合與釋放就可以控制大電力設備的開關。輸入電路 (小電力) 和輸出電路 (大電力) 之間是沒有實際電氣接觸的,非常安全,如果輸出電路有 120VAC 的電通過,不用擔心 120VAC 會弄壞你的微控制器。在打開繼電器線圈被激磁的時候,你會聽到一個吸合的聲音 (嗒的一聲)。底下是一個透明的 SPDT (Single Pole Double Throw, 單刀單擲) 繼電器的圖,你可以清楚的看到它的線圈。
▲ 12V SPDT 繼電器 (圖片來源: Arduino for beginners)
繼電器線圈激磁所需的電流會比較大一些,通常是 30mA/12V,大部份的微控制器沒有辦法提供這麼大的電流,因此通常會接一顆 NPN 電晶體來放大電流。
另外,要特別注意一件事,在關閉繼電器的時候,線圈會產生一個短暫的反電動勢 (Back Electro Motive Force),反電動勢可能會把電晶體與微控制器給弄壞掉,為了避免損毀,必須在線圈上並聯一顆反向二極體 (如 1N4004~1N4007, 1N4148) 以洩放突波。
繼電器的接線
繼電器有很多形式,比較常見的是 SPDT (Single Pole Double Throw, 單刀單擲) 或 DPDT (Double Pole Double Throw, 雙刀雙擲) 這兩種開關,如下圖所示:
其中:
- COM (Common) 為共接點
- NO (Normal Open) 為常開接點,平時與 COM 成開路狀態,線圈激磁時與 COM 導通
- NC (Normal Closed) 為常關接點,平時與 COM 導通,線圈消磁時與 COM 成開路狀態
繼電器的接點似乎也稱為端子 (Terminal),如 COM 端子、NO 端子以及 NC 端子。
以 SPDT 繼電器而言,加上線圈的 2 支接腳,總共是 5 支接腳,至於 DPDT 繼電器,加上線圈的 2 支接腳,總共是 8 支接腳。在接線的時候,一定要看繼電器的 datasheet 參考它的接線圖。
關於 SPDT, DPDT 等開關的種類,請見「如何閱讀電路圖」一文的介紹。
選擇繼電器的注意事項
在選擇繼電器的時候,有幾個需要考慮的事情:
- 線圈額定電壓 (Coil Rating Voltage): 要注意線圈激磁所需的電壓。很多繼電器用的都是 12V 的,不過也有 5V 跟 24V 的繼電器。
- 開關額定電壓與電流 (Switch Rating Voltage and current): 要注意繼電器可以驅動開關的電壓與電流有多大。
通常繼電器上都會標示線圈電壓與開關電壓電流,以底下這個 RAS-0515 小型繼電器為例,它的線圈電壓是直流 5V,開關電流與電壓為 15A/120VAC (24VDC), 10A/250VAC:
而底下這個 BS-115C 繼電器,它的線圈電壓是直流 12V,而開關電流與電壓則為 12A/120VAC, 10A 240VAC (28VDC):
延伸閱讀
- Relay – Wikipedia
- How to drive relays with the Arduino
- 如何閱讀電路圖 (SPST, SPDT, DPDT 等開關的介紹)
- 電驛 (Relay)
你好,當微控制器送出訊號時,電晶體打開,那電流是一部分流進線圈跟一部分留進二極體嗎?還是大部分都流進線圈呢?為什麼?
回覆刪除電晶體打開的時候,電流會流進線圈,然後流進電晶體集極 (Collector)接著到射極 (Emitter)。FYI:
回覆刪除http://www.electronics-tutorials.ws/transistor/tran_2.html
微控制器是輸出5v和0v 而上面的電路圖是一樣可以動作的嗎?
回覆刪除可以動作,Arduino 輸出的是 5v 和 0v,我在「Arduino 筆記 - Lab21 用繼電器控制 12V 風扇」這篇就是用 Arduino 控制繼電器的動作。
回覆刪除請問如果要向機車方向燈那樣一閃一閃 繼電器要怎接LED燈
回覆刪除像機車方向燈那樣一閃一閃?
回覆刪除我突然想到,方向燈在閃的時候會有嗒嗒嗒的聲音...
呵~ 難不成機車方向燈也是用繼電器控制的嗎?
不知道方向燈的電路為何,會不會是用 Timer 在控制閃爍?
如果你要用微控制器控制 LED 一閃一閃,方向很簡單,可以用 Arduino 寫個小程式就辦得到了。
在下有壞掉機車"方向燈蜂鳴器"的經驗,方向燈會閃,但是沒有聲音...
回覆刪除所以就去機車行修理,老闆換了蜂鳴器就有聲音了XD
所以我想機車方向燈應該沒用繼電器吧!!
如果單純要控制LED閃爍Blink範例程式就可以做到,但是機車應該不會用到微處理器去控制方向燈閃爍吧!!
換蜂鳴器?
回覆刪除所以方向燈閃的時候發出嗒嗒嗒聲音是蜂鳴器的關係?
剛上 Yahoo 知識+ 查,有網友說方向燈會閃,是因為有個熱偶片在控制:
"通過電流時 熱偶片會發熱..像炒魷魚一樣 捲起來,捲起來時 就沒有通電了,方向燈就熄掉了
沒有電流經過時 冷卻下來 又恢復原狀..此時又通電了"
來源:
http://tw.knowledge.yahoo.com/question/question?qid=1405110103719
你好!
回覆刪除我剛也稍微看過一你給的資料 還有搜尋了一些結果,似乎好像有很多種的可能,可能是relay的達達聲音,也可能是熱藕片的聲音,然後也有可能是本身relay聲音過小,會有蜂鳴器來加強。
機車行老闆是跟我說那個換掉的東西是蜂鳴器ORZ
Hi, 嗯,看起來應該是有很多種方法
回覆刪除下次我去機車行換機油,就來考考機車行老闆..
哈!
寫得很仔細, 花了很多功夫, 最近我才發現
回覆刪除arduino, 發覺可以省下許多寫driver 的時間,
可以把資源投注在產品應用上. 正在想做幾個arduino 產品, 希望能交流交流
kenson
謝謝你的鼓勵
回覆刪除沒錯,Arduino 的世界有很多資源可以利用
做產品和韌體研發的人,應該要認真把 Arduino 當作 Product Prototyping 的一個平台
请问在你上面的继电器电路中,arduino的GND和继电器开关部分的GND是否需要连接在一起?
回覆刪除GND 要接在一起喔!
回覆刪除