Kod Arduino dla modułu przekaźnikowego 4-do-16 kanałów 5V
W tym samouczku nauczymy się, jak sterować modułem przekaźnika 4-kanałowego za pomocą Arduino. Pozwoli Ci to bezpiecznie i skutecznie zarządzać obciążeniami prądu przemiennego, takimi jak światła, wentylatory czy grzejniki. Dostarczony kod można dostosować do modułów z większą liczbą kanałów, co czyni go uniwersalnym dla różnych zastosowań.
Zanim przejdziemy do szczegółów, ważne jest zrozumienie elementów zaangażowanych w ten projekt. Moduł przekaźnika działa jak przełącznik, który może sterować urządzeniami wysokiego napięcia, będąc jednocześnie sterowanym sygnałami niskiego napięcia z Arduino. Każdy przekaźnik może być normalnie otwarty lub normalnie zamknięty, co pozwala na elastyczność w sposobie działania podłączonych urządzeń. Zapoznaj się z filmem w celu uzyskania wskazówek wizualnych (na filmie o 02:15).
Wyjaśnienie Sprzętu
Główne elementy tego projektu obejmują płytkę Arduino i moduł przekaźnika. Arduino działa jako kontroler, wysyłając sygnały do modułu przekaźnika na podstawie napisanego przez nas kodu. Moduł przekaźnika zawiera wiele przekaźników, które mogą włączać i wyłączać obciążenia prądu przemiennego. Każdy przekaźnik ma trzy zaciski: normalnie zamknięty (NC), normalnie otwarty (NO) oraz wspólny zacisk (COM).
Gdy przekaźnik jest aktywowany, wspólny zacisk łączy się z zaciskiem normalnie otwartym, umożliwiając przepływ prądu przez obciążenie. Jest to przekaźnik wyzwalany niskim stanem, co oznacza, że aktywuje się, gdy otrzyma sygnał niskiego napięcia (0V), a dezaktywuje się przy sygnale wysokiego napięcia (5V). Zrozumienie tego mechanizmu jest kluczowe dla bezpiecznego sterowania urządzeniami prądu przemiennego.
Szczegóły z Karty Katalogowej
| Producent | Generic |
|---|---|
| Numer części | Moduł przekaźnika 4-kanałowego |
| Napięcie logiki/IO | 5 V |
| Napięcie zasilania | 5 V |
| Prąd wyjściowy (na kanał) | Maks. 10 A |
| Prąd szczytowy (na kanał) | 15 A |
| Zalecenia dotyczące częstotliwości PWM | Nie dotyczy |
| Progi logiczne wejścia | Niski: 0 V; Wysoki: 5 V |
| Spadek napięcia / RDS(on) / nasycenie | Nie dotyczy |
| Limity termiczne | 85 °C |
| Obudowa | Standardowy moduł przekaźnika |
| Uwagi / warianty | Dostępny w wariantach 2, 4, 8 i 16 kanałowych |
- Upewnij się, że wartość prądu przekaźnika nie jest przekroczona, aby zapobiec uszkodzeniom.
- Używaj oddzielnych zasilaczy do zastosowań o wysokim prądzie, aby odizolować Arduino.
- Zapewnij odpowiednie odprowadzanie ciepła z przekaźników podczas pracy.
- Dokładnie sprawdź okablowanie, aby uniknąć zwarć.
- W razie potrzeby użyj izolatorów optycznych dla dodatkowej ochrony.
Instrukcje Okablowania

Aby podłączyć moduł przekaźnika do Arduino, zacznij od połączenia pinu masy modułu przekaźnika z pinem masy na Arduino. Następnie podłącz pin VCC na module przekaźnika do pinu 5V na Arduino. Dla pinów sterujących podłącz piny IN1, IN2, IN3 i IN4 modułu przekaźnika odpowiednio do pinów cyfrowych 2, 3, 4 i 5 na Arduino. Ta konfiguracja pozwala Arduino kontrolować stan każdego przekaźnika.
Upewnij się, że moduł przekaźnika jest umieszczony na izolowanej powierzchni, ponieważ ma do czynienia z obciążeniami prądu przemiennego. Jeśli używasz zewnętrznego zasilacza dla przekaźników, podłącz jego masę do masy Arduino, aby zapewnić wspólne odniesienie. Jest to kluczowe dla prawidłowego działania i bezpieczeństwa.
Przykłady Kodu i Omówienie
Poniższy fragment kodu inicjalizuje liczbę przekaźników i ustawia piny sterujące:
int ch = 4; // liczba posiadanych przekaźników
int relay[]={2,3,4,5}; // numery pinów Arduino dla przekaźników
To definiuje liczbę przekaźników i ich odpowiednie połączenia z pinami Arduino. Tablica relay przechowuje numery pinów używanych do sterowania każdym przekaźnikiem.

Następnie konfigurujemy piny w funkcji setup():
void setup() {
Serial.begin(9600); // przygotowanie monitora szeregowego
for(i=0; i < ch; i++) {
pinMode(relay[i], OUTPUT); // ustawienie i-tego pinu jako wyjście
digitalWrite(relay[i], HIGH); // Wyłączenie przekaźnika
}
Serial.println("Robojax 4 Relay Test");
}
Ten kod inicjalizuje monitor szeregowy i ustawia każdy pin przekaźnika jako wyjście, wyłączając je domyślnie. Instrukcja serial print potwierdza, że konfiguracja jest zakończona.
Główna pętla programu steruje przekaźnikami:
void loop() {
for(int i=0; i < ch; i++) {
Serial.print("Relay "); Serial.print(i+1); Serial.println(" ON");
digitalWrite(relay[i], LOW); // Włączenie przekaźnika
delay(wait);
}
for(int i=0; i < ch; i++) {
Serial.print("Relay "); Serial.print(i+1); Serial.println(" OFF");
digitalWrite(relay[i], HIGH); // Wyłączenie przekaźnika
delay(wait);
}
Serial.println("====== loop done ==");
}
Ta pętla najpierw włącza każdy przekaźnik jeden po drugim, czeka przez określony czas, a następnie wyłącza je w tej samej kolejności. Wyjście szeregowe pomaga monitorować stan przekaźników w czasie rzeczywistym.
Demonstracja / Czego się spodziewać
Po uruchomieniu programu powinieneś zobaczyć, jak przekaźniki aktywują się sekwencyjnie, włączając się i wyłączając co dwie sekundy. Jeśli wszystko jest poprawnie podłączone, obciążenia AC podłączone do przekaźników będą odpowiednio reagować. Zachowaj ostrożność co do poboru prądu z Arduino; jeśli zbyt wiele przekaźników zostanie aktywowanych jednocześnie, może to przekroczyć wydajność płyty (w filmie o 13:45).
Znaczniki czasu wideo
- 00:00 Wprowadzenie
- 02:15 Wyjaśnienie sprzętu
- 05:30 Instrukcje podłączania
- 08:45 Omówienie kodu
- 13:45 Demonstracja
++
/*
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
Rzeczy, których możesz potrzebować
-
Amazon
-
AliExpressPurchase 5v 12v 1 2 4 6 8 channel channel relay moduls.click.aliexpress.com
Zasoby i odniesienia
Brak zasobów.
Pliki📁
Plik Fritzing
-
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