Search Code

Projekt: RJMD-R2101 H-Bridge MOSFET vozač motora

Projekt: RJMD-R2101 H-Bridge MOSFET vozač motora

U ovom tutorijalu istražićemo kako kontrolisati DC motor koristeći RJMD-R2101 H-Bridge MOSFET drajver za motor. Ovaj projekat će pokazati kako efikasno koristiti IRFZ44N MOSFET-e u kombinaciji sa IR2101 drajverima za upravljanje brzinom i pravcem motora. Na kraju ovog vodiča, imaćete funkcionalnu postavku za kontrolu motora koja može ubrzati, kočiti i glatko zaustaviti motor.

RJMD-R2101 H-Bridge MOSFET Motor Driver 0

Kako napredujemo, pokrićemo potrebne hardverske komponente, uputstva za povezivanje i primjere koda kako bismo pojasnili kako sve funkcioniše zajedno. Za vizuelniju reprezentaciju, preporučujem gledanje pratećeg videa (u videu u 02:15).

RJMD-R2101 H-Bridge MOSFET Motor Driver 3

Objašnjena oprema

Glavni sastavni dijelovi ovog projekta su IR2101 upravljač i IRFZ44N MOSFET-ovi. IR2101 je brzi upravljač dizajniran za upravljanje N-kanalnim MOSFET-ima u polu-mostnoj konfiguraciji. Omogućava efikasno prebacivanje i kontrolu MOSFET-a, omogućavajući motoru da radi glatko.

IRFZ44N MOSFET-ovi djeluju kao prekidački elementi koji kontroliraju snagu isporučenu motoru. Kada ih aktivira IR2101, ovi MOSFET-ovi mogu podnijeti visoke struje, pružajući potrebnu snagu za pokretanje motora. Zajedno, ovi komponenti omogućuju preciznu kontrolu nad smjerom i brzinom motora.

Detalji tehničkog lista

ProizvođačMeđunarodni rektifikator
Broj dijelaIRFZ44N
Logika/IO napon10 V (VGS)
Napon napajanja55 V (VDS)
Izlazna struja (po kanalu)49 A (maks)
Vrhunska struja (po kanalu)120 A (maks)
Upute za PWM frekvencijudo 100 kHz
Ulazni logički pragovi2.0 V (VGS(th))
Napon pada / RDS(on)/ zasićenje0.025 Ω (maks)
Toplotne granice175 °C (maks)
PakovanjeTO-220
Napomene / varijanteČesto se koristi u H-Bridge konfiguracijama

  • Osigurajte pravilno hlađenje za MOSFET-ove kako biste spriječili pregrijavanje.
  • Koristite PWM za kontrolu brzine kako biste postigli glatko funkcionisanje motora.
  • Provjerite da napon napajanja ne prelazi ocjene MOSFET-a.
  • Osigurajte ispravnu polaritet prilikom povezivanja motora kako biste izbjegli oštećenje.
  • Koristite dekopling kondenzatore blizu napajanja za stabilizaciju napona.

Uputstva za povezivanje

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

Da biste povezali motorni drajver RJMD-R2101, počnite povezivanjem napajanja. Povežite VCC pin drajvera na izvor napajanja od 5V. GND pin treba biti povezan na masu napajanja. Zatim povežite kontrolne pinove: PWM signal za prvi MOSFET treba ići na pinPWM1_HIN1_PIN(pin 9), a pin za omogućavanje prvog MOSFET-a treba da se poveže saEN1_LIN1_PIN(pin 8). Za drugi MOSFET, povežite PWM signal naPWM2_HIN2_PIN(pin 3) i pin za omogućavanje naEN2_LIN2_PIN(pin 2).

RJMD-R2101 H-Bridge MOSFET Motor Driver 5

Pobrinite se da povežete terminale motora sa odgovarajućim izlazima H-Bridge-a. Ako koristite Arduino, povežite PWM pinove sa predviđenim pinovima na Arduino ploči. Na primjer, povežitePWM1_HIN1_PINna pin 9,EN1_LIN1_PINna pin 8, i tako dalje. Ova postavka će vam omogućiti da efikasno kontrolišete motor.

Primjeri koda i vodič

Sekcija koda uključuje funkcije za kontrolu brzine i pravca motora koristeći definirane pinove. Ispod je izvadak iz skice za kontrolu motora:

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

U ovom dijelu definišemo pinove koji se koriste za kontrolu prvog MOSFET-a.PWM1_HIN1_PINse koristi za kontrolu brzine, dok jeEN1_LIN1_PINomogućava upravljaču motora.

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

Ova funkcija prima adirectionparametar za određivanje da li motor treba da se okreće u smeru kazaljke na satu ili suprotno od njega. Tаspeedparametar je mapiran na PWM vrijednost, omogućavajući glatku kontrolu nad brzinom motora.

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

Thestopfunkcija onemogućava motor postavljanjem enable pina na nisku razinu, što učinkovito zaustavlja protok struje kroz motor. To osigurava brzo zaustavljanje bez oštećenja komponenti.

Za puni kod, molimo vas da se obratite kompletnom programu učitanom ispod članka.

Demonstracija / Šta očekivati

Kada je postavka završena, trebali biste primijetiti da motor reagira na naredbe poslane s Arduina. Motor će se okretati u određenom smjeru, a možete prilagoditi brzinu koristeći PWM signale. Uobičajeni problemi na koje treba obratiti pažnju uključuju obrnute polaritete veze, što može uzrokovati da motor radi u suprotnom smjeru, i lebdeće ulaze koji mogu dovesti do nepredvidivog ponašanja.

Tokom testiranja, možda ćete primijetiti da se brzina motora mijenja na osnovu PWM vrijednosti koje se šalju. Osigurajte da su svi priključci sigurni kako biste izbjegli prekide u protoku struje, što bi moglo utjecati na performanse (u videu u 05:45).

Video vremenski oznaci

  • 00:00- Uvod u projekat
  • 02:15- Pregled hardverskih komponenti
  • 05:45- Demonstracija kontrole motora
  • 08:30- Prolazak kroz kod i objašnjenje

Images

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
Language: C++
/*
 * IR2101 Skica za kontrolu motora
 * Kontrolira DC motor sa brzinom, kočenjem i zaustavljanjem
 * IRF44ZN Mosfeti korišteni za visoku i nisku stranu.
 * IR2101 Vozač vrata korišten za upravljanje MOSFET-ima.
 * možete dobiti kod, gerber datoteku za PCB za proizvodnju i shemu povezivanja
 * sa http://robojax.com/RJT390
 * 
 * napisao Ahmad Shamshiri 19. novembra 2024
 * www.Robojax.com https://youTube.com/@robojax
 */
const int PWM1_HIN1_PIN= 9; // mora biti pinta sa ~
const int EN1_LIN1_PIN= 8;

const int PWM2_HIN2_PIN= 3; // mora biti pinta sa ~
const int EN2_LIN2_PIN= 2;

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


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

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); // u CW na 50% brzine
  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);
  }

}




Resources & references

Files📁

Gerber files