Search Code

Arduino 代碼同影片:用固態繼電器控制 AC 燈膽或負載

Arduino 代碼同影片:用固態繼電器控制 AC 燈膽或負載

喺呢個教學入面,我哋會探討點樣用固態繼電器(SSR)去控制一個交流或直流負載,好似燈膽咁。固態繼電器容許用Arduino嘅低電壓訊號,安全同有效率咁切換電氣負載。完成呢個教學之後,你就會有一個可以喺指定時間間隔開關盞燈嘅工作設定。

single channel solid state relay

為咗實現呢個項目,我哋會用一個SSR,特別係G3MB-202P型號,佢可以處理高達2A嘅負載。繼電器會由Arduino板嘅一個數碼引腳控制,等我哋可以發送一個訊號去開或關個負載。呢個項目唔單止實用,仲係一個好好嘅入門,去認識繼電器同Arduino嘅運作。

如果想睇詳細嘅視覺解釋,記得睇埋附帶嘅影片(影片喺00:00)。

硬件解釋

喺呢個項目入面,主要元件係G3MB-202P固態繼電器。呢個繼電器容許你用低電壓訊號去控制一個高電壓負載。佢用光耦合器去切換負載電路,喺控制邊同負載邊之間提供電氣隔離。繼電器有三個引腳:DC+、DC-,同埋輸入通道,後者連接去Arduino。

當輸入訊號係低(0V)嘅時候,繼電器會啟動,容許電流流過負載。相反,當輸入訊號係高(5V)嘅時候,繼電器會關閉,切斷去負載嘅電流。呢個低電平觸發機制對於安全咁管理高電壓設備好重要,唔需要直接電氣接觸。

數據手冊細節

製造商Omron
零件編號G3MB-202P
邏輯/IO電壓5 V
供電電壓5–24 V
輸出電流(每通道)2 A
峰值電流(每通道)4 A
PWM頻率指引最高1 kHz
輸入邏輯閾值低:0–1.5 V,高:3–30 V
電壓降 / RDS(on) / 飽和最高1.5 V
熱限制–30至100 °C
封裝通孔
備註 / 變體有多種輸入電壓額定值可供選擇

  • 確保繼電器嘅額定值適合你想控制嘅負載。
  • 如果接近最大電流額定值操作,要用適當嘅散熱器。
  • 再三檢查接線,避免極性接反嘅問題。
  • 喺電源線上用去耦電容。
  • 小心浮空輸入;確保控制訊號正確接地。
  • 確認PWM頻率喺繼電器規格範圍內,先至用嚟做切換應用。

接線指示

Arduino wiring for single channel solid state relay
Arduino wiring for single channel solid state relay

接駁固態繼電器好直接。將繼電器嘅正極端子(DC+)連接去Arduino嘅5V引腳。負極端子(DC-)應該連接去Arduino嘅地線(GND)。控制繼電器嘅輸入引腳就連接去Arduino嘅數碼引腳8。呢個引腳會發送低或高訊號去啟動或停用繼電器。

喺負載邊,將交流燈膽嘅一條線連接去繼電器輸出端子,另一條線連接去交流電源。確保用合適嘅連接器,同埋所有連接都穩固,以防任何電氣危險。

程式碼示例同講解

以下係控制固態繼電器嘅Arduino程式碼簡介:

int relayPin = 8; // 設定引腳8做繼電器輸出

void setup() {
    Serial.begin(9600); // 初始化串行通訊
    pinMode(relayPin, OUTPUT); // 設定繼電器引腳做輸出
}

喺呢段節錄入面,我哋定義relayPin做8,對應連接去繼電器嘅數碼引腳。setup()函數初始化串行通訊,並將繼電器引腳設定做輸出。

void loop() {
    digitalWrite(relayPin, LOW); // 開啟繼電器
    Serial.println("Relay ON"); // 輸出到串行監視器
    delay(2000); // 等2秒
}

loop()函數入面,我哋將relayPin設定做LOW嚟開啟繼電器,咁就會啟動繼電器,容許電流流去負載。會印一個訊息去串行監視器做確認。

    digitalWrite(relayPin, HIGH); // 關閉繼電器
    Serial.println("Relay OFF"); // 輸出到串行監視器
    delay(2000); // 等2秒
}

跟住,我哋將relayPin設定做HIGH嚟關閉繼電器,咁就會切斷去負載嘅電流。我哋又會印一個訊息去串行監視器,表示繼電器狀態。呢個過程會無限重複,每隔兩秒開關繼電器一次。

想睇完整嘅Arduino程式碼,請睇文章下面載入嘅完整程式碼。

示範 / 預期效果

當程式碼上傳去Arduino之後,你應該會見到繼電器開關,將連接嘅燈膽每隔兩秒開關一次。如果繼電器冇正常運作,檢查接線連接,確保繼電器收到正確嘅控制訊號。常見問題包括負載邊極性接反,或者Arduino上嘅連接唔正確。

想進一步視覺確認繼電器運作,可以參考影片(影片喺06:00),入面會見到燈膽隨住繼電器啟動而開關。

影片時間戳

  • 00:00 - 項目介紹
  • 01:30 - 硬件設置
  • 03:15 - 代碼解釋
  • 05:45 - 現場演示
  • 07:00 - 總結

圖片

single channel solid state relay
single channel solid state relay
single channel solid state relay
single channel solid state relay
Arduino wiring for single channel solid state relay
Arduino wiring for single channel solid state relay
59-This is the Arduino code for a 5V solid-state relay.
語言: C++
/*
 * This is the Arduino code for a Solid State Relay
 * to control turning ON or OFF an AC or DC load
 * Watch the video https://youtu.be/64NatLeGsaE
 *  * 
 * Written by Ahmad Shamshiri for Robojax Video
 * Date: January 13, 2018, in Ajax, Ontario, Canada
 * Permission granted to share this code given that this
 * note is kept with the code.
 * Disclaimer: this code is "AS IS" and for educational purposes only.
 * 
 */


 // Introduction to a 5v Solid State relay.
int relayPin = 8;// set pin 8 for relay output

// setup code for Robojax Solid State Relay
void setup() {
    // initialize serial communication at 9600 bits per second:
  Serial.begin(9600);
  Serial.println("Robojax Solid State Relay");
  pinMode(relayPin, OUTPUT);

}

// loop code for Robojax Solid State Relay
void loop() {

  // Turn the relay switch ON (Robojax.com/learn/arduino)
  digitalWrite(relayPin, LOW);// set relay pin to low 
  Serial.println("Relay ON");
  delay(2000);

   // Turn the relay switch OFF (Robojax.com/learn/arduino)
  digitalWrite(relayPin, HIGH);// set relay pin to HIGH
  Serial.println("Relay OFF");
  delay(2000);
}

資源與參考資料

暫時冇資源。

文件📁

Fritzing 文件