Bincika Lambar

Modul ɗin Relay Channel 16 ƙarfin relay 5V tsayayye

Modul ɗin Relay Channel 16 ƙarfin relay 5V tsayayye

Gabatarwa

Wannan aikin yana magance wani muhimmin lahani na ƙira da ake samu a yawancin na'urorin relay na tashoshi 16 na 5V. Duk da cewa ana sayar da waɗannan na'urorin a matsayin na'urorin 5V, mai daidaita wutar lantarki a kan allo sau da yawa yana ba da 5V mai daidaitacce kawai ga da'irar optocoupler, yana barin coils na relay su karɓi cikakken ƙarfin wutar da ba a daidaita ba. Idan ka kunna na'urar da wani abu sama da 5V—kamar wutar 9V ko 12V—kana cikin haɗarin lalata relays da duk wani na'urorin da aka haɗa.

16 Channel Relay module
16 Channel Relay Module -2

Wannan jagorar tana nuna hanya mai sauƙi kuma ingantacciya ta gyara kayan aiki don tabbatar da cewa coils na relay koyaushe suna karɓar 5V daidai, ba tare da la'akari da ƙarfin shigarwa ba. Wannan gyara ne mai mahimmanci ga kowane aiki inda aminci ke da mahimmanci. Ga wasu aikace-aikace masu amfani inda wannan gyara ke da mahimmanci:

  • Gina cibiyar sarrafa gida wacce ke sarrafa na'urori daban-daban 16 (fitilu, fanka, dumama) daga wutar lantarki guda ɗaya mai ƙarfi.
  • Ƙirƙirar kwamitin sarrafa masana'antu inda ake amfani da wutar masana'antu ta 24V, amma dabaru da relays suna buƙatar tsayayyen 5V.
  • Haɓaka allon relay na tashoshi 16 da ke akwai don ɗaukar kewayon ƙarfin shigarwa mai faɗi ba tare da haɗarin gazawar kayan aiki ba.

Bayanin Kayan Aiki

Asalin matsalar tana cikin rarraba wutar na'urar. Ƙarfin shigarwa (misali, 12V) ana isar da shi zuwa mai daidaita wutar (sau da yawa LM2596) wanda ke saukar da shi zuwa tsayayyen 5V. Duk da haka, wannan 5V mai daidaitacce ana tura shi ne kawai don kunna optocouplers, waɗanda ke ware siginonin sarrafawa. Coils na relay da kwakwalwan ULN2003 an haɗa su kai tsaye zuwa layin ƙarfin shigarwa mara daidaitacce. Wannan yana nufin shigarwar 12V zai ba da 12V ga coils na relay na 5V, yana sa su yi zafi sosai kuma a ƙarshe su lalace.

Bidiyon yana nuna wannan matsalar a fili. Tare da shigarwar 8.72V, ana auna coil na relay yana karɓar 7.75V, wanda ke da haɗari sosai ga kayan aikin da aka ƙididdige su da 5V (a cikin bidiyo a 03:17).

Kayan Aiki/Abubuwan Haɗi

  • Modul ɗin Relay na Tashoshi 16 na 5V
  • Ƙarfe mai ɗaukar wuta da dalma
  • Na'urar yanke/ƙwallon waya
  • Wuka mai kaifi ko kayan yanka
  • Wata waya mai haɗawa
  • Multimeter don gwaji
  • Wutar lantarki (misali, 9V ko 12V) don gwaji

Jagorar Haɗin Waya

Gyaran ya ƙunshi hanya mai sauƙi ta sake haɗa wayoyi. Manufar ita ce a yanke hanyar wutar da ke ba da kwakwalwan ULN2003 da coils na relay daga ƙarfin shigarwa mara daidaitacce kuma a maimakon haka a haɗa su zuwa fitowar 5V mai daidaitacce. Bidiyon yana ba da cikakken tsarin da'irar da aka gyara (a cikin bidiyo a 03:45).

