Arduino繼電器模組指南 Post author:honeststore Post published:2021 年 3 月 21 日 Post category:Arduino Post comments:0 Comments 本文介紹如何使用繼電器模組通過Arduino控制電源電壓。我們簡要介紹了繼電器模組,並使用Arduino建立了一個簡單的項目範例。我們將建立一個範例說明如何使用Arduino和PIR物體移動感測器控制繼電器模組。 在本課程結束時,您應該能夠利用繼電器模組使用Arduino控制任何電子設備。 文章目錄標題 繼電器模組介紹繼電器引腳排列電源電壓連接引腳接線範例:使用繼電器模組和PIR物體移動感測器控制燈泡安全警告所需零件程式碼程式碼如何工作原理圖範例總結 繼電器模組介紹 繼電器是一個電動開關,可以打開或關閉,讓電流通過或不通過,並且可以用低電壓進行控制,例如Arduino引腳提供的5V。用Arduino控制繼電器模組就像控制其他任何輸出一樣簡單,稍後我們將看到。 該繼電器模組具有兩個通道(這些藍色立方體)。還有其他型號具有一,四和八個通道。該模組應使用5V供電,適合與Arduino一起使用。還有其他繼電器模塊使用3.3V供電,非常適合ESP32、ESP8266和其他微控制器使用。 繼電器引腳排列 下圖顯示了繼電器模組的引腳排列。 繼電器模塊左側的三個引腳連接高電壓,右側的引腳連接需要低電壓的組件Arduino引腳。 電源電壓連接 高壓側的連接器有三個插座:公共(COM),常閉(NC)和常開(NO)。 COM:公共端。NC(常閉): 當您希望預設情況下關閉繼電器時,將使用常閉配置,這意味著電流正在流動,除非您從Arduino向繼電器模塊發送信號以斷開電路並停止電流。NO(常開): 常開配置的工作方式與常閉相反:繼電器始終處於打開狀態,因此除非您從Arduino發送信號以關閉電路,否則電路會斷開。如果您只是想偶爾點亮一盞燈,最好使用常開電路配置。 引腳接線 低壓側具有一組三個引腳。 右側的設置由VCC和GND組成,為模組供電,s端代表訊息端,可由Arduino引腳訊息控制,這裏我們以它來控制繼電器。GND:接地VCC:電壓5Vsignal:控制繼電器(它將連接到Arduino數字引腳) 範例:使用繼電器模組和PIR物體移動感測器控制燈泡 在此範例中,我們建立了一個移動感應燈。每次檢測到物體移動時,指示燈點亮5秒鐘。將使用PIR移動感測器檢測物體移動。如果您不熟悉PIR移動感測器,則可以閱讀以下文章:結合PIR移動感測器的Arduino為了用電源電壓控制燈,我們將使用常開配置的繼電器模組。 安全警告 警告:在連接到電源電壓的項目時,您確實需要知道自己在做什麼,否則您可能會發生意外。這是一個嚴肅的話題,我們希望您安全。如果您不是100%確定自己在做什麼,請幫自己一個忙,不要碰任何電源電壓的東西,並問一個知道這方面智識的人! 所需零件這是本範例所需的部分:繼電器模組Arduino UNO PIR移動感測器(HC-SR501) 燈線組(可以到居家附近五金行購買) 程式碼 將下面程式碼複製到Arduino IDE,並將其上傳到Arduino開發板。 警告:當您的Arduino連接到繼電器時,您不應上傳新代碼。 /********* Terry Lee 完整程式碼說明,請參閱 http://honeststore.com.tw/blog/arduino-relay-module/ *********/ // 中繼引腳用D8控制。電源線連接到常閉和共同 int relay = 8; volatile byte relayState = LOW; // PIR Motion Sensor is connected to D2. int PIRInterrupt = 2; // Timer Variables long lastDebounceTime = 0; long debounceDelay = 5000; void setup() { // Pin for relay module set as output pinMode(relay, OUTPUT); digitalWrite(relay, HIGH); // PIR motion sensor set as an input pinMode(PIRInterrupt, INPUT); // 如果符合條件,會觸發在上升模式下觸發函數以驅動繼電器 attachInterrupt(digitalPinToInterrupt(PIRInterrupt), detectMotion, RISING); // Serial communication for debugging purposes Serial.begin(9600); } void loop() { // If 10 seconds have passed, the relay is turned off if((millis() - lastDebounceTime) > debounceDelay && relayState == HIGH){ digitalWrite(relay, HIGH); relayState = LOW; Serial.println("OFF"); } delay(50); } void detectMotion() { Serial.println("Motion"); if(relayState == LOW){ digitalWrite(relay, LOW); } relayState = HIGH; Serial.println("ON"); lastDebounceTime = millis(); } 程式碼如何工作首先,我們建立變數來保持繼電器S引腳所連接的引腳並保存繼電器狀態:int relay = 8; volatile byte relayState = LOW;PIR移動感測器連接到 pin 2:int PIRInterrupt = 2;我們需要建立一些輔助變數來使用PIR移動感測器處理計時器。這lastDebounceTime變數保存上次檢測到物體移動的時間。debounceDelay 為在檢測到運動後燈泡應保持點亮的時間(此處我們將設置5秒= 5000毫秒)long lastDebounceTime = 0; long debounceDelay = 10000;在setup()裡面,我們將繼電器設置為OUTPUT並預設將其關閉:pinMode(relay, OUTPUT); digitalWrite(relay, HIGH);因為我們使用的是常開配置,所以除非觸發繼電器,否則COM和NO插座之間沒有接觸。當輸入電壓低於2 V時,繼電器將觸發。這意味著,如果您從Arduino發送LOW信號,則繼電器打開;如果您發送HIGH信號,則繼電器關閉。它與反向邏輯一起工作。將PIR移動感測器設置為中斷:pinMode(PIRInterrupt, INPUT); // Triggers detectMotion function on rising mode to turn the relay on, if the condition is met attachInterrupt(digitalPinToInterrupt(PIRInterrupt), detectMotion, RISING);每當觸發PIR移動感測器時,它都會調用 detectMotion() 在程式碼聲明的函數以打開繼電器:void detectMotion() { Serial.println("Motion"); if(relayState == LOW){ digitalWrite(relay, LOW); } relayState = HIGH; Serial.println("ON"); lastDebounceTime = millis(); }在loop()裡面,我們檢查繼電器打開後是否經過了10秒鐘。如果該條件成立,我們可以關閉繼電器。if((millis() - lastDebounceTime) > debounceDelay && relayState == HIGH){ digitalWrite(relay, HIGH); relayState = LOW; Serial.println("OFF"); } 原理圖 如圖所示組裝所有零件。 警告:請勿觸摸任何與電源電壓相連的電線。另外,請確保已擰緊繼電器模塊的所有螺釘。 燈泡使用常開配置連接到繼電器。Arduino通過控制繼電器 pin 8 (pin 8連接到繼電器s引腳)。最後,將PIR移動感測器連接到 pin 2。 範例 http://honeststore.com.tw/wp-content/uploads/2022/04/pir繼電器模組.mp4 總結 使用Arduino控制繼電器模組就像控制輸出一樣簡單-您只需要使用Arduino數字引腳發送HIGH或LOW信號即可。使用繼電器模組,您可以控制幾乎所有的交流電子設備(不僅是燈)。我們希望本指南對您有所幫助。如果您喜歡這個項目,您可能還喜歡我們的高級Arduino課程:Arduino循序漸進課程:建立25個項目Arduino提供40多個免費教程和項目。如果您正在尋找特定模塊的指南,以下可能會找到您想要的。40多個Arduino項目和教程最後,您還可以在此處訪問我們的免費資源。謝謝閱讀。 相關 Tags: 繼電器模組 Please Share This Share this content Opens in a new window Opens in a new window Opens in a new window Opens in a new window Opens in a new window Opens in a new window Opens in a new window Opens in a new window Opens in a new window Opens in a new window You Might Also Like LED發光二極體及電阻 2022 年 6 月 20 日 Arduino程式控制入門指南 2020 年 7 月 12 日 Arduino範例講解(九) 2020 年 7 月 15 日 發佈留言 取消回覆CommentEnter your name or username to comment Enter your email address to comment Enter your website URL (optional) 在瀏覽器中儲存顯示名稱、電子郵件地址及個人網站網址,以供下次發佈留言時使用。 Δ