Soek Kode

Gebruik van 'n IRF5305 E-Switch Module om Motor Spoed te Beheer

Gebruik van 'n IRF5305 E-Switch Module om Motor Spoed te Beheer

Hierdie gids verken die IRF5305 E-skakelaarmodule, 'n kragtige en veelsydige komponent wat 'n P-kanaal MOSFET gebruik om hoëstroom GS-ladings met 'n laespanningsein van 'n Arduino te beheer. Anders as 'n meganiese relais, bied hierdie vastetoestandskakelaar vinniger skakeling, langer lewensduur, en geen fisiese kontakdegradasie nie. Sy werklike waarde lê in sy vermoë om ladings wat baie meer stroom trek as wat 'n Arduino-pen kan verskaf, veilig en doeltreffend te skakel of te verdof.

E-skakelaarmodule-1-MOS
E-skakelaarmodule-swart-1-mos
E-skakelaarmodule-groen-1-MOS-afmetings

Hierdie module is ideaal vir 'n verskeidenheid projekte, insluitend:

  • Beheer van die spoed van hoëstroom GS-motors in robotika of pasgemaakte kraggereedskap.
  • Verdof van hoëkrag LED-beligtingstelsels vir motor- of argitektoniese toepassings.
  • Bou van 'n betroubare, langdurige kragbestuurstelsel wat ladings aan- en afskakel sonder die slytasie van 'n relais.
  • Skep van 'n geïsoleerde koppelvlak om hoëspanning (tot 36V) stroombane vanaf 'n laespanning-mikrobeheerder te beheer.

Hardware-oorsig

Die IRF5305 E-skakelaarmodule is ontwerp vir maklike integrasie. Dit beskik oor 'n terminaalblok vir die hoëkragkant en twee penne vir die beheersein. Die module bevat 'n optokoppelaar, wat volledige elektriese isolasie tussen jou Arduino en die hoëkragstroombaan bied, en sodoende jou mikrobeheerder teen potensiële skade beskerm. Die hoof MOSFET (IRF5305) dien as 'n byna ideale skakelaar, met 'n uiters lae aan-weerstand van slegs 65 milliohm, wat minimale spanningsval en kragverlies verseker (in video by 01:47).

Die module se fisiese afmetings is 40mm in lengte, 30.1mm in breedte, en 16.4mm in diepte (in video by 05:09).

Hardware/Komponente

  • Arduino Uno of soortgelyke bord
  • IRF5305 E-skakelaarmodule
  • GS-motor of 'n hoëkrag-gloeilamp
  • Eksterne kragtoevoer (tot 36V)
  • Springdrade

Bedradingsgids

Die verbinding van die module is eenvoudig. Die twee penne aan die seinkant is gemerk Positief en Grond. Verbind die Grond-pen aan 'n GND-pen op die Arduino. Verbind die Positief-pen aan 'n digitale pen op die Arduino, soos pen 9 (in video by 07:53).

