پروژه: RJMD-R2101 درایور موتور MOSFET H-Bridge
در این آموزش، ما به بررسی نحوه کنترل یک موتور DC با استفاده از درایور موتور MOSFET RJMD-R2101 H-Bridge خواهیم پرداخت. این پروژه نشان خواهد داد که چگونه میتوان به طور مؤثر از MOSFETهای IRFZ44N به همراه درایورهای دروازه IR2101 برای کنترل سرعت و جهت موتور استفاده کرد. در پایان این راهنما، شما یک تنظیمات کنترل موتور عملی خواهید داشت که میتواند موتور را به آرامی شتاب دهد، ترمز کند و متوقف کند.

با پیشرفت، ما اجزای سختافزاری لازم، دستورالعملهای سیمکشی و نمونه کدهایی را بررسی خواهیم کرد تا روشن شود که چگونه همه چیز با هم کار میکند. برای نمایش بصریتر، تماشای ویدئوی مرتبط (در ویدئو در ۰۲:۱۵) را توصیه میکنم.

توضیح سختافزار
اجزای اصلی در این پروژه درایور دروازه IR2101 و MOSFETهای IRFZ44N هستند. IR2101 یک درایور با سرعت بالا است که برای راهاندازی MOSFETهای N-channel در یک پیکربندی نیمهپل طراحی شده است. این درایور امکان سوئیچینگ و کنترل کارآمد MOSFETها را فراهم میکند و به موتور اجازه میدهد به طور روان کار کند.
MOSFETهای IRFZ44N به عنوان عناصر سوئیچینگ عمل میکنند که قدرت تحویلی به موتور را کنترل میکنند. هنگامی که توسط IR2101 فعال میشوند، این MOSFETها میتوانند جریانهای بالا را مدیریت کنند و قدرت لازم برای راهاندازی موتور را فراهم کنند. این اجزا به طور مشترک امکان کنترل دقیق بر جهت و سرعت موتور را فراهم میکنند.
جزئیات برگه داده
| تولیدکننده | مبدل بینالمللی |
|---|---|
| شماره قطعه | IRFZ44N |
| ولتاژ منطقی/ورودی و خروجی | ۱۰ ولت (VGS) |
| ولتاژ تأمین | ۵۵ ولت (VDS) |
| جریان خروجی (به ازای هر کانال) | ۴۹ آ (حداکثر) |
| جریان اوج (به ازای هر کانال) | ۱۲۰ آ (حداکثر) |
| راهنمایی فرکانس PWM | تا ۱۰۰ کیلوهرتز |
| آستانههای منطقی ورودی | ۲.۰ ولت (VGS(th)) |
| افت ولتاژ / RDS(on)/ اشباع | ۰.۰۲۵ Ω (حداکثر) |
| محدودیتهای حرارتی | ۱۷۵ درجه سانتیگراد (حداکثر) |
| بسته | TO-220 |
| یادداشتها / واریانتها | به طور معمول در پیکربندیهای H-Bridge استفاده میشود |
- اطمینان حاصل کنید که هیت سینک مناسب برای MOSFETها وجود دارد تا از گرم شدن بیش از حد جلوگیری شود.
- از PWM برای کنترل سرعت استفاده کنید تا عملکرد موتور به طور یکنواخت انجام شود.
- ولتاژ منبع تغذیه را تأیید کنید که از مشخصات MOSFET فراتر نرود.
- هنگام سیمکشی موتور، از قطبیت صحیح اطمینان حاصل کنید تا از آسیب جلوگیری شود.
- از خازنهای جداکننده در نزدیکی منبع تغذیه برای پایدار کردن ولتاژ استفاده کنید.
دستورالعملهای سیمکشی

