Жоба: RJMD-R2101 H-Bridge MOSFET қозғалтқыш драйвері
Бұл оқулықта біз RJMD-R2101 H-Bridge MOSFET мотор драйверін пайдаланып, тұрақты ток моторын қалай басқаруға болатынын зерттейміз. Бұл жоба IRFZ44N MOSFET-терін IR2101 қақпа драйверлерімен бірге пайдаланып, мотордың жылдамдығы мен бағытын басқарудың тиімді тәсілдерін көрсетеді. Бұл нұсқаулықтың соңында сіз моторды бірқалыпты жылдамдатуға, тежеуге және тоқтатуға мүмкіндік беретін функционалды мотор басқару жүйесіне ие боласыз.

Алға жылжыған сайын біз қажетті аппараттық компоненттерді, сымдарды қосу нұсқауларын және бәрінің қалай жұмыс істейтінін түсіндіретін мысал код үзінділерін қарастырамыз. Көбірек визуалды көрсету үшін, мен байланысты бейнені (бейне 02:15-те) көруді ұсынамын.

Аппараттық құралдар түсіндірілді
Бұл жобаның негізгі компоненттері 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 рейтингтерінен асатын қуат көзінің кернеуін тексеріңіз.
- Моторды сыммен жалғағанда дұрыс полярлықты қамтамасыз етіңіз, әйтпесе зақымдануы мүмкін.
- Электр қуатын қамтамасыз ететін блоктың жанында кернеуді тұрақтандыру үшін декуплирующие конденсаторларды пайдаланыңыз.
Сымдарды қосу нұсқаулары

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

Мотор терминалдарын 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- Кодты қарау және түсіндіру
Суреттер
/*
* 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);
}
}
Ресурстар мен сілтемелер
-
Сыртқы
-
СыртқыIR2101 Gate Driver Datasheetinfineon.com
-
СыртқыIRFZ44N MOSFET datasheetinfineon.com
Файлдар📁
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