由於Arudino最高只能輸出5V(伏特)的電壓和40mA(毫安培)的電流,對於一般的電器來說並不足夠,因此需要透過繼電器和外部的電源來提供足夠的電力。
繼電器的功能類似開關,當Arduino輸出訊號的時候,就可以通電,讓外部電源供電給電器。

基本的繼電器會有三個Pin腳,分別是VCC、GND、和IN(或DAT)。其中VCC是接5V,IN是接數位腳位。
另外一端則是分為:
NO(normal open):常開,一般情況是斷開的。
COM(commom ground):共電,一般接上外部電源,如電池的正極。
NC(normal colse):常關,一般情況是接通的

直流馬達是一般小型玩具常見的馬達,轉速較伺服馬達高,但需要較強的電力來驅動。
圖片來源:傑森創工
https://blog.jmaker.com.tw/arduino-relay/
由於繼電器的電路較為複雜,建議分成電器和Arduino兩個部份。
電器部分:
將外接電的正極接到COM、電器的正極接到NO、電器的負極。
Arduino部分:
將VCC接到5V、GND接到GND、IN接到數位腳位。

平常Arduino沒有輸出訊號,繼電器屬於斷開狀態,外部電源無法供電給電器。當Arduino輸出高電位時,繼電器接通,外部電源供電啟動電器。

可以將圖中的LED燈泡換成直流馬達。
void setup() {
pinMode(7, OUTPUT);
}

void loop() {
digitalWrite(7,HIGH);
delay(2000);
digitalWrite(7,LOW);
delay(1000);
}
初始設定{
設定7號腳位負責輸出
}

重複執行
7號腳位輸出高電位
等待2秒鐘
7號腳位輸出低電位
等待1秒鐘
}
新概念:
1.上面的範例所呈現的結果是馬達轉動2秒後停下來1秒,重複以上循環。
2.在繼電器開關轉換的時候會有明顯的「搭搭」聲。

請挑戰以下目標:
1.當按下搖桿的SW開關的時候啟動直流馬達,平常則是關閉。
2.當光線變亮的時候啟動直流馬達,變暗的時候則關閉。

目標1:
int pinRead = 0;

void setup() {
pinMode(7, OUTPUT);
pinMode(3, INPUT);
Serial.begin(9600);
}

void loop() {
pinRead = digiralRead(3);
Serial.print("pinRead = ");
Serial.println(pinRead);
if(pinRead == 1){
digitalWrite(7,HIGH);
}
else{
digitalWrite(7,LOW);
}
}
設定變數pinRead為整數且為0

初始設定{
設定7號腳位負責輸出
設定3腳位負責輸入
設定序列埠為9600
}

重複執行
變數pinRead設為3號腳位所讀取的數位訊號
序列埠輸出文字pinRead =
序列埠輸出變數pinRead的值後換行
如果變數pinRead等於1
7號腳位輸出高電位
}
否則
7號腳位輸出低電位
}
}
注意事項:
若繼電器瘋狂的開關(不停的發出搭搭聲),可以在輸出高電位後進行短暫的等待來解決問題。