درایور موتور DC جاروب‌دار DRV8871

کنترل کامل موتور DC با جریان بالا و حفاظت‌های داخلی

درایور موتور DC DRV8871: راه‌حل یکپارچه و هوشمند برای کنترل موتورهای DC جاروب‌دار

درایور موتور DC DRV8871 یک درایور موتور DC جاروب‌دار با راندمان بالا و حفاظت‌های گسترده است که توسط Texas Instruments طراحی شده. این تراشه با قابلیت کنترل جهت، سرعت و ترمز موتورهای DC و پشتیبانی از جریان خروجی تا ۳.۶A (پیک)، انتخابی ایده‌آل برای رباتیک، اتوماسیون، اسباب‌بازی‌های کنترلی و سیستم‌های صنعتی کوچک محسوب می‌شود.


ویژگی‌های حرفه‌ای و مزایای کلیدی

  • کنترل کامل موتور: امکان حرکت رو به جلو/عقب، ترمز و حالت خلاص (Coast).

  • دو روش کنترل:

    1. کنترل PWM + Ph/EN: برای کنترل سرعت و جهت بهینه.

    2. کنترل IN1/IN2: ساده و مستقیم (مشابه L298N).

  • جریان خروجی بالا: ۳.۶A جریان پیک و ۱.۷A جریان مداوم (با خنک‌کاری مناسب).

  • راندمان فوق‌العاده: MOSFETهای N-Channel با Rds(on) پایین (۲۸۰mΩ مجموع) و راندمان تا ۹۷%.

  • حفاظت‌های جامع داخلی:

    • محدود‌کننده جریان (Current Limiting)

    • حفاظت اتصال کوتاه (Short Circuit Protection)

    • محافظت از گرمای بیش از حد (Thermal Shutdown)

    • محافظت افت ولتاژ (Undervoltage Lockout)

  • حالت خواب (Sleep Mode): کاهش مصرف به ۱µA در حالت غیرفعال.


مشخصات فنی دقیق DRV8871

پارامتر مقدار / مشخصات
ولتاژ موتور (VM) ۴.۵ تا ۴۵ ولت (رنج وسیع)
ولتاژ منطق (VCC) ۲.۷ تا ۵.۵ ولت (سازگار با ۳.۳V و ۵V منطق)
جریان خروجی مداوم ۱.۷ آمپر (با هیت‌سینک مناسب)
جریان خروجی پیک ۳.۶ آمپر (با هیت‌سینک مناسب)
مقاومت داخلی کل (Rds(on)) ۲۸۰ میلی‌اهم (در ۲۵°C)
فرکانس PWM تا ۲۵۰ کیلوهرتز (توصیه: ۲۰-۵۰ کیلوهرتز)
راندمان تا ۹۷٪ (بسته به شرایط کار)
پکیج تراشه HTSSOP-16 با پد حرارتی (PowerPAD)
حالت‌های کنترل PWM/EN, IN1/IN2 (انتخاب با پایه PMODE)
دمای کاری -۴۰°C تا +۱۲۵°C
مصرف در حالت Sleep ۱ میکروآمپر

پین‌های کلیدی و عملکرد

پین نام عملکرد
VM ولتاژ موتور تغذیه اصلی موتور (۴.۵-۴۵V)
VCC ولتاژ منطق تغذیه بخش منطق (۲.۷-۵.۵V)
GND زمین اتصال زمین
OUT1, OUT2 خروجی موتور اتصال به موتور DC
nSLEEP فعال/غیرفعال HIGH=فعال, LOW=حالت خواب (Sleep)
nFAULT خطا خروجی Open-Drain، LOW هنگام خطا (گرما، جریان)
IN1, IN2 ورودی کنترل ۱ برای حالت کنترل IN/IN
PH, EN ورودی کنترل ۲ برای حالت کنترل PH/EN
PMODE انتخاب حالت LOW=حالت IN/IN, HIGH=حالت PH/EN

حالت‌های کنترل موتور

۱. حالت IN/IN (PMODE = LOW) – مشابه L298N:

IN1 IN2 عملکرد OUT1/OUT2
LOW LOW توقف/خلاص (Coast)
HIGH LOW جلو
LOW HIGH عقب
HIGH HIGH ترمز (Brake)

۲. حالت PH/EN (PMODE = HIGH) – کنترل بهینه:

PH (جهت) EN (PWM سرعت) عملکرد
LOW/HIGH PWM حرکت با سرعت کنترل‌شده
X LOW توقف/خلاص (Coast)
LOW/HIGH HIGH ترمز (Brake)

