Caută cod

Cod Arduino pentru un modul de releu cu 4 până la 16 canale, 5V

Cod Arduino pentru un modul de releu cu 4 până la 16 canale, 5V

În acest tutorial, vom învăța cum să controlăm un modul de releu cu 4 canale folosind un Arduino. Acest lucru vă va permite să gestionați sarcini de curent alternativ, cum ar fi lumini, ventilatoare sau încălzitoare, în siguranță și eficient. Codul furnizat poate fi adaptat pentru module cu mai multe canale, fiind versatil pentru diverse aplicații.

Înainte de a intra în detalii, este esențial să înțelegem componentele implicate în acest proiect. Modulul de releu funcționează ca un comutator care poate controla dispozitive de înaltă tensiune, fiind controlat de semnale de joasă tensiune de la Arduino. Fiecare releu poate fi normal deschis sau normal închis, permițând flexibilitate în modul de funcționare al dispozitivelor conectate. Vă rugăm să consultați videoclipul pentru îndrumare vizuală (în videoclip la 02:15).

Hardware Explicat

Componentele principale ale acestui proiect includ placa Arduino și modulul de releu. Arduino acționează ca controler, trimițând semnale către modulul de releu pe baza codului pe care îl scriem. Modulul de releu conține mai multe relee care pot comuta sarcini de curent alternativ pornit/oprit. Fiecare releu are trei terminale: normal închis (NC), normal deschis (NO) și un terminal comun (COM).

Când releul este activat, terminalul comun se conectează la terminalul normal deschis, permițând curentului să circule prin sarcină. Acesta este un releu cu declanșare pe nivel logic scăzut, ceea ce înseamnă că se activează când primește un semnal de joasă tensiune (0V) și se dezactivează cu un semnal de înaltă tensiune (5V). Înțelegerea acestui mecanism este crucială pentru controlul sigur al dispozitivelor de curent alternativ.

Detalii din Fișa Tehnică

ProducătorGeneric
Număr de piesăModul de releu cu 4 canale
Tensiune logică/IO5 V
Tensiune de alimentare5 V
Curent de ieșire (pe canal)10 A max
Curent de vârf (pe canal)15 A
Ghid frecvență PWMN/A
Praguri logice de intrareScăzut: 0 V; Ridicat: 5 V
Cădere de tensiune / RDS(on) / saturațieN/A
Limite termice85 °C
PachetModul de releu standard
Note / varianteDisponibil în variante cu 2, 4, 8 și 16 canale

  • Asigurați-vă că ratingul de curent al releului nu este depășit pentru a preveni deteriorarea.
  • Utilizați surse de alimentare separate pentru aplicații cu curent ridicat pentru a izola Arduino.
  • Mențineți o disipare adecvată a căldurii pentru relee în timpul funcționării.
  • Verificați cu atenție cablajul pentru a evita scurtcircuitele.
  • Utilizați opto-izoalatoare dacă este necesar pentru protecție suplimentară.

Instrucțiuni de Cablare

Arduino wirign for 4 channel relay to control 4 AC load
Arduino wirign for 4 channel relay to control 4 AC load

Pentru a conecta modulul de releu la Arduino, începeți prin conectarea pinului de împământare al modulului de releu la pinul de împământare de pe Arduino. Apoi, conectați pinul VCC al modulului de releu la pinul de 5V de pe Arduino. Pentru pinii de control, conectați pinii IN1, IN2, IN3 și IN4 ai modulului de releu la pinii digitali 2, 3, 4 și 5 de pe Arduino, respectiv. Această configurare permite Arduino să controleze starea fiecărui releu.

Asigurați-vă că poziționați modulul de releu pe o suprafață izolată, deoarece acesta gestionează sarcini de curent alternativ. Dacă utilizați o sursă de alimentare externă pentru relee, conectați împământarea acesteia la împământarea Arduino pentru a asigura o referință comună. Acest lucru este crucial pentru funcționarea corectă și siguranță.

Exemple de Cod și Explicații

Fragmentul de cod următor inițializează numărul de relee și setează pinii de control:

int ch = 4; // numărul de relee pe care le aveți
int relay[]={2,3,4,5}; // numerele pinilor Arduino pentru relee

Acest lucru definește numărul de relee și conexiunile lor corespunzătoare la pinii Arduino. Matricea relay conține numerele pinilor folosiți pentru a controla fiecare releu.

Wirig relay module to AC load

În continuare, configurăm pinii în funcția setup():

