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
| Vervaardiger | Generies |
|---|---|
| Deelnommer | 4-kanaal aflosmodule |
| Logika/IO-spanning | 5 V |
| Toevoerspanning | 5 V |
| Uitsetstroom (per kanaal) | 10 A maks |
| Piekstroom (per kanaal) | 15 A |
| PWM-frekwensie leiding | N/A |
| Inset logika drempels | Laag: 0 V; Hoog: 5 V |
| Spanningval / RDS(on) / versadiging | N/A |
| Termiese limiete | 85 °C |
| Pakket | Standaard aflosmodule |
| Notas / variante | Beskikbaar 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:

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
++
/*
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
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
-
Amazon
-
AliExpressBuy 5V/12V 1, 2, 4, 6, or 8-channel relay modules.click.aliexpress.com
Hulpbronne en verwysings
Geen hulpbronne nog.
Lêers📁
Fritzing-lêer
-
omron silid state relay SSR module 4 channel
omron-relay-module-4way-1.fzpz0.02 MB -
4-Channel 5v Relay module
4-Channel 5v Relay Shield.fzpz0.02 MB -
omron solid state relay SSR module- 8 channel
omron-relay-module-8way-1.fzpz0.02 MB -
AC Plug Fritzing Part (Robojax.com)
ACPlug_Robojax.com.fzpz