Search Code

Проект: RJMD-R2101 H-Bridge MOSFET Драјвер за Мотор

Проект: RJMD-R2101 H-Bridge MOSFET Драјвер за Мотор

Во ова упатство, ќе истражиме како да контролираме DC мотор користејќи го RJMD-R2101 H-Bridge MOSFET мотор управувачот. Овој проект ќе демонстрира како ефективно да се искористат IRFZ44N MOSFET-ите во комбинација со IR2101 управувачите на вратата за контрола на брзината и насоката на моторот. До крајот на овој водич, ќе имате функционален систем за контрола на моторот кој може да забрза, да сопре и да го запре моторот мазно.

RJMD-R2101 H-Bridge MOSFET Motor Driver 0

Како напредуваме, ќе ги покриеме потребните хардверски компоненти, упатствата за поврзување и примерите на код за да разјасниме како сè функционира заедно. За појасна визуелна репрезентација, препорачувам да го гледате поврзаниот видео (во видеото на 02:15).

RJMD-R2101 H-Bridge MOSFET Motor Driver 3

Објаснување на хардверот

Основните компоненти во овој проект се управувачот на вратата IR2101 и MOSFET-ите IRFZ44N. IR2101 е управувач со висока брзина дизајниран за управување со N-канални MOSFET-и во конфигурација на половина мост. Тој овозможува ефикасно вклучување и контрола на MOSFET-ите, што му овозможува на моторот да работи глатко.

IRFZ44N MOSFET-ите делуваат како прекинувачи кои ја контролираат енергијата испорачана до моторот. Кога се активирани од IR2101, овие MOSFET-и можат да управуваат со високи струи, обезбедувајќи ја потребната енергија за погон на моторот. Заедно, овие компоненти овозможуваат прецизна контрола над насоката и брзината на моторот.

Технички лист детали

ПроизводителМеѓународен Ректifier
Број на деловиIRFZ44N
Логика/IO напон10 V (VGS)
Напон на напојување55 V (VDS)
Излезна струја (по канал)49 А (макс)
Пиков тековен (по канал)120 A (макс)
Упатство за PWM фреквенцијадо 100 kHz
Влезни логички прагови2.0 V (VGS(th))
Напонска разлика / RДС(вкл)/ заситеност0.025 Ω (макс)
Термални ограничувања175 °C (макс)
ПакетТО-220
Забелешки / варијантиЧесто се користи во H-Bridge конфигурации

  • Осигурајте соодветно одведување на топлината за MOSFET-ите за да се спречи прегревање.
  • Користете PWM за контрола на брзината за да постигнете мазна работа на моторот.
  • Проверете дали напон на напојувањето не ја надминува оценката на MOSFET.
  • Осигурајте правилна поларитет при поврзувањето на моторот за да избегнете оштетување.
  • Користете декуплирачки кондензатори блиску до напојувањето за да се стабилизира напонот.

Инструкции за поврзување

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

За да се поврзе моторниот управувач RJMD-R2101, започнете со поврзување на напојувањето. Поврзете го VCC пинот на управувачот на извор на напојување од 5V. Пинот GND треба да биде поврзан на земјата на напојувањето. Следно, поврзете ги контролните пинови: PWM сигналот за првиот MOSFET треба да оди на пинотPWM1_HIN1_PIN(кој е пин 9), а пинот за овозможување на првиот MOSFET треба да се поврзе соEN1_LIN1_PIN(pin 8). За вториот MOSFET, поврзете го PWM сигналот наPWM2_HIN2_PIN(pin 3) и пинот за овозможување наEN2_LIN2_PIN(pin 2).

RJMD-R2101 H-Bridge MOSFET Motor Driver 5

Проверете да ги поврзете терминалите на моторот на соодветните излези на H-Bridge. Ако користите Arduino, поврзете ги PWM пиновите на назначените пинови на Arduino платката. На пример, поврзетеPWM1_HIN1_PINна пин 9,EN1_LIN1_PINна пин 8, и така натаму. Оваа конфигурација ќе ви овозможи ефективно да го контролирате моторот.

Примери на код и водичка

Кодот вклучува функции за контрола на брзината и насоката на моторот користејќи ги дефинираните пинови. Подолу е извадок од скицата за контрола на моторот:

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

Во овој дел, ги дефинираме пиновите користени за контрола на првиот MOSFET.PWM1_HIN1_PINсе користи за контрола на брзината, додека EN1_LIN1_PINго овозможува управувачот на моторот.

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

Оваа функција прима еденdirectionпараметар за да се одреди дали моторот треба да се врти во насока на стрелките на часовникот или спротивно на стрелките на часовникот. Тhespeedпараметарот е мапиран на PWM вредност, што овозможува мазно управување со брзината на моторот.

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

Тhestopфункцијата го исклучува моторот со поставување на пинот за овозможување на ниско ниво, ефективно запирајќи го секој проток на струја низ моторот. Ова осигурува брзо запирање без да се оштетат компонентите.

За целосниот код, ве молиме да се обратите на комплетната програма вчитана подолу во членот.

Демонстрација / Што да очекувате

Кога поставувањето ќе биде завршено, треба да забележите дека моторот реагира на командите испратени од Arduino. Моторот ќе се врти во одредената насока, а можете да ја прилагодите брзината користејќи PWM сигнали. Чести проблеми на кои треба да се внимава вклучуваат обратни поларитетни конекции, што може да предизвика моторот да работи во спротивна насока, и лебдење на влезовите што може да доведе до непредвидливо однесување.

За време на тестирањето, може да забележите дека брзината на моторот се менува во зависност од PWM вредностите што се испраќаат. Осигурајте се дека сите врски се безбедни за да се избегнат прекини во протокот на енергија, што може да влијае на перформансите (во видеото на 05:45).

Временски ознаки на видеото

  • 00:00- Вовед во проектот
  • 02:15- Преглед на хардверските компоненти
  • 05:45- Демонстрација на контрола на моторот
  • 08:30- Преглед на кодот и објаснување

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 Мотор Контролен Скица  
 * Контролира ДЦ мотор со брзина, кочница и стоп  
 * IRF44ZN Мосфети користени за висока и ниска страна.  
 * IR2101 Драјвер за врата користен за управување со МОСФЕТите.  
 * можете да го добиете кодот, гербар фајлот за ПЦБ за производство и шемата за поврзување  
 * од http://robojax.com/RJT390  
 * 
 * написано од Ахмад Шамшири на 19 ноември 2024  
 * www.Robojax.com https://youTube.com/@robojax
 */
const int PWM1_HIN1_PIN= 9; // мора да биде чаша со ~
const int EN1_LIN1_PIN= 8;

const int PWM2_HIN2_PIN= 3; // мора да биде чаша со ~
const int EN2_LIN2_PIN= 2;

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


void Motor(boolean, int); // прототип
void brake(); // прототип
void stop(); // прототип

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); // во CW на 50% брзина
  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