Aan die hoëkragkant, verbind jou eksterne kragtoevoer se positiewe terminaal aan die +-terminaal en die negatiewe terminaal aan die --terminaal op die module se insetkant. Verbind dan jou lading (bv. 'n motor) aan die + en - terminale aan die uitsetkant (in video by 07:24).

Belangrik: Wanneer 'n induktiewe lading soos 'n motor aangedryf word, is dit noodsaaklik om 'n vlieënde diode parallel met die lading te plaas. Hierdie diode beskerm die MOSFET teen spanningspulse wat gegenereer word wanneer die motor afgeskakel word (in video by 09:52).

Kodeverduideliking

Hierdie handleiding verskaf drie verskillende programme, elk wat 'n ander vlak van beheer demonstreer. Die kode vir elk is hieronder die artikel beskikbaar.

Basiese kode om die IRF5305-module altyd aan te hou

Hierdie eerste skets is die eenvoudigste. Dit is ontwerp om die lading aan te skakel en dit onbepaald aan te hou. Die sleuteldeel van hierdie kode is die pen-definisie aan die bokant.

int loadPin =9;// ladingpen

Hierdie lyn definieer watter digitale pen op die Arduino aan die module se "Positief"-seinpen gekoppel is. Jy kan die nommer 9 na enige ander digitale pen verander as jy dit elders gekoppel het. Die setup()-funksie stel hierdie pen as 'n uitset, en die loop()-funksie bevat die logika om die lading aan te skakel en vir ewig te wag.

Basiese kode vir IRF5305-module, skakel AAN/AAF

Hierdie skets demonstreer tydgebaseerde skakeling, wat die lading vir 3 sekondes aanskakel en dan vir 3 sekondes afskakel. Die gebruikerskonfigureerbare dele is die pen-definisie en die vertragingsperiodes.

int cont = HIGH;
int loadPin = 9; 

Die loadPin-veranderlike dien dieselfde doel as in die eerste program. Die cont-veranderlike is 'n toestandsvlag wat die program nagaan om te besluit of die lading aan- of afgeskakel moet word. Om die aan/af-tydsberekening te verander, kan jy die delay(3000);-opdragte binne die if en else-blokke wysig. Die vertraging word in millisekondes gemeet, so 3000 is gelyk aan 3 sekondes.

Basiese kode om die IRF5305-spoed van motor/intensiteit van lig te beheer

Die finale program gebruik Pulsbreedtemodulasie (PWM) om die spoed van 'n motor of die helderheid van 'n lig te beheer. Dit verhoog en verlaag die krag geleidelik in 'n lus. Die sleutelveranderlikes is almal aan die bokant van die skets.

int motorPin =9;// pen om aan motormodule te koppel
int mSpeed = 0;// veranderlike om spoedwaarde te hou
int mStep = 15;// inkrementeer/dekrementeer stap vir PWM-motorspoed
  • motorPin: Dit definieer die PWM-geskikte pen wat aan die module gekoppel is. Dit is krities om 'n pen te gebruik wat PWM ondersteun (dikwels gemerk met 'n ~-simbool op die Arduino-bord).
  • mSpeed: Hierdie veranderlike hou die huidige PWM-waarde, wat wissel van 0 (af) tot 255 (volle spoed).
  • mStep: Dit is die inkrement waarmee die spoed elke siklus verander. 'n Groter waarde (bv. 25) laat die spoed vinniger op- en afdraai, terwyl 'n kleiner waarde (bv. 5) die oorgang gladder en stadiger maak.

Om die spoed van die op-/afdraai-effek te verander, wysig die delay(200);-waarde aan die einde van die lus. Dit is die tyd in millisekondes tussen elke spoedstap.

Lewende Projek/Demonstrasie

In die video word elk van die drie programme gedemonstreer. Die eerste program hou die motor suksesvol aanhoudend aan die gang. Die tweede program word dan opgelaai, en die motor word gewys wat drie sekondes aanskakel en drie sekondes afskakel. Laastens word die PWM-program gedemonstreer, wat wys hoe die motor stadig na maksimum spoed versnel en dan terug vertraag tot 'n stilstand, en hierdie siklus aanhoudend herhaal (in video by 15:42).

Die video sluit ook 'n omvattende stroomhanteringstoets in. Die module is aan 'n elektroniese las gekoppel om sy werklike perke sonder 'n bykomende verkoeler te bepaal. Die resultate het getoon dat by hoër spannings (tot 24V), die module tot 10 ampère kon hanteer. By laer spannings (rondom 5V) het die stroomhanteringsvermoë egter aansienlik gedaal, en die module het begin oorverhit en rook by strome bo 10 ampère (in video by 21:49). Die gevolgtrekking is dat vir deurlopende, hoëstroomtoepassings, 'n verkoeler nodig is om die module koel te hou en skade te voorkom.

E-switch_module-2-MOS
E-switch_module-green-2-mos-onder
E-switch_module-black-2-mos-bokant

skade.

Hoofstukke

  • [00:00] Inleiding en Module-oorsig
  • [01:13] Hoekom 'n MOSFET E-skakelaar Gebruik
  • [03:45] Module-verbindings en Fisiese Afmetings
  • [05:24] IRF5305 Datablad-oorsig
  • [07:03] Bedrading van die Module aan Arduino
  • [08:06] Skematiese Diagram-verduideliking
  • [10:29] Kode-deurloop: Altyd-aan-program
  • [11:04] Kode-deurloop: Aan/Af-beheerprogram
  • [12:03] Kode-deurloop: PWM-spoedbeheerprogram
  • [14:34] Lewende Demonstrasie van Al Drie Programme
  • [17:02] Stroomhantering en Lastoets
  • [23:34] Gevolgtrekking en Toetsresultaatopsomming

Beelde

