Search Code

Ардуино код за 4-на-16 канален 5V реле модул

Ардуино код за 4-на-16 канален 5V реле модул

Во ова упатство, ќе научиме како да контролираме модул со 4 релеи користејќи Arduino. Ова ќе ви овозможи безбедно и ефикасно да управувате со AC оптоварувања како светла, вентилатори или грејачи. Дадениот код може да се прилагоди за модули со повеќе канали, што го прави разновиден за различни апликации.

Пред да навлеземе во деталите, важно е да ги разбереме компонентите вклучени во овој проект. Модулот со релеи служи како прекинувач кој може да контролира уреди со висок напон, додека е контролиран од сигнали со низок напон од Arduino. Секое реле може да биде или нормално отворено или нормално затворено, што овозможува флексибилност во начинот на работа на поврзаните уреди. Ве молиме погледнете го видеото за визуелно водство (во видеото на 02:15).

Објаснување на хардверот

Главните компоненти на овој проект ја вклучуваат плочката Arduino и модулот со релеи. Arduino делува како контролер, испраќајќи сигнали до модулот со релеи врз основа на кодот што го пишуваме. Модулот со релеи содржи повеќе релеи кои можат да вклучуваат и исклучуваат AC оптоварувања. Секое реле има три терминали: нормално затворен (NC), нормално отворен (NO) и заеднички терминал (COM).

Кога релето е активирано, заедничкиот терминал се поврзува со нормално отворениот терминал, овозможувајќи струја да тече низ оптоварувањето. Ова е реле со низок тригер, што значи дека се активира кога добива сигнал со низок напон (0V) и се деактивира со сигнал со висок напон (5V). Разбирањето на овој механизам е клучно за безбедно контролирање на AC уредите.

Детали од техничката документација

ПроизводителГенерички
Број на делМодул со 4 релеи
Логички/IO напон5 V
Напон на напојување5 V
Излезна струја (по канал)Макс. 10 A
Врвна струја (по канал)15 A
Водство за PWM фреквенцијаН/П
Прагови на влезна логикаНиско: 0 V; Високо: 5 V
Пад на напон / RDS(on) / заситувањеН/П
Термички граници85 °C
ПакетСтандарден модул со релеи
Белешки / варијантиДостапен во варијанти со 2, 4, 8 и 16 канали

  • Осигурете се дека номиналната струја на релето не е надмината за да се спречи оштетување.
  • Користете одделни напојувања за апликации со висока струја за да го изолирате Arduino.
  • Одржувајте соодветно расејување на топлина за релеите за време на работа.
  • Внимателно проверете го жичањето за да избегнете кратки споеви.
  • Користете опто-изолатори ако е потребно за дополнителна заштита.

Инструкции за жичање

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

За да го поврзете модулот со релеи на вашиот Arduino, започнете со поврзување на пин за заземјување на модулот со релеи со пин за заземјување на Arduino. Потоа, поврзете го VCC пинот на модулот со релеи со 5V пинот на Arduino. За контролните пинови, поврзете ги IN1, IN2, IN3 и IN4 пиновите на модулот со релеи со дигиталните пинови 2, 3, 4 и 5 на Arduino, соодветно. Оваа поставка му овозможува на Arduino да ја контролира состојбата на секое реле.

Осигурете се дека модулот со релеи е поставен на изолирана површина, бидејќи работи со AC оптоварувања. Ако користите надворешно напојување за релеите, поврзете го неговото заземјување со заземјувањето на Arduino за да обезбедите заедничка референца. Ова е клучно за правилна работа и безбедност.

Примери на код и објаснување

Следниот фрагмент од код го иницијализира бројот на релеи и ги поставува контролните пинови:

int ch = 4; // број на релеи што ги имате
int relay[]={2,3,4,5}; // броеви на Arduino пинови за релеите

Ова го дефинира бројот на релеи и нивните соодветни врски со Arduino пиновите. Низата relay ги содржи броевите на пиновите што се користат за контролирање на секое реле.

Wirig relay module to AC load

Следно, ги поставуваме пиновите во функцијата setup():

void setup() {
    Serial.begin(9600); // подготвување на Serial монитор
    for(i=0; i < ch; i++) {
        pinMode(relay[i], OUTPUT); // постави i-тиот пин како излез
        digitalWrite(relay[i], HIGH); // Исклучи го релето  
    }
    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); // Вклучи го релето    
        delay(wait);  
    }
    for(int i=0; i < ch; i++) {
        Serial.print("Relay "); Serial.print(i+1); Serial.println(" OFF");
        digitalWrite(relay[i], HIGH); // Исклучи го релето    
        delay(wait);  
    }
    Serial.println("====== loop done ==");
}

Оваа јамка прво ги вклучува релеите едно по едно, чека одредено време, а потоа ги исклучува во истата секвенца. Серискиот излез помага да се следи статусот на релеите во реално време.

Демонстрација / Што да очекувате

Кога ќе ја стартувате програмата, треба да видите како релеите се активираат во секвенца, вклучувајќи се и исклучувајќи се на секои две секунди. Ако сè е правилно поврзано, AC оптоварувањата поврзани со релеите ќе реагираат соодветно. Бидете внимателни со струјата што ја црпи Arduino; ако премногу релеи се активираат истовремено, може да ја надмине капацитетот на плочката (во видеото на 13:45).

Временски ознаки на видеото

  • 00:00 Вовед
  • 02:15 Објаснување на хардверот
  • 05:30 Инструкции за поврзување
  • 08:45 Преглед на кодот
  • 13:45 Демонстрација

Images

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

Things you might need

Resources & references

No resources yet.

Files📁

Fritzing File