2021年4月12日 星期一

認識繼電器 (Relay)

了解繼電器 (Relay)

繼電器(Relay)是一種電子控制器件,它具有控制系統和被控制系統,通常應用於自動控制電路中,是用較小的電流去控制較大電流的一種「自動開關」,在電路中起著自動調節、安全保護、轉換電路等作用。所以我們可以利用 Arduino + ESP8266 控制繼電器,就可以非常簡單的做出利用網頁控制的智慧插座或自動開關。。

典型的繼電器結構原理圖如下:

繼電器有一個輸入迴路,一般接低壓電源,有一個輸出迴路,一般接高壓電源。輸入迴路中有一個電磁鐵線圈,當輸入迴路有電流通過,電磁鐵產生磁力,吸力使輸出迴路的觸點接通,則輸出迴路導電(通)。當輸入迴路無電流通過,電磁鐵失去磁力,輸出迴路的觸點彈回原位,斷開,則輸出迴路斷電(斷)。

由於輸入迴路與輸出迴路沒有接線關係,因此繼電器具有隔離功能。按繼電器的工作原理或結構特徵,繼電器分爲電磁繼電器、固體繼電器、光繼電器等幾類

作爲控制元件,概括起來,繼電器有如下幾種作用:

  1. 擴大控制範圍:例如,多觸點繼電器控制信號達到某一定值時,可以按觸點組的不同形式,同時換接、開斷、接通多路電路。
  2. 放大:例如,靈敏型繼電器、中間繼電器等,用一個很微小的控制量,可以控制很大功率的電路。
  3. 綜合信號:例如,當多個控制信號按規定的形式輸入多繞組繼電器時,經過比較綜合,達到預定的控制效果。
  4. 自動、遙控、監測:例如,自動裝置上的繼電器與其他電器一起,可以組成程序控制線路,從而實現自動化運行。

一個具體的應用例子,比如:用單片機去打開或關閉一個電壓220V的電燈,由於單片機工作在 5V,而電燈是 220V,因此需要由單片機控制一個繼電器,通過控制這個繼電器充當電燈的開關。

繼電器的輸出迴路一般有三個觸點,中間的觸點是動觸點(公共端),其它兩個觸點是靜觸點。

輸入迴路不通電時,動觸點(公共端)總是和一個靜觸點斷開(稱爲常開),與另一個靜觸點閉合(稱爲常閉)輸入迴路通電後,原來閉合的成斷開狀態。即:動觸點(公共端)與和常開觸點閉合,與常閉觸點斷開。

繼電器模塊實驗-使用繼電器模塊
  1. 繼電器模塊:在網上買到繼電器模塊,如上圖

    圖模塊下方有三個管腳,構成輸入迴路,其中(圖中右側)標註 'GND' 的管腳接地 (GND), 標註 'VCC' 的管腳接 5V, (圖中左側)標註 'IN' 的管腳接信號 (數字I/O)。模塊上方是一個繼電器輸出迴路,繼電器有三個接線口,常閉、常開、公共端。

    繼電器的型號是: SRD-05VDC-SLC-C,說明輸入電壓爲直流 5V,看繼電器上的標註:輸出爲10A 250VAC(即: 支持最高250V交流電壓,10A電流),或 10A 30VDC(即: 支持最高30V直流電壓,10A電流)。

  2. 接線:

    用三根杜邦線把繼電器模塊的三個管腳接到開發板上,其中 'GND' 腳接 Arduino 板子上的 GND,'VCC' 腳接 Arduino 的 5V,IN 腳接 D3。

  3. 在 Arduino IDE 中的程式碼:
    int pinRelay = 3; // 管腳 D3 連接到繼電器模塊的信號腳
          
    void setup()
    {
       pinMode(pinRelay, OUTPUT); // 設置 pinRelay 腳爲輸出狀態
    }
    
    void loop()
    { 
       digitalWrite(pinRelay,HIGH); // 輸出 HIGH 電平,繼電器模塊閉合
       delay(5000); // 等待 5000 毫秒
    
       digitalWrite(pinRelay, LOW); // 輸出 LOW 電平,繼電器模塊斷開
       delay(8000); //-等待 8000 毫秒
    }
繼電器模塊實驗-使用繼電器元器件(自已搭電路)
  1. 準備元器件和器材
    (a) 繼電器(型號 鬆樂SRD-05VDC-SL-C) 一個
    (b) 麪包板一塊
    (c) PNP 型三極管 (型號8550) 一個
    (d) 二極管一個
    (e) 1K 電阻一個
    (f) 杜邦線若干
  2. 瞭解繼電器元器件
    繼電器 SRD-05VDC-SL-C 正面標註了它的型號、電壓及其他相關資訊。
    繼電器底面有5個管腳, 標註了 內部接線, 各腳含義如下:
    接在線圈兩端的是兩個輸入腳。公共端、常開端、常閉端是三個輸出腳。「公共端」與「常開端」組成「常開開關」,「公共端」與「常閉端」組成「常閉開關」。當線圈兩端兩個輸入端加一個 5V 電壓,則「公共端」與「常開端」閉合,「公共端」與「常閉端」斷開。
  3. 繼電器驅動電路原理圖
    繼電器元件需要通過一個驅動電路接在單片機上。典型的驅動電路原理圖如下:

    上述電路中用一個 PNP 型三極管做爲控制開關, 圖中 Relay 是繼電器
    三極管 C 極接 GND,E 極接繼電器的線圈一端(輸入端),三極管的 B 極通過一隻 1K-2K 的電阻到單片機的 GPIO 腳。繼電器線圈另一端接 VCC。繼電器線圈兩個輸入端之間要反向並聯一個二極管,這個二極管的作用是過濾掉線圈充放電過程中產生的反向電流。

    該電路中三極管相當於一個開關, 運行原理如下:
    (1). 當 GPIO 輸出高電平,三極 B 極與 E 極間沒有電壓差,三極管 E 極與 C 極間不通,繼電器沒有電流通過。
    (2). 當 GPIO 輸出低電平,三極 B 極與 E 極間形成電壓差,三極管 E 極與 C 極之間導通,電流通過繼電器線圈兩個輸入端,繼電器閉合。

  4. 三極管型號與接腳說明:
    三極管型號爲 8550, 其引腳如下圖:
    1 腳 = E(發射極,電路圖中帶箭頭的那個)
    2 腳 = B(基極,電路圖中跟 R 相接的那個)
    3 腳 = C(集電極,與 E 相對的那個)
    二極管兩個腳有正負極之分,有一個小環的那個腳爲負極
  5. 用麪包板接線
    把三極管, 繼電器, 二極管, 電阻插入麪包板, 按上述電路原理圖,用杜邦線接線, 接線如下圖:
  6. 在 Arduino IDE 中的程式碼:
    int pinRelay = 3; // 管腳 D3 連接到繼電器模塊的信號腳
    
    void setup()
    {
       pinMode(pinRelay, OUTPUT); // 設置 pinRelay 腳爲輸出狀態
    }
    
    void loop()
    { 
       digitalWrite(pinRelay, HIGH); // 輸出 HIGH 電平,繼電器模塊閉合
       delay(5000); // 等待 5000 毫秒
    
       digitalWrite(pinRelay, LOW); // 輸出 LOW 電平,繼電器模塊斷開
       delay(8000); // 等待 8000 毫秒
    }