Search Code

Жоба: RJMD-R2101 H-Bridge MOSFET қозғалтқыш драйвері

Жоба: RJMD-R2101 H-Bridge MOSFET қозғалтқыш драйвері

Бұл оқулықта біз 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 қақпа жүргізушісі және IRFZ44N MOSFET-тері. IR2101 - жарты көпір конфигурациясында N-каналды MOSFET-терді басқаруға арналған жоғары жылдамдықты жүргізуші. Ол MOSFET-тердің тиімді қосылуын және басқарылуын қамтамасыз етеді, бұл мотордың тегіс жұмыс істеуіне мүмкіндік береді.

IRFZ44N MOSFET-тері моторға жеткізілетін қуатты басқару үшін қосқыш элементтер ретінде әрекет етеді. IR2101 арқылы іске қосылған кезде, бұл MOSFET-тер жоғары токтарды қабылдай алады, моторды басқару үшін қажетті қуатты қамтамасыз етеді. Бұл компоненттер бірге мотордың бағыты мен жылдамдығын дәл басқаруға мүмкіндік береді.

Техникалық сипаттама мәліметтері

ӨндірушіХалықаралық түзеткіш
Бөлшек нөміріIRFZ44N
Логика/Кернеу вх.10 В (VGS)
Жабдықтау кернеуі55 В (VDS)
Шығыс токы (арна бойынша)49 A (макс)
Шың ток (арна бойынша)120 A (макс)
PWM жиілігі бойынша нұсқаулық100 кГц-ке дейін
Кіріс логика шектер2.0 В (VGS(th))
Кернеу түсуі / RDS(қосулы)/ қанығу0.025 Ом (макс)
Жылу шектеулері175 °C (макс)
ПакетTO-220
Ескертпелер / нұсқаларH-көпір конфигурацияларында жиі қолданылады

  • MOSFET-тердің қызып кетуін болдырмау үшін дұрыс жылу таратуын қамтамасыз етіңіз.
  • PWM пайдаланып жылдамдықты басқару арқылы мотордың жұмысын тегіс ету.
  • MOSFET рейтингтерінен асатын қуат көзінің кернеуін тексеріңіз.
  • Моторды сыммен жалғағанда дұрыс полярлықты қамтамасыз етіңіз, әйтпесе зақымдануы мүмкін.
  • Электр қуатын қамтамасыз ететін блоктың жанында кернеуді тұрақтандыру үшін декуплирующие конденсаторларды пайдаланыңыз.

Сымдарды қосу нұсқаулары

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

RJMD-R2101 мотор драйверін сыммен қосу үшін, алдымен қуат көзін қосыңыз. Драйвердің VCC пинін 5V қуат көзіне қосыңыз. GND пині қуат көзінің жеріне қосылуы тиіс. Келесі, басқару пиндерін қосыңыз: бірінші MOSFET үшін PWM сигналы пинге баруы керек.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_PIN9-шы пинге,EN1_LIN1_PIN8-ге бекіту, және солай жалғастыра беріңіз. Бұл конфигурация сізге моторды тиімді басқаруға мүмкіндік береді.

Код мысалдары мен нұсқаулықтар

Код бөлімі анықталған пиндерді пайдалана отырып, мотордың жылдамдығы мен бағытын басқаруға арналған функцияларды қамтиды. Төменде моторды басқару сызбасынан үзінді берілген:

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параметр, мотордың сағат тілімен немесе сағат тіліне қарсы айналуы керек екенін анықтайды.speedпараметр PWM мәніне сәйкес келеді, бұл мотор жылдамдығын тегіс басқаруға мүмкіндік береді.

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

Бұлstopфункция моторды қосу пинін төмендету арқылы өшіріп, мотор арқылы токтың ағып кетуін тоқтатады. Бұл компоненттерге зақым келтірмей, жылдам тоқтауды қамтамасыз етеді.

М толық код үшін мақаланың астында жүктелген толық бағдарламаға сілтеме жасаңыз.

Көрсетілім / Не күту керек

Орнату аяқталғаннан кейін, сіз мотордың Arduino-дан жіберілген командаларға жауап беретінін байқайсыз. Мотор көрсетілген бағытта айналады, ал жылдамдықты PWM сигналдарын пайдаланып реттей аласыз. Назар аудару керек жалпы мәселелерге полярлық байланыстардың кері болуы, бұл мотордың қарсы бағытта жұмыс істеуіне себеп болуы мүмкін, және еркін кірістер, бұл тұрақсыз мінез-құлыққа әкелуі мүмкін.

Сынақ кезінде мотордың жылдамдығы жіберілген PWM мәндеріне байланысты өзгеретінін байқауыңыз мүмкін. Қуат ағынындағы үзілістерді болдырмау үшін барлық қосылымдардың сенімді екеніне көз жеткізіңіз, бұл өнімділікке әсер етуі мүмкін (бейнемен 05:45).

Бейне уақыт белгілері

  • 00:00- Жобамен танысу
  • 02:15- Аппараттық компоненттердің шолуы
  • 05:45- Моторлық басқаруды көрсету
  • 08:30- Кодты қарау және түсіндіру

Суреттер

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
Тіл: C++
/*
 * IR2101 Моторды басқару сызбасы
 * DC моторды жылдамдық, тежегіш және тоқтату арқылы басқарады
 * IRF44ZN MOSFET-тер жоғары және төмен жағында қолданылады.
 * IR2101 Қақпақ драйвері MOSFET-терді басқару үшін қолданылады.
 * Сіз кодты, PCB-ны өндіру үшін гербар файлды және сым схемасын ала аласыз
 * http://robojax.com/RJT390 сайтынан
 * 
 * Ахмад Шамшири жазған, 2024 жылғы 19 қараша
 * www.Robojax.com https://youTube.com/@robojax
 */
const int PWM1_HIN1_PIN= 9; // ~ барлығы 1 пинт болуы керек
const int EN1_LIN1_PIN= 8;

const int PWM2_HIN2_PIN= 3; // ~ барлығы 1 пинт болуы керек
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);
  }

}




Ресурстар мен сілтемелер

Файлдар📁

Gerber files