void setup() {
    Serial.begin(9600); // pregătește monitorul serial
    for(i=0; i < ch; i++) {
        pinMode(relay[i], OUTPUT); // setează pinul i ca ieșire
        digitalWrite(relay[i], HIGH); // Oprește releul  
    }
    Serial.println("Robojax 4 Test Releu");
}

Acest cod inițializează monitorul serial și setează fiecare pin de releu ca ieșire, oprindu-le implicit. Declarația serială confirmă că configurarea este completă.

Bucla principală a programului controlează releele:

void loop() {
    for(int i=0; i < ch; i++) {
        Serial.print("Releu "); Serial.print(i+1); Serial.println(" PORNIT");
        digitalWrite(relay[i], LOW); // Pornește releul    
        delay(wait);  
    }
    for(int i=0; i < ch; i++) {
        Serial.print("Releu "); Serial.print(i+1); Serial.println(" OPRIT");
        digitalWrite(relay[i], HIGH); // Oprește releul    
        delay(wait);  
    }
    Serial.println("====== buclă terminată ==");
}

Această buclă pornește mai întâi fiecare releu unul câte unul, așteaptă un timp specificat, apoi le oprește în aceeași secvență. Ieșirea serială ajută la monitorizarea stării releelor în timp real.

Demonstrație / Ce să te aștepți

Când rulezi programul, ar trebui să vezi releele activându-se în secvență, pornind și oprindu-se la fiecare două secunde. Dacă totul este conectat corect, sarcinile de curent alternativ conectate la relee vor răspunde corespunzător. Fii atent la consumul de curent al Arduino; dacă prea multe relee sunt activate simultan, poate depăși capacitatea plăcii (în video la 13:45).

Marcaje Video

  • 00:00 Introducere
  • 02:15 Explicația Hardware
  • 05:30 Instrucțiuni de Cablare
  • 08:45 Parcurgerea Codului
  • 13:45 Demonstrație

Imagini

Wirig relay module to AC load
Wirig relay module to AC load
Arduino wirign for 4 channel relay to control 4 AC load
Arduino wirign for 4 channel relay to control 4 AC load
88-This is code for a 4- to 16-channel 5V relay module for Arduino.
Limba: C++
++
/*
This is code to control 4 to 16 channel 5V relay modules using Arduino.
 * Watch the video on how to use 4 to unlimited relay channels: https://youtu.be/Wbm3MCMgM_s
 
 */
/*
 *  This code was written by Ahmad Shamshiri for Robojax.com.
// Written March 26, 2018, at 12:14 in Ajax, Ontario, Canada.

 *  
 */

int ch = 4;// number of relays you have
int relay[]={2,3,4,5}; // Arduino pin numbers. The same number of relays should be defined here as input pins


int wait = 2000;// delay time
int i=0;

void setup() {
    Serial.begin(9600);// prepare Serial monitor
    // set pins as output
 for(i=0; i < ch; i++)
 {    
    pinMode(relay[i], OUTPUT);// set i(th) pin as output
   digitalWrite(relay[i], HIGH); // Turn the relay OFF  
 }
               
    Serial.println("Robojax 4 Relay Test");
}

void loop() {
    
     
 for(int i=0; i < ch; i++)
 {
      Serial.print("Relay "); Serial.print(i+1);Serial.println(" ON");
      digitalWrite(relay[i], LOW); // Turn the relay ON    
      delay(wait);  
 }// for loop


 for(int i=0; i < ch; i++)
 {
      Serial.print("Relay "); Serial.print(i+1);Serial.println(" OFF");
      digitalWrite(relay[i], HIGH); // Turn the relay OFF    
      delay(wait);  
 }// for loop

    Serial.println("====== loop done ==");

}// loop
89-If you want to replace the loop inside setup(), then use this as shown in the video.
Limba: C++
pinMode(relay[0], OUTPUT);// connected to relay 1
    digitalWrite(relay[0], HIGH); // Turn the relay OFF  


    pinMode(relay[1], OUTPUT);// connected to relay 2
    digitalWrite(relay[1], HIGH); // Turn the relay OFF  

    pinMode(relay[2], OUTPUT);// connected to relay 3
    digitalWrite(relay[2], HIGH); // Turn the relay OFF  

    pinMode(relay[3], OUTPUT);// connected to relay 4
    digitalWrite(relay[3], HIGH); // Turn the relay OFF

Lucruri de care ai putea avea nevoie

Resurse și referințe

Încă nu sunt resurse.

Fișiere📁

Fișier Fritzing