اتصال به آردوینو (مثال با حالت IN/IN)

// پین‌های اتصال به DRV8871 (حالت IN/IN)
const int IN1_PIN = 5;  // می‌تواند PWM باشد برای کنترل سرعت
const int IN2_PIN = 6;  // می‌تواند PWM باشد برای کنترل سرعت
const int nSLEEP_PIN = 7;

void setup() {
  pinMode(IN1_PIN, OUTPUT);
  pinMode(IN2_PIN, OUTPUT);
  pinMode(nSLEEP_PIN, OUTPUT);
  
  digitalWrite(nSLEEP_PIN, HIGH); // فعال کردن درایور
  Serial.begin(9600);
}

void setMotor(int speed) { // speed از -255 تا +255
  if (speed > 0) {
    // حرکت به جلو
    analogWrite(IN1_PIN, speed); // کنترل سرعت با PWM
    digitalWrite(IN2_PIN, LOW);
  } else if (speed < 0) {
    // حرکت به عقب
    digitalWrite(IN1_PIN, LOW);
    analogWrite(IN2_PIN, -speed); // کنترل سرعت با PWM
  } else {
    // ترمز
    digitalWrite(IN1_PIN, HIGH);
    digitalWrite(IN2_PIN, HIGH);
  }
}

void loop() {
  // حرکت به جلو با سرعت 70%
  setMotor(180); // 180 ≈ 70% از 255
  delay(2000);
  
  // ترمز
  setMotor(0);
  delay(1000);
  
  // حرکت به عقب با سرعت 50%
  setMotor(-128); // 128 ≈ 50% از 255
  delay(2000);
  
  // حالت خلاص (Coast)
  digitalWrite(IN1_PIN, LOW);
  digitalWrite(IN2_PIN, LOW);
  delay(1000);
}

کاربردهای اصلی

  1. ربات‌های متحرک: کنترل موتورهای چرخ ربات‌های تعقیب خط، مسیریاب.

  2. اسباب‌بازی‌های RC: کنترل ماشین‌ها، قایق‌ها، هواپیماهای مدل.

  3. سیستم‌های مکانیکی: کنترل Actuatorهای خطی، پمپ‌ها، نوار نقاله.

  4. ابزارهای برقی: کنترل سرعت دریل، فرزهای کوچک.

  5. سیستم‌های خودرویی: برف‌پاک‌کن، شیشه بالابر، آینه‌های برقی.

  6. اتوماسیون خانگی: کنترل پرده، درب گاراژ، صندلی‌های متحرک.


نکات حیاتی برای طراحی و استفاده

⚠️ خازن‌های بای‌پس: حداقل دو خازن نزدیک تراشه الزامی است:
– خازن ۱۰۰nF سرامیکی بین VM و GND
– خازن ۱۰۰µF الکترولیتی بین VM و GND (برای موتورهای با جریان بالا)
⚠️ خنک‌کاری: برای جریان‌های بالای ۱A، هیت‌سینک روی پد حرارتی (PowerPAD) و تهویه مناسب ضروری است.
🔧 دیودهای محافظ: علی‌رغم وجود حفاظت داخلی، برای بارهای القایی سنگین (مانند موتورهای بزرگ)، دیودهای Flyback (شاتکی) روی موتور توصیه می‌شود.
📊 محدودیت جریان: می‌توان با مقاومت روی پایه ISEN جریان محدود را تنظیم کرد: I_limit = V_ref / (10 × R_ISEN) که V_ref ≈ 0.5V.
🔌 منبع تغذیه: از منبع با آمپر کافی و ثبات ولتاژ استفاده کنید. نوسان ولتاژ می‌تواند باعث خطا شود.


مقایسه با درایورهای مشابه

درایور DRV8871 L298N TB6612FNG VNH2SP30
ولتاژ ماکزیمم ۴۵V ۴۶V ۱۳.۵V ۱۶V
جریان مداوم ۱.۷A ۲A (هر پل) ۱.۲A ۱۴A
راندمان تا ۹۷% (MOSFET) ~۷۸% (BJT) تا ۹۵% (MOSFET) ~۹۰% (MOSFET)
حفاظت‌ها جامع محدود متوسط خوب
اندازه/پیچیدگی فشرده (IC) بزرگ (ماژول) فشرده بزرگ (ماژول)
قیمت مناسب ارزان مناسب گران

