Ардуино код за 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, започнете со поврзување на пин за заземјување на модулот со релеи со пин за заземјување на 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 ги содржи броевите на пиновите што се користат за контролирање на секое реле.

Следно, ги поставуваме пиновите во функцијата 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 Демонстрација
++
/*
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
Things you might need
-
Amazon
-
AliExpressPurchase 5v 12v 1 2 4 6 8 channel channel relay moduls.click.aliexpress.com
Resources & references
No resources yet.
Files📁
Fritzing File
-
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