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.

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).

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 dijela | IRFZ44N |
| Logika/IO napon | 10 V (VGS) |
| Napon napajanja | 55 V (VDS) |
| Izlazna struja (po kanalu) | 49 A (maks) |
| Vrhunska struja (po kanalu) | 120 A (maks) |
| Upute za PWM frekvenciju | do 100 kHz |
| Ulazni logički pragovi | 2.0 V (VGS(th)) |
| Napon pada / RDS(on)/ zasićenje | 0.025 Ω (maks) |
| Toplotne granice | 175 °C (maks) |
| Pakovanje | TO-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

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).

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
/*
* 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
-
External
-
ExternalIR2101 Gate Driver Datasheetinfineon.com
-
ExternalIRFZ44N MOSFET datasheetinfineon.com
Files📁
Gerber files
-
RJMD-R2101_H-Bridge_Motor_Driver_Manufacturing_Pack.zipH-Bridge MOSFET Motor Driver all three files that you may need to place order. Contains: PCB Layers Gerber zip, BMO excel file and coordinate file
RJMD-R2101_3_file_to Order.zip0.17 MB