Search Code

Projek: RJMD-R2101 H-Brug MOSFET Motorbestuurder

Projek: RJMD-R2101 H-Brug MOSFET Motorbestuurder

In hierdie tutoriaal sal ons ondersoek instel na hoe om 'n DC-motor te beheer met behulp van die RJMD-R2101 H-Bridge MOSFET-motorbestuurder. Hierdie projek sal demonstreer hoe om die IRFZ44N MOSFETs effektief te benut in samewerking met die IR2101 poortbestuurders om motorspoed en rigting te beheer. Teen die einde van hierdie gids sal jy 'n funksionele motorbeheerstelsel hê wat die motor glad kan versnel, rem en stop.

RJMD-R2101 H-Bridge MOSFET Motor Driver 0

Namate ons vorder, sal ons die nodige hardewarekomponente, bedradinginstruksies en voorbeeldkode-snippets behandel om te verduidelik hoe alles saamwerk. Vir 'n meer visuele voorstelling, beveel ek aan om die verwante video te kyk (in video by :15).

RJMD-R2101 H-Bridge MOSFET Motor Driver 3

Hardeware verduidelik

Die primêre komponente in hierdie projek is die IR2101 poortbestuurder en die IRFZ44N MOSFETs. Die IR2101 is 'n hoëspoed bestuurder wat ontwerp is om N-kanaal MOSFETs in 'n half-brug konfigurasie aan te dryf. Dit stel doeltreffende skakeling en beheer van die MOSFETs in staat, wat die motor in staat stel om glad te loop.

Die IRFZ44N MOSFETs dien as die skakelkomponente wat die krag wat aan die motor gelewer word, beheer. Wanneer dit geaktiveer word deur die IR2101, kan hierdie MOSFETs hoë strome hanteer, wat die nodige krag verskaf om die motor aan te dryf. Saam laat hierdie komponente presiese beheer oor die motor se rigting en spoed toe.

Datasheet Besonderhede

FabrikantInternasionale Reguleerder
Onderdeel nommerIRFZ44N
Logika/IO spanning10 V (VGS)
Voorsienings spanning55 V (VDS)
Uitsetstroom (per kanaal)49 A (maks)
Piekstroom (per kanaal)120 A (maks)
PWM frekwensie riglynetot 100 kHz
Invoer logika drempels2.0 V (VGS(th))
Spanningstoename / RDS(on)/ versadiging0.025 Ω (maks)
Termiese grense175 °C (maks)
PakketTO-220
Notas / varianteGemeenlik gebruik in H-brug konfigurasies

  • Verseker dat daar behoorlike hitte-afleiding vir die MOSFET's is om oorverhitting te voorkom.
  • Gebruik PWM vir spoedbeheer om gladde motorbedryf te bereik.
  • Verifieer dat die kragtoevoer spanning nie MOSFET-gradering oorskry nie.
  • Verseker die korrekte polariteit wanneer jy die motor bedrading om skade te voorkom.
  • Gebruik ontkoppelkapasitors naby die kragbron om die spanning te stabiliseer.

Draadinstruksies

Arduino wiring for H-bridge IR2101 with IRFZ44N
Arduino wiring for H-bridge IR2101 with IRFZ44N

Om die RJMD-R2101-motordrywer te bedrading, begin met die aansluiting van die kragbron. Verbind die VCC-pin van die drywer aan 'n 5V-kragbron. Die GND-pin moet aan die grond van die kragbron gekoppel word. Verbind dan die beheerpunte: die PWM sein vir die eerste MOSFET moet na die pin gaan.PWM1_HIN1_PIN(wat pin 9 is), en die aktiveringspin vir die eerste MOSFET moet verbind metEN1_LIN1_PIN(pin 8). Vir die tweede MOSFET, koppel die PWM sein aanPWM2_HIN2_PIN(pin 3) en die aktiveringspen naEN2_LIN2_PIN(pin 2).

RJMD-R2101 H-Bridge MOSFET Motor Driver 5

Maak seker dat jy die motor terminaal aan die toepaslike uitsette van die H-Brug koppel. As jy Arduino gebruik, koppel die PWM-pinne aan die aangewese pinne op die Arduino-bord. Byvoorbeeld, koppelPWM1_HIN1_PINna pen 9,EN1_LIN1_PINna pen 8, en so aan. Hierdie opstelling sal jou in staat stel om die motor effektief te beheer.

Kode Voorbeelde & Staproete

Die kode-seksie sluit funksies in om die spoed en rigting van die motor te beheer met behulp van die gedefinieerde penne. Hieronder is 'n uittreksel uit die motorbeheerskets:

const int PWM1_HIN1_PIN= 9; // PWM pin for first MOSFET
const int EN1_LIN1_PIN= 8; // Enable pin for first MOSFET

In hierdie deel definieer ons die penne wat gebruik word om die eerste MOSFET te beheer.PWM1_HIN1_PINword is gebruik vir spoedbeheer, terwyl dieEN1_LIN1_PINaktiveer die motorbestuurder.

void Motor(boolean direction, int speed=0) {
    int speedPWM = map(speed, 0, 100, 0, 255);
    // Control motor direction and speed here
}

Hierdie funksie neem 'ndirectionparameter om te bepaal of die motor met die klok of teen die klok moet draai. Diespeedparameter is toegeken aan 'n PWM-waarde, wat gladde beheer oor motor spoed moontlik maak.

void stop() {
    digitalWrite(EN1_LIN1_PIN, LOW); // Disable first MOSFET
}

Diestopfunksie deaktiveer die motor deur die aktiveringspen laag te stel, wat effektief enige stroomvloei deur die motor stop. Dit verseker 'n vinnige stop sonder om die komponente te beskadig.

