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.

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

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
| Fabrikant | Internasionale Reguleerder |
|---|---|
| Onderdeel nommer | IRFZ44N |
| Logika/IO spanning | 10 V (VGS) |
| Voorsienings spanning | 55 V (VDS) |
| Uitsetstroom (per kanaal) | 49 A (maks) |
| Piekstroom (per kanaal) | 120 A (maks) |
| PWM frekwensie riglyne | tot 100 kHz |
| Invoer logika drempels | 2.0 V (VGS(th)) |
| Spanningstoename / RDS(on)/ versadiging | 0.025 Ω (maks) |
| Termiese grense | 175 °C (maks) |
| Pakket | TO-220 |
| Notas / variante | Gemeenlik 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

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

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
/*
* 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
-
Buitenburg
-
BuitenburgIR2101 Gate Driver Datasheetinfineon.com
-
BuitenburgIRFZ44N MOSFET datasheetinfineon.com
Lêers📁
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