Soek Kode

Arduino-kode vir 'n 4-tot-16 kanaal 5V-relaismodule

Arduino-kode vir 'n 4-tot-16 kanaal 5V-relaismodule

In hierdie tutoriaal sal ons leer hoe om 'n 4-kanaal aflosmodule met 'n Arduino te beheer. Dit sal jou toelaat om WS-laste soos ligte, waaiers of verhitters veilig en doeltreffend te bestuur. Die verskafde kode kan aangepas word vir modules met meer kanale, wat dit veelsydig maak vir verskeie toepassings.

Voordat ons in die besonderhede duik, is dit noodsaaklik om die komponente wat in hierdie projek betrokke is, te verstaan. Die aflosmodule dien as 'n skakelaar wat hoëspanningtoestelle kan beheer terwyl dit deur laespanningseine van die Arduino beheer word. Elke aflos kan óf normaalweg oop óf normaalweg gesluit wees, wat buigsaamheid bied in hoe die gekoppelde toestelle werk. Verwys asseblief na die video vir visuele leiding (in video by 02:15).

Hardeware Verduidelik

Die hoofkomponente van hierdie projek sluit die Arduino-bord en die aflosmodule in. Die Arduino dien as die beheerder, wat seine na die aflosmodule stuur op grond van die kode wat ons skryf. Die aflosmodule bevat verskeie aflosse wat WS-laste aan en af kan skakel. Elke aflos het drie terminale: normaalweg gesluit (NC), normaalweg oop (NO), en 'n gemeenskaplike terminaal (COM).

Wanneer die aflos geaktiveer word, verbind die gemeenskaplike terminaal met die normaalweg oop terminaal, wat stroom deur die las laat vloei. Dit is 'n lae-trigger aflos, wat beteken dit aktiveer wanneer dit 'n laespanningsein (0V) ontvang en deaktiveer met 'n hoëspanningsein (5V). Om hierdie meganisme te verstaan is noodsaaklik vir die veilige beheer van WS-toestelle.

Datablad Besonderhede

VervaardigerGeneries
Deelnommer4-kanaal aflosmodule
Logika/IO-spanning5 V
Toevoerspanning5 V
Uitsetstroom (per kanaal)10 A maks
Piekstroom (per kanaal)15 A
PWM-frekwensie leidingN/A
Inset logika drempelsLaag: 0 V; Hoog: 5 V
Spanningval / RDS(on) / versadigingN/A
Termiese limiete85 °C
PakketStandaard aflosmodule
Notas / varianteBeskikbaar in 2, 4, 8, en 16 kanaal variante

  • Verseker dat die aflos se stroomgradering nie oorskry word nie om skade te voorkom.
  • Gebruik aparte kragbronne vir hoëstroomtoepassings om die Arduino te isoleer.
  • Handhaaf behoorlike hitte-afvoer vir die aflosse tydens werking.
  • Kontroleer die bedrading versigtig om kortsluitings te vermy.
  • Gebruik opto-isoleerders indien nodig vir bykomende beskerming.

Bedradingsinstruksies

Om die aflosmodule aan jou Arduino te bedraad, begin deur die grondpen van die aflosmodule aan die grondpen op die Arduino te koppel. Volgende, koppel die VCC-pen op die aflosmodule aan die 5V-pen op die Arduino. Vir die beheerpenne, koppel die IN1-, IN2-, IN3-, en IN4-penne van die aflosmodule aan digitale penne 2, 3, 4, en 5 op die Arduino, onderskeidelik. Hierdie opstelling laat die Arduino toe om die toestand van elke aflos te beheer.

Maak seker dat jy die aflosmodule op 'n geïsoleerde oppervlak plaas, aangesien dit met WS-laste werk. As jy 'n eksterne kragbron vir die aflosse gebruik, koppel sy grond aan die Arduino-grond om 'n gemeenskaplike verwysing te verseker. Dit is noodsaaklik vir behoorlike werking en veiligheid.

Kode Voorbeelde & Deurloop

Die volgende kodefragment initialiseer die aantal aflosse en stel die beheerpenne:

int ch = 4; // aantal aflosse wat jy het
int relay[]={2,3,4,5}; // Arduino-pennommers vir aflosse

Dit definieer die aantal aflosse en hul ooreenstemmende Arduino-penverbindings. Die skikking relay hou die pennommers wat gebruik word om elke aflos te beheer.

Volgende, stel ons die penne op in die setup()-funksie:

Wirig relay module to AC load
void setup() {
    Serial.begin(9600); // berei Serial monitor voor
    for(i=0; i < ch; i++) {
        pinMode(relay[i], OUTPUT); // stel i(de) pen as uitset
        digitalWrite(relay[i], HIGH); // Skakel die aflos AF  
    }
    Serial.println("Robojax 4 Aflos Toets");
}

Hierdie kode initialiseer die serial monitor en stel elke aflos-pen as 'n uitset, en skakel hulle by verstek af. Die serial-drukstaat bevestig dat die opstelling voltooi is.

Die hoof lus van die program beheer die aflosse:

void loop() {
    for(int i=0; i < ch; i++) {
        Serial.print("Aflos "); Serial.print(i+1); Serial.println(" AAN");
        digitalWrite(relay[i], LOW); // Skakel die aflos AAN    
        delay(wait);  
    }
    for(int i=0; i < ch; i++) {
        Serial.print("Aflos "); Serial.print(i+1); Serial.println(" AF");
        digitalWrite(relay[i], HIGH); // Skakel die aflos AF    
        delay(wait);  
    }
    Serial.println("====== lus klaar ==");
}

Hierdie lus skakel eers elke aflos een vir een aan, wag vir 'n gespesifiseerde tyd, en skakel hulle dan af in dieselfde volgorde. Die serial-uitset help om die aflosstatus intyds te monitor.

Demonstrasie / Wat om te Verwags

Wanneer jy die program hardloop, behoort jy die aflosse in volgorde te sien aktiveer, wat elke twee sekondes aan en af skakel. As alles korrek bedraad is, sal die WS-laste wat aan die aflosse gekoppel is, dienooreenkomstig reageer. Wees versigtig met die stroomtrekking van die Arduino; as te veel aflosse gelyktydig geaktiveer word, kan dit die bord se kapasiteit oorskry (in video by 13:45).

Video Tydstempels

  • 00:00 Inleiding
  • 02:15 Hardeware Verduideliking
  • 05:30 Bedrading Instruksies
  • 08:45 Kode Deurloop
  • 13:45 Demonstrasie

Beelde

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.
Taal: 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.
Taal: 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

Goedere wat jy dalk nodig het

Hulpbronne en verwysings

Geen hulpbronne nog.

Lêers📁

Fritzing-lêer