Basic Code to keep the IRF5305 Module always ON
Basic Code to keep the IRF5305 Module always ON
Basic Code to keep the IRF5305 Module always ON
Basic Code to keep the IRF5305 Module always ON
Basic Code to keep the IRF5305 Module always ON
Basic Code to keep the IRF5305 Module always ON
Schematic diagram of an E-switch based on the IRF5305 MOSFET
Schematic diagram of E-Switch based on IRF5305 Mosfet
E-switch_module-black-2-mos-top
E-switch_module-black-2-mos-top
E-switch_module-black-1-mos
E-switch_module-black-1-mos
E-switch_module-green-2-mos-bottom
E-switch_module-green-2-mos-bottom
E-switch_module-green-1-MOS-dimentions
E-switch_module-green-1-MOS-dimentions
E-switch_module-2-MOS
E-switch_module-2-MOS
E-switch_module-1-MOS
E-switch_module-1-MOS
156-Basic code to keep the IRF5305 module always on
Taal: C++
/*
 * This is an Arduino sketch for a tutorial video 
 * explaining the 5305 MOSFET used as a switch 
 * This sketch turns the MOSFET ON and keeps it ON forever
 * Download and resource page https://robojax.com/RJT125

 * Written by Ahmad Shamshiri on Sep 12, 2018 in Ajax, Ontario, Canada
 * For Robojax.com
 * Watch instruction video for this code: https://youtu.be/eAANkWDvusU
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
 */
int loadPin =9;// load pin

  
void setup() {
  // Robojax.com demo
  pinMode(loadPin,OUTPUT);
  Serial.begin(9600);
  Serial.println("Robojax Demo"); 

}

void loop() {
  // Robojax.com tutorial

  digitalWrite(loadPin, HIGH);
 while(1);// wait forever


}
157-Basic code to for IRF5305 modul, turns ON/OFF
Taal: C++
/*
 * This is an Arduino sketch for a tutorial video 
 * explaining the 5305 MOSFET used as a switch 
 * This sketch turns the MOSFET ON for 3 seconds then turns it OFF for 3 seconds.
 * Download and resource page https://robojax.com/RJT125
 * Written by Ahmad Shamshiri on Sep 12, 2018 at 17:36 in Ajax, Ontario, Canada
 * For Robojax.com
 * Watch the instruction video for this code: https://youtu.be/eAANkWDvusU
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
 */
int cont = HIGH;
int loadPin = 9; 
void setup() {
  // Robojax.com demo
  pinMode(loadPin,OUTPUT);
  Serial.begin(9600);
  Serial.println("Robojax Demo");
  

}

void loop() {
  // Robojax.com tutorial

 
  if(cont == HIGH)
  {
    Serial.println("OUTPUT is HIGH");
    digitalWrite(loadPin,HIGH);
    delay(3000);
    cont = LOW;
  }else{
    Serial.println("OUTPUT is LOW");
    digitalWrite(loadPin,LOW);
    delay(3000);
    cont = HIGH;   
  }

}
158-Basic code to keep the IRF5305 speed of motor intensitiy of light
Taal: C++
/*
 * This is an Arduino sketch for a tutorial video 
 * explaining the 5305 MOSFET used as a switch 
 * This sketch will control the speed of a motor or the intensity of a light using PWM
 * Download and resource page https://robojax.com/RJT125

 * Written by Ahmad Shamshiri on Sep 12, 2018 at 23:23 in Ajax, Ontario, Canada
 * For Robojax.com
 * Watch the instruction video for this code: https://youtu.be/eAANkWDvusU
 * This code is "AS IS" without warranty or liability. Free to be used as long as you keep this note intact.
 */
int motorPin =9;// pin to connect to motor module
int mSpeed = 0;// variable to hold speed value
int mStep = 15;// increment/decrement step for PWM motor speed
  
void setup() {
  // Robojax.com demo
  pinMode(motorPin,OUTPUT);// set mtorPin as output
  Serial.begin(9600);// initialize serial motor
  Serial.println("Robojax Demo");
  

}

void loop() {
  // Robojax.com tutorial

analogWrite(motorPin, mSpeed);// send mSpeed value to motor
    Serial.print("Speed: ");
    Serial.println(mSpeed);// print mSpeed value on Serial monitor (click on Tools->Serial Monitor)
  mSpeed = mSpeed + mStep;
  // See the video for details.
  if (mSpeed <= 0 || mSpeed >= 255) {
    mStep = -mStep;
  }  

delay(200);

}

Hulpbronne en verwysings

Geen hulpbronne nog.

Lêers📁

Ander lêers

  • IRF5305 P-Channel MOSFET Datasheet
    Datasheet for the IRF5305, a P-channel power MOSFET. It features a drain-to-source voltage of -55V, continuous drain current of -31A, and low on-resistance, suitable for high-power switching applications.
    robojax_e-switch_IRF5305_datasheet.pdf 0.16 MB