講到利用訊號控制開關,最簡單的就是Relay(繼電器)了,他是一個利用小電流去控制大電流的自動開關。
我們會想,怎麼不用Arduino的5V輸出提供給LED燈條就好了呢?
原因是Arduino能提供的電流實在太小了,每個輸出針腳最大只有20mA而已。
而RGB彩色LED,每種顏色就需要20mA,一顆燈包含RGB三色,總共就要60mA,而燈條上不會只有一顆LED燈而已,所以我們需要額外的供電,在需要的時候利用Arduino發出訊號讓她打開,接通外部電源,這也就是Relay派上用場的時機了。(關於Relay更多知識請參考維基百科-繼電器)
Relay基本工作與接線圖
了解為何要使用Relay和他的基本使用之後,我們可以利用手機發出開燈訊號,Arduino上的HC-06接收到訊號之後傳給Arduino,依據開和關讓數位針腳發出High或是Low的訊號給Relay控制腳,這樣就可以控制Relay要打開或是關閉。
接線圖,因為我要控制兩條燈條,她們使用各自的電源,所以會用到兩顆Relay分別做控制:
5V由Arduino提供(包含上一篇提到的HC-06),兩顆Relay的控制腳分別接在Arduino的D3與D5,這邊只專注在Arduino與Relay連接,其他部分之後再談。
電路圖中我用到兩顆Relay模組,因為軟體裡面找不到我用的,我實際上買的是這種雙路的Relay,5V和接地只要一組共用即可,然後是低電位觸發,也就是控制腳如果輸入5V,不會觸發動作,輸入0V(接地)就會觸發,讓常開端導通。
接著看看Arduino程式碼,全開或全關太單調了,我們讓他隔一秒交互開關:
#define PIN1 3 #define PIN2 5 void setup() { pinMode(PIN1, OUTPUT); pinMode(PIN2, OUTPUT); } int i; void loop() { //使用的這顆relay是低電位觸發 i++; if (i % 2 == 0) { digitalWrite(PIN1, HIGH); //設為high為關閉relay digitalWrite(PIN2, LOW); //設為low為開啟relay } else { digitalWrite(PIN1, LOW); digitalWrite(PIN2, HIGH); } delay(1000); }
這樣就會像底下影片一樣兩顆Relay交互開關囉!!!
下期待續...
--
相關文章:
[筆記]Arduino與HC-06藍芽遠端控制WS2812B - [1] Arduino與HC-06
沒有留言:
張貼留言