16 арналық реле модулі 5В реле кернеуі бекітілген
Кіріспе
Бұл жоба 16 арналы 5V реле модульдерінде кездесетін маңызды дизайн ақауын шешеді. Бұл модульдер 5V құрылғылар ретінде сатылғанымен, платадағы кернеу реттегіші көбінесе реттелген 5V тек оптопара тізбегіне жеткізеді, ал нақты реле орамдары толық, реттелмеген кіріс кернеуін алады. Егер модульді 5V-тан жоғары кернеумен—мысалы, 9V немесе 12V қоректендірумен—қуаттандырсаңыз, релелер мен қосылған құрылғыларды зақымдау қаупі бар.


Бұл нұсқаулық кіріс кернеуіне қарамастан реле орамдарының әрқашан дұрыс 5V алуын қамтамасыз ететін қарапайым және тиімді аппараттық түзетуді көрсетеді. Бұл сенімділік маңызды кез келген жоба үшін өте маңызды өзгерту. Міне, бұл түзету қажет болатын бірнеше практикалық қолданулар:
- Бір жоғары кернеулі қоректендіру көзінен 16 түрлі құрылғыны (жарықтар, желдеткіштер, жылытқыштар) басқаратын үй автоматтандыру хабын құру.
- 24V өнеркәсіптік қоректендіру қолданылатын, бірақ логика мен релелер тұрақты 5V қажет ететін өнеркәсіптік басқару панелін жасау.
- Құрамдас бөліктердің істен шығу қаупінсіз кіріс кернеулерінің кең ауқымын өңдеу үшін бар 16 арналы реле платасын жаңарту.
Аппараттық шолу
Мәселенің негізі модульдің қуат таратуында жатыр. Кіріс кернеуі (мысалы, 12V) кернеу реттегішіне (көбінесе LM2596) беріледі, ол оны таза 5V-қа төмендетеді. Дегенмен, бұл реттелген 5V тек басқару сигналдарын оқшаулайтын оптопараларды қуаттандыруға бағытталған. Реле орамдары мен ULN2003 драйвер чиптері қате түрде тікелей шикі кіріс кернеуі желісіне қосылған. Бұл 12V кіріс 5V реле орамдарына 12V жеткізіп, олардың қызып кетуіне және ақырында істен шығуына себеп болады.
Бейне бұл мәселені анық көрсетеді. 8.72V кіріс кезінде реле орамы 7.75V алатыны өлшенеді, бұл 5V рейтингті құрамдас бөлік үшін қауіпті жоғары (бейнеде 03:17).
Аппараттық/Құрамдас бөліктер
- 16 арналы 5V реле модулі
- Дәнекерлеу үтігі және дәнекер
- Сым кескіш/аршу құралы
- Өткір пышақ немесе кесу құралы
- Бір бөлік жалғау сымы
- Тестілеуге арналған мультиметр
- Тестілеуге арналған қоректендіру көзі (мысалы, 9V немесе 12V)
Сым жалғау нұсқаулығы
Түзету қарапайым қайта сым жалғау процедурасын қамтиды. Мақсат—ULN2003 чиптері мен реле орамдарын шикі кірістен қуаттандыратын ізді ажыратып, оларды реттелген 5V шығысына қосу. Бейне түзетілген тізбектің егжей-тегжейлі схемасын ұсынады (бейнеде 03:45).
Міне, бейнеде көрсетілген қадамдық процесс:
- Қуат ізін анықтаңыз: Алдымен, шикі кіріс кернеуінің ULN2003 драйвер чиптеріне қайда бағытталғанын табу үшін PCB жолдарын қадағалаңыз. Бейнеде бұл конденсатор астынан драйвер чиптерінің 1-ші түйреуішіне өтетін жол (бейнеде 05:15).
- Ізді кесіңіз: Өткір пышақты пайдаланып, бұл қуат ізін мұқият кесіңіз. Бұл драйвер чиптері мен реле орамдарын шикі кіріс кернеуінен ажыратады. Бейне бұл кесудің 05:56-да жасалғанын көрсетеді.
- Ажыратуды тексеріңіз: Кіріс кернеуінің енді драйвер чиптеріне жетпейтінін растау үшін үздіксіздік режиміндегі мультиметрді пайдаланыңыз (бейнеде 06:11).
- Жаңа сымды дәнекерлеңіз: Реттелген 5V шығыс нүктесінен (бұрын тек оптопараларды қуаттандыратын) енді ажыратылған, драйвер чиптері мен релелерді қуаттандыратын қуат нүктесіне жаңа сымды дәнекерлеңіз. Бейне релелердің ортақ түйреуішіне жету үшін сымды платадағы бар тесіктен өткізуді көрсетеді (бейнеде 07:06).
- Түзетуді тексеріңіз: Модульді 5V-тан жоғары кернеумен (мысалы, 15V) қуаттандырыңыз және реле орамдарының енді дәл 5V алатынын мультиметрмен тексеріңіз (бейнеде 07:37).
Код түсіндірмесі
Ұсынылған Arduino коды барлық 16 реле арнасын айналып өтетін қарапайым тест бағдарламасы. Оны аппараттық түзетудің дұрыс жұмыс істейтінін тексеру үшін пайдалануға болады.
Сіз конфигурациялауыңыз керек ең маңызды бөлік—controlPin массиві. Бұл Arduino түйреуіштерінің қайсысы реле модулінің кіріс түйреуіштеріне қосылғанын анықтайды.
const int controlPin[16] = {2,3,4,5,6,7,8,9,10,11,12,A0,A1,A2,A3,A4}; // түйреуіштерді анықтау
Бұл тізімді нақты сым жалғауыңызға сәйкес өзгертіңіз. Код 2-12 цифрлық түйреуіштерді және A0-A4 аналогтық түйреуіштерді пайдаланады, бірақ сіз оларды платаңыздағы кез келген қолжетімді цифрлық I/O түйреуіштеріне өзгерте аласыз.
Тағы бір негізгі айнымалы—triggerType. Ол әдепкі бойынша LOW мәніне орнатылған, бұл көптеген реле модульдері үшін жиі кездеседі.
const int triggerType = LOW;// сіздің реле түріңіз
Егер реле модуліңіз "белсенді HIGH" болса (яғни оны қосу үшін HIGH сигнал жібересіз), мұны HIGH мәніне өзгертуге болады. channelControl() функциясы екі түр үшін де логиканы өңдейді, сондықтан тек осы бір айнымалыны реттеу қажет.
Соңында, loopDelay айнымалысы тест цикліндегі әр арна арасындағы үзілісті басқарады.
int loopDelay = 1000;// циклдегі кідіріс
Тестті жылдамырақ немесе баяуырақ ету үшін мұны реттеуге болады.
Тірі жоба/Демонстрация
Түзетуден кейін бейне модульдің 15V кіріспен тамаша жұмыс істейтінін көрсетеді. Мультиметр кіріс кернеуін 15V көрсетеді, ал реле орамындағы реттелген кернеу тұрақты және қауіпсіз 5V (бейнеде 08:10). Релелер күтілгендей қосылып-өшеді, бұл түзетудің сәтті екенін және модульдің енді зақымдану қаупінсіз жоғары кіріс кернеулерін өңдей алатынын растайды.
Бөлімдер
- [00:00] 16 арналық реле кернеу мәселесіне кіріспе
- [00:34] Дизайн ақауын анықтау
- [01:56] Кернеу мәселесін көрсету
- [03:45] Түзетілген схеманың сұлбасы
- [05:07] Қате қуат жолын кесу
- [06:34] Жаңа 5В қосылымын дәнекерлеу
- [07:37] 15В кірісімен түзетуді тексеру
- [08:24] Қорытынды және соңғы ойлар
/*
* 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);
}
}
Сізге қажет болуы мүмкін нәрселер
-
Амазонка16 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
Ресурстар мен сілтемелер
-
Сыртқы16 Channel Relay module 5V relay voltage fixedyoutube.com
-
СыртқыDIP 4-pin photocouplerwebpagefx.com
-
СыртқыPurchase 16 Channel 5V, 12V or 24V relay module from AliExpresss.click.aliexpress.com
-
СыртқыPurchase 16 Channel relay module from Banggoodbanggood.com
-
Сыртқы
Файлдар📁
Схема
-
robojax_16ch_relay module schematic
robojax_16ch_relay_schematic.pdf0.37 MB