Vir die volle kode, verwys asseblief na die volledige program wat onder die artikel gelaai is.

Demonstraasie / Wat om te verwag

Wanneer die opstelling voltooi is, moet jy die motor sien reageer op die opdragte wat vanaf die Arduino gestuur word. Die motor sal in die gespesifiseerde rigting draai, en jy kan die spoed aanpas met behulp van PWM seine. Algemene probleme om op te let sluit omgekeerde polariteit verbindings in, wat kan veroorsaak dat die motor in die teenoorgestelde rigting draai, en drijvende insette wat tot onvoorspelbare gedrag kan lei.

Tydens toetsing mag jy ook opgemerk dat die motorspoed verander op grond van die PWM-waardes wat gestuur word. Verseker dat alle verbindings veilig is om onderbrekings in die kragvloei te vermy, wat die prestasie kan beïnvloed (in die video om 05:45).

Video Tydmerke

  • 00:00- Inleiding tot die projek
  • 02:15- Oorsig van hardewarekomponente
  • 05:45- Demonstrasie van motorkontrole
  • 08:30- Kode stap-vir-stap en verduideliking

Beelde

RJMD-R2101 H-Bridge MOSFET Motor Driver 0
RJMD-R2101 H-Bridge MOSFET Motor Driver 0
RJMD-R2101 H-Bridge MOSFET Motor Driver 1
RJMD-R2101 H-Bridge MOSFET Motor Driver 1
RJMD-R2101 H-Bridge MOSFET Motor Driver 2
RJMD-R2101 H-Bridge MOSFET Motor Driver 2
RJMD-R2101 H-Bridge MOSFET Motor Driver 3
RJMD-R2101 H-Bridge MOSFET Motor Driver 3
RJMD-R2101 H-Bridge MOSFET Motor Driver 4
RJMD-R2101 H-Bridge MOSFET Motor Driver 4
RJMD-R2101 H-Bridge MOSFET Motor Driver 5
RJMD-R2101 H-Bridge MOSFET Motor Driver 5
Arduino wiring for H-bridge IR2101 with IRFZ44N
Arduino wiring for H-bridge IR2101 with IRFZ44N
796-Arduino H-Bridge code to control IRFZ44N Mosfets using IR2101 gate drivers
Taal: C++
/*
 * IR2101 Motor Beheer Skets
 * Beheer DC motor met spoed, rem en stop
 * IRF44ZN Mosfets gebruik vir hoë kant en lae kant.
 * IR2101 Poort bestuurder gebruik om die MOSFETs aan te dryf.
 * jy kan die kode, die gerberlêer vir PCB om te produseer en bedrading diagram kry
 * van http://robojax.com/RJT390
 * 
 * geskryf deur Ahmad Shamshiri op 19 Nov 2024
 * www.Robojax.com https://youTube.com/@robojax
 */
const int PWM1_HIN1_PIN= 9; // moet 'n pint wees met ~
const int EN1_LIN1_PIN= 8;

const int PWM2_HIN2_PIN= 3; // moet 'n pint wees met ~
const int EN2_LIN2_PIN= 2;

const boolean CW =1;
const boolean CCW =0;


void Motor(boolean, int); // prototipe
void brake(); // prototipe
void stop(); // prototipe

void setup() {
  Serial.begin(9600);
  pinMode(PWM1_HIN1_PIN, OUTPUT);
  pinMode(EN1_LIN1_PIN, OUTPUT);

  pinMode(PWM2_HIN2_PIN, OUTPUT);
  pinMode(EN2_LIN2_PIN, OUTPUT);

}

void loop() {
  Motor(CW, 100);
  delay(5000);

  brake();
  delay(3000);

  Motor(CCW, 100);
  delay(5000);

  stop();
  delay(3000);

  Motor(CCW, 50); // in CW teen 50% spoed
  delay(5000);

  brake();
  delay(3000);
  for(int i=0; i<=100; i++)
  {
    Motor(CCW, i);
    delay(100);
  }
  delay(3000);
  for(int i=100; i>=0; i--)
  {
    Motor(CCW, i);
    delay(100);
  }
  brake();
  delay(3000);
}


void stop()
{
    Serial.println ("=== Stop");
    digitalWrite(EN1_LIN1_PIN, LOW);
    digitalWrite(PWM1_HIN1_PIN, LOW);
    digitalWrite(EN2_LIN2_PIN, LOW);
    digitalWrite(PWM2_HIN2_PIN, LOW);
}
void brake()
{
    Serial.println ("=== Brake");
    digitalWrite(PWM1_HIN1_PIN, HIGH);
    digitalWrite(EN1_LIN1_PIN, LOW);
    digitalWrite(PWM2_HIN2_PIN, HIGH);
    digitalWrite(EN2_LIN2_PIN, LOW);
}


void Motor(boolean direction, int speed=0)
{
  int speedPWM = map(speed, 0, 100, 0, 255);
  Serial.print("Speed: "); Serial.print (speedPWM);
  Serial.print("(");Serial.print(speed);Serial.print("%)");


  if(direction){
   Serial.print(" dir: ");Serial.println ("CW");

    analogWrite(PWM1_HIN1_PIN, speedPWM);
    digitalWrite(EN1_LIN1_PIN, HIGH);

    digitalWrite(PWM2_HIN2_PIN, LOW);
    digitalWrite(EN2_LIN2_PIN, LOW);

  }else{
    Serial.print(" dir: ");Serial.println ("CCW");

    digitalWrite(PWM1_HIN1_PIN, LOW);
    digitalWrite(EN1_LIN1_PIN, LOW);

    analogWrite(PWM2_HIN2_PIN, speedPWM);
    digitalWrite(EN2_LIN2_PIN, HIGH);
  }

}




Hulpbronne en verwysings

Lêers📁

Gerber files