16 kanálové relé modul 5V napätie relé pevné
Úvod
Tento projekt sa zaoberá kritickou konštrukčnou chybou, ktorá sa nachádza v mnohých 16-kanálových 5V relé moduloch. Hoci sú tieto moduly predávané ako 5V zariadenia, napäťový regulátor na doske často dodáva regulovaných 5V iba do obvodov optočlenov, zatiaľ čo samotné cievky relé dostávajú plné, neregulované vstupné napätie. Ak modul napájate napätím vyšším ako 5V – napríklad 9V alebo 12V – riskujete poškodenie relé a akýchkoľvek pripojených zariadení.


Táto príručka demonštruje jednoduchú a účinnú hardvérovú opravu, ktorá zabezpečí, že cievky relé vždy dostanú správnych 5V, bez ohľadu na vstupné napätie. Toto je kľúčová úprava pre akýkoľvek projekt, kde je spoľahlivosť dôležitá. Tu je niekoľko praktických aplikácií, kde je táto oprava nevyhnutná:
- Budovanie centra domácej automatizácie, ktoré ovláda 16 rôznych spotrebičov (svetlá, ventilátory, ohrievače) z jedného zdroja s vyšším napätím.
- Vytvorenie priemyselného riadiaceho panela, kde sa používa 24V priemyselný zdroj, ale logika a relé vyžadujú stabilných 5V.
- Modernizácia existujúcej 16-kanálovej relé dosky na zvládanie širšieho rozsahu vstupných napätí bez rizika zlyhania komponentov.
Prehľad hardvéru
Jadro problému spočíva v distribúcii napájania modulu. Vstupné napätie (napr. 12V) je privádzané do napäťového regulátora (často LM2596), ktorý ho znižuje na čistých 5V. Týchto regulovaných 5V je však vedených iba na napájanie optočlenov, ktoré izolujú riadiace signály. Cievky relé a čipy ULN2003 sú omylom pripojené priamo na surové vstupné napätie. To znamená, že 12V vstup by dodával 12V do 5V cievok relé, čo by spôsobilo ich prehriatie a následné zlyhanie.
Video jasne demonštruje tento problém. Pri vstupnom napätí 8,72V je namerané napätie na cievke relé 7,75V, čo je nebezpečne vysoké pre komponent dimenzovaný na 5V (vo videu v čase 03:17).
Hardvér/Komponenty
- 16-kanálový 5V relé modul
- Spájkovačka a spájka
- Kliešte na drôt/odizolovanie
- Ostrý nôž alebo rezný nástroj
- Kúsok prepojovacieho drôtu
- Multimeter na testovanie
- Napájací zdroj (napr. 9V alebo 12V) na testovanie
Návod na zapojenie
Oprava zahŕňa jednoduchý postup prepojenia. Cieľom je odpojiť napájaciu cestu, ktorá napája čipy ULN2003 a cievky relé od surového vstupu, a namiesto toho ich pripojiť na regulovaný 5V výstup. Video poskytuje podrobnú schému opraveného obvodu (vo videu v čase 03:45).
Tu je postup krok za krokom, ako je demonštrovaný vo videu:
- Identifikujte napájaciu cestu: Najprv vysledujte cesty na PCB, aby ste našli, kde je surové vstupné napätie vedené do čipov ULN2003. Vo videu je to cesta, ktorá vedie pod kondenzátorom na pin 1 čipov (vo videu v čase 05:15).
- Prerežte cestu: Pomocou ostrého noža opatrne prerežte túto napájaciu cestu. Tým sa odpoja čipy a cievky relé od surového vstupného napätia. Video ukazuje tento rez v čase 05:56.
- Overte odpojenie: Použite multimeter v režime kontinuity, aby ste potvrdili, že vstupné napätie už nedosahuje čipy (vo videu v čase 06:11).
- Spájkujte nový drôt: Prispájkujte nový drôt z bodu regulovaného 5V výstupu (ktorý predtým napájal iba optočleny) na teraz odpojený napájací bod, ktorý napája čipy a relé. Video ukazuje vedenie drôtu cez existujúci otvor na doske, aby sa dosiahol spoločný pin relé (vo videu v čase 07:06).
- Otestujte opravu: Napájajte modul napätím vyšším ako 5V (napr. 15V) a overte multimetrom, že cievky relé teraz dostávajú presne 5V (vo videu v čase 07:37).
Vysvetlenie kódu
Poskytnutý Arduino kód je jednoduchý testovací program na prechádzanie všetkých 16 relé kanálov. Môžete ho použiť na overenie, či vaša hardvérová oprava funguje správne.
Najdôležitejšia časť, ktorú musíte nakonfigurovať, je pole controlPin. Toto definuje, ktoré piny Arduina sú pripojené na vstupné piny relé modulu.
const int controlPin[16] = {2,3,4,5,6,7,8,9,10,11,12,A0,A1,A2,A3,A4}; // definujte piny
Upravte tento zoznam podľa vášho skutočného zapojenia. Kód používa digitálne piny 2-12 a analógové piny A0-A4, ale môžete ich zmeniť na akékoľvek dostupné digitálne I/O piny na vašej doske.
Ďalšia kľúčová premenná je triggerType. Tá je štandardne nastavená na LOW, čo je bežné pre mnohé relé moduly.
const int triggerType = LOW;// váš typ relé
Ak je váš relé modul "aktívny HIGH" (to znamená, že posielate HIGH signál na jeho zapnutie), môžete to zmeniť na HIGH. Funkcia channelControl() spracováva logiku pre oba typy, takže stačí upraviť iba túto jednu premennú.
Nakoniec premenná loopDelay riadi pauzu medzi každým kanálom v testovacom cykle.
int loopDelay = 1000;// oneskorenie v slučke
Túto hodnotu môžete upraviť, aby bol test rýchlejší alebo pomalší.
Živý projekt/Demonštrácia
Po oprave video demonštruje modul pracujúci perfektne s 15V vstupom. Multimeter ukazuje vstupné napätie 15V, zatiaľ čo regulované napätie na cievke relé je stabilných a bezpečných 5V (vo videu v čase 08:10). Relé klikajú zapínaním a vypínaním podľa očakávania, čo potvrdzuje, že oprava je úspešná a modul teraz zvládne vyššie vstupné napätia bez poškodenia.
Kapitoly
- [00:00] Úvod do problému napätia 16-kanálového relé
- [00:34] Identifikácia konštrukčnej chyby
- [01:56] Demonštrácia problému s napätím
- [03:45] Schéma opraveného obvodu
- [05:07] Prerušenie nesprávnej napájacej stopy
- [06:34] Spájkovanie nového 5V pripojenia
- [07:37] Testovanie opravy so vstupom 15V
- [08:24] Záver a záverečné myšlienky
/*
* Arduino code to control 16 channel relay with Arduino UNO
*
* Written by Ahmad Shamshiri for Robojax.com on Sunday, October 8, 2018
* at 10:35 in Ajax, Ontario, Canada
* Watch video instructions for this code: https://youtu.be/Q9aBI4ELKC4
*
* This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
* This code has been downloaded from Robojax.com
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
const int controlPin[16] = {2,3,4,5,6,7,8,9,10,11,12,A0,A1,A2,A3,A4}; // define pins
const int triggerType = LOW;// your relay type
int loopDelay = 1000;// delay in loop
int tmpStat =1;
void setup() {
for(int i=0; i<16; i++)
{
pinMode(controlPin[i], OUTPUT);// set pin as output
if(triggerType ==LOW){
digitalWrite(controlPin[i], HIGH); // set initial state OFF for low trigger relay
}else{
digitalWrite(controlPin[i], LOW); // set initial state OFF for high trigger relay
}
}
Serial.begin(9600);// initialize serial monitor with 9600 baud
}
void loop() {
for(int i=0; i<16; i++)
{
channelControl(i,tmpStat,200);// turn each relay ON for 200ms
}
if(tmpStat)
{
tmpStat=0;
}else{
tmpStat=1;
}
Serial.println("===============");
//channelControl(6,1, 2000); // turn relay 7 ON for 2 seconds
//channelControl(6,0, 5000); // turn relay 7 OFF for 5 seconds
//channelControl(9,1, 3000); // turn relay 10 OFF for ever
delay(loopDelay);// wait for loopDelay ms
}
/*
* funciton: channelControl
* turns ON or OFF specific relay channel
* @param relayChannel is integer value channel from 0 to 15
* @param action is 1 for ON or 0 for OFF
* @param t is time in milliseconds
*/
void channelControl(int relayChannel, int action, int t)
{
int state =LOW;
String statTXT =" ON";
if(triggerType == LOW)
{
if (action ==0)// if OFF requested
{
state = HIGH;
statTXT = " OFF";
}
digitalWrite(controlPin[relayChannel], state);
if(t >0 )
{
delay(t);
}
Serial.print ("Channel: ");
Serial.print(relayChannel);
Serial.print(statTXT);
Serial.print(" - ");
Serial.println(t);
}else{
if (action ==1)// if ON requested
{
state = HIGH;
}else{
statTXT = " OFF";
}
digitalWrite(controlPin[relayChannel], state);
if(t >0 )
{
delay(t);
}
Serial.print ("Channel: ");
Serial.print(relayChannel);
Serial.print(statTXT);
Serial.print(" - ");
Serial.println(t);
}
}
Veci, ktoré by ste mohli potrebovať
-
Amazon16-channel 5V relay moduleamzn.to
-
eBay
-
eBay
-
AliExpressPurchase 16 Channel 5V, 12V or 24V relay module from AliExpresss.click.aliexpress.com
-
BanggoodPurchase 16 Channel relay module from Banggoodbanggood.com
Zdroje a referencie
-
Externé16 Channel Relay module 5V relay voltage fixedyoutube.com
-
ExternéDIP 4-pin photocouplerwebpagefx.com
-
ExternéPurchase 16 Channel 5V, 12V or 24V relay module from AliExpresss.click.aliexpress.com
-
ExternéPurchase 16 Channel relay module from Banggoodbanggood.com
-
Externé
Súbory📁
Schéma
-
robojax_16ch_relay module schematic
robojax_16ch_relay_schematic.pdf0.37 MB