Ga tsari mataki-mataki da aka nuna a cikin bidiyon:

  1. Gano Hanyar Wutar: Da farko, bi hanyoyin PCB don gano inda ake tura ƙarfin shigarwa mara daidaitacce zuwa kwakwalwan ULN2003. A cikin bidiyon, wannan hanya ce da ke gudana ƙarƙashin capacitor zuwa pin 1 na kwakwalwan (a cikin bidiyo a 05:15).
  2. Yanke Hanyar: Ta amfani da wuka mai kaifi, a hankali yanke wannan hanyar wutar. Wannan yana yanke haɗin kwakwalwan da coils na relay daga ƙarfin shigarwa mara daidaitacce. Bidiyon yana nuna yadda ake yanke wannan a 05:56.
  3. Tabbatar da Yankewar: Yi amfani da multimeter a yanayin ci gaba don tabbatar da cewa ƙarfin shigarwa baya kaiwa kwakwalwan (a cikin bidiyo a 06:11).
  4. Dalma Sabuwar Waya: Dalma sabuwar waya daga wurin fitowar 5V mai daidaitacce (wanda a baya yana ba da optocouplers kawai) zuwa wurin wutar da aka yanke wanda ke ba da kwakwalwan da relays. Bidiyon yana nuna wucewar waya ta wani rami da ke akwai a kan allo don isa ga pin ɗin gama gari na relays (a cikin bidiyo a 07:06).
  5. Gwada Gyaran: Kunna modul ɗin da wutar sama da 5V (misali, 15V) kuma tabbatar da multimeter cewa coils na relay yanzu suna karɓar 5V daidai (a cikin bidiyo a 07:37).

Bayanin Lambar

Lambar Arduino da aka bayar ita ce shirin gwaji mai sauƙi don zagayawa ta duk tashoshi 16 na relay. Kana iya amfani da shi don tabbatar da cewa gyaran kayan aikin ka yana aiki daidai.

Mafi mahimmancin ɓangaren da za ka daidaita shine tsararrun controlPin. Wannan yana bayyana waɗanne pins na Arduino aka haɗa zuwa pins ɗin shigarwa na modul ɗin relay.

const int controlPin[16] = {2,3,4,5,6,7,8,9,10,11,12,A0,A1,A2,A3,A4}; // ayyana pins

Gyara wannan jerin don dacewa da ainihin haɗin wayar ka. Lambar tana amfani da pins na dijital 2-12 da pins na analog A0-A4, amma kana iya canza waɗannan zuwa kowane pins ɗin I/O na dijital da ke akwai a kan allo naka.

Wani muhimmin canji shine triggerType. An saita wannan zuwa LOW ta tsohuwa, wanda ya zama ruwan dare ga yawancin modul ɗin relay.

const int triggerType = LOW;// nau'in relay naka

Idan modul ɗin relay naka "active HIGH" ne (ma'ana kana aika siginar HIGH don kunna shi), kana iya canza wannan zuwa HIGH. Aikin channelControl() yana sarrafa dabaru na nau'ikan biyu, don haka kawai kana buƙatar daidaita wannan canji ɗaya.

A ƙarshe, canjin loopDelay yana sarrafa tsayawar tsakanin kowane tashoshi a cikin zagayen gwaji.

int loopDelay = 1000;// jinkiri a cikin zagaye

Kana iya daidaita wannan don sa gwajin ya yi sauri ko a hankali.

Aikin Kai Tsaye/Nunawa

Bayan gyaran, bidiyon yana nuna modul ɗin yana aiki daidai da shigarwar 15V. Multimeter yana nuna ƙarfin shigarwa a 15V, yayin da ƙarfin da aka daidaita a coil ɗin relay ya kasance tsayayyen kuma amintaccen 5V (a cikin bidiyo a 08:10). Relays suna danna kunnawa da kashewa kamar yadda ake tsammani, yana tabbatar da cewa gyaran ya yi nasara kuma modul ɗin yanzu zai iya ɗaukar ƙarfin shigarwa mafi girma ba tare da lalacewa ba.

Babuka

  • [00:00] Gabatarwa ga Matsalar Wutar Lantarki ta Relay Channel 16
  • [00:34] Gano Aibi na Zane
  • [01:56] Nuna Matsalar Wutar Lantarki
  • [03:45] Tsarin Da'irar da aka Gyara
  • [05:07] Yanke Hanyar Wutar da ba daidai ba
  • [06:34] Yin Solder na Sabuwar Haɗin 5V
  • [07:37] Gwada Gyaran tare da Shigar 15V
  • [08:24] Kammalawa da Tunani na Ƙarshe

Hotuna

16 Channel Relay module
16 Channel Relay module
16 Channel Relay Module -3
16 Channel Relay Module -3
16 Channel Relay Module -2
16 Channel Relay Module -2
16 Channel Relay Module size
16 Channel Relay Module size
16 Channel Relay Module IC and Optocouplers
16 Channel Relay Module IC and Optocouplers
16 Channel Relay Module
16 Channel Relay Module
16 Channel Relay module 12V vs 5V difference
16 Channel Relay module 12V vs 5V difference
160-Code to control a 16-channel relay module using Arduino
Harshe: C++
/*
 * 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);    
  }

}

Fayiloli📁

Tsarin zane