برای سیمکشی درایور موتور RJMD-R2101، ابتدا منبع تغذیه را وصل کنید. پایه VCC درایور را به یک منبع تغذیه 5 ولتی متصل کنید. پایه GND باید به زمین منبع تغذیه متصل شود. سپس، پایههای کنترل را وصل کنید: سیگنال PWM برای اولین MOSFET باید به پایه متصل شود.PWM1_HIN1_PIN(که پایه 9 است)، و پایه فعالسازی برای اولین MOSFET باید به متصل شودEN1_LIN1_PIN(pin 8). برای MOSFET دوم، سیگنال PWM را بهPWM2_HIN2_PIN(پایه ۳) و پایه فعالسازی بهEN2_LIN2_PIN(pin 2).

مطمئن شوید که پایههای موتور را به خروجیهای مناسب H-Bridge متصل کنید. اگر از آردوینو استفاده میکنید، پایههای PWM را به پایههای مشخص شده روی برد آردوینو متصل کنید. به عنوان مثال، متصل کنیدPWM1_HIN1_PINبه پایه 9،EN1_LIN1_PINبه پایه ۸ و به همین ترتیب. این تنظیمات به شما امکان میدهد تا موتور را به طور مؤثر کنترل کنید.
نمونههای شِفر (کود) و راهنمایی
بخش شِفر (کود) شامل توابعی برای کنترل سرعت و جهت موتور با استفاده از پایههای تعریفشده است. در زیر بخشی از طرح کنترل موتور آورده شده است:
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عملکرد موتور را با پایین آوردن پایه فعالسازی غیرفعال میکند و به طور مؤثر جریان الکتریسیته را از طریق موتور متوقف میکند. این امر توقف سریع را بدون آسیب به اجزا تضمین میکند.
برای شِفر (کود) کامل، لطفاً به برنامه کامل بارگذاری شده در زیر مقاله مراجعه کنید.
نمایش / چه انتظاری باید داشت
زمانی که راهاندازی کامل شد، باید مشاهده کنید که موتور به دستورات ارسال شده از آردوینو پاسخ میدهد. موتور در جهت مشخص شده میچرخد و میتوانید با استفاده از سیگنالهای PWM سرعت را تنظیم کنید. مشکلات رایجی که باید به آنها توجه کنید شامل اتصالات قطب معکوس است که ممکن است باعث شود موتور در جهت مخالف بچرخد و ورودیهای شناور که میتوانند منجر به رفتار نامنظم شوند.
در حین آزمایش، ممکن است متوجه تغییر سرعت موتور بر اساس مقادیر PWM ارسال شده شوید. اطمینان حاصل کنید که تمام اتصالات محکم هستند تا از قطع شدن جریان برق جلوگیری شود، که میتواند بر عملکرد تأثیر بگذارد (در ویدیو در 05:45).
زمانبندی ویدیو
- ۰۰:۰۰- مقدمهای بر پروژه
- ۰۲:۱۵- مرور کلی بر اجزای سختافزاری
- ۰۵:۴۵- نمایش کنترل موتور
- ۰۸:۳۰- مرور شِفر (کود) و توضیح
/*
* طرح کنترل موتور IR2101
* کنترل موتور DC با سرعت، ترمز و توقف
* MOSFETهای IRF44ZN برای سمت بالا و سمت پایین استفاده میشوند.
* درایور دروازه IR2101 برای راهاندازی MOSFETها استفاده میشود.
* شما میتوانید شِفر (کود)، فایل گربر برای تولید PCB و دیاگرام سیمکشی را از 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 با سرعت ۵۰٪
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);
}
}
منابع و مراجع
-
خارجیبرگه اطلاعات درایور دروازه IR2101infineon.com
-
خارجیبرگه مشخصات ترانزیستور MOSFET IRFZ44Ninfineon.com
فایلها📁
سایر فایلها
-
RJMD-R2101_H-Bridge_Motor_Driver_Manufacturing_Pack.zipدرایور موتور MOSFET H-Bridge شامل سه فایل است که ممکن است برای ثبت سفارش به آنها نیاز داشته باشید. شامل: لایههای PCB، فایل Gerber فشرده، فایل اکسل BMO و فایل مختصات
RJMD-R2101_3_file_to Order.zip0.17 MB