پروژه عملی: ربات دوچرخ کنترل‌شده با بلوتوث

قطعات:

  • آردوینو نانو

  • ماژول درایور DRV8871

  • دو موتور DC با گیربکس (N20 یا مشابه)

  • ماژول بلوتوث HC-05

  • باتری لیتیوم ۲S (۷.۴V) یا ۳S (۱۱.۱V)

  • شاسی ربات

نحوه کنترل: اپلیکیشن موبایل → بلوتوث → آردوینو → DRV8871 → کنترل سرعت و جهت هر موتور به صورت مستقل.


سوالات متداول (FAQ)

✅ آیا می‌توانم دو موتور را با یک DRV8871 کنترل کنم؟
خیر. هر DRV8871 فقط یک موتور DC جاروب‌دار را کنترل می‌کند. برای دو موتور به دو عدد DRV8871 یا یک درایور دوکاناله مانند DRV8833 نیاز دارید.

✅ تفاوت حالت Coast و Brake چیست؟

  • Coast (خلاص): موتور آزادانه می‌چرخد (مثل خلاص کردن دنده ماشین).

  • Brake (ترمز): ترمیز الکتریکی، موتور سریع‌تر می‌ایستد اما جریان می‌کشد.

✅ پایه nFAULT چگونه کار می‌کند؟
این پایه در حالت عادی HIGH (از طریق مقاومت Pull-up) است. در صورت رخ دادن خطا (گرمای زیاد، جریان بالا)، LOW می‌شود. می‌توان آن را به یک پین وقفه (Interrupt) آردوینو وصل کرد.

✅ آیا نیاز به مقاومت Pull-up روی پایه‌های ورودی دارم؟
بله، برای پایه‌های nSLEEP و PMODE بهتر است مقاومت Pull-up به VCC وصل شود. برای حالت IN/IN، خروجی آردوینو به طور ذاتی این کار را می‌کند.

✅ چگونه جریان خروجی را محدود کنم؟
با اتصال یک مقاومت بین پایه ISEN و زمین می‌توان جریان محدود را تنظیم کرد. برای غیرفعال کردن، این پایه را مستقیماً به زمین وصل کنید.

✅ آیا برای موتورهای ۱۲V ۱۰A مناسب است؟
خیر. جریان مداوم DRV8871 حدود ۱.۷A است. برای موتورهای ۱۰A به درایورهای قدرتمندتر (مثل VNH2SP30, MC33886) یا MOSFETهای خارجی با درایور مناسب نیاز دارید.

✅ مشکل نویز PWM روی موتور چیست؟
برای کاهش نویز صوتی (صدای سوت):
۱. فرکانس PWM را بالا ببرید (به محدوده ۲۰-۵۰kHz).
۲. از فیلتر LC روی خروجی موتور استفاده کنید.
۳. سیم‌کشی را کوتاه و شیلددار کنید.


چرا درایور DRV8871 را از ما بخرید؟

✅ ماژول با کیفیت: استفاده از تراشه اصلی TI، PCB دو لایه با لایه زمین مناسب.
✅ خازن‌های با کیفیت: خازن‌های سرامیکی X7R و الکترولیتی پلیمری.
✅ پد حرارتی لحیم‌شده: امکان نصب هیت‌سینک برای کار در جریان بالا.
✅ تست کامل: تست جریان، حفاظت‌ها و عملکرد PWM در ولتاژهای مختلف.


پکیج پیشنهادی برای رباتیک

  1. ماژول درایور موتور DRV8871 (۲ عدد برای ربات دوچرخ)

  2. موتور DC با گیربکس N20 (۲ عدد، ۶V یا ۱۲V)

  3. چرخ رباتیک با کوپلر متناسب

  4. باتری لیتیوم ۲S 7.4V با سوکت

  5. هیت‌سینک آلومینیومی برای درایورها

  6. دیود شاتکی ۳A (۴ عدد برای حفاظت)


نحوه انتخاب صحیح

  1. ولتاژ موتور: مطمئن شوید ولتاژ موتور شما بین ۴.۵V تا ۴۵V باشد.

  2. جریان موتور: جریان کاری موتور باید کمتر از ۱.۷A مداوم باشد. جریان استارت می‌تواند تا ۳.۶A باشد.

  3. کنترل: برای کنترل سرعت، از پین‌های PWM آردوینو استفاده کنید.

  4. منبع تغذیه: باتری یا آداپتور با آمپر کافی (حداقل ۲-۳ برابر جریان موتور) انتخاب کنید.