کنترل چندین موتور DC با استفاده از ماجیول BTS7960 و آردوینو

کنترل چندین موتور DC با استفاده از ماجیول BTS7960 و آردوینو

در این آموزش، ما به بررسی نحوه کنترل چندین موتور DC با استفاده از ماجیول BTS7960 و یک آردوینو خواهیم پرداخت. BTS7960 یک درایور موتوری قدرتمند است که قادر به مدیریت جریان‌های بالا می‌باشد و امکان کنترل دقیق جهت و سرعت موتور را از طریق PWM (مدولاسیون عرض پالس) فراهم می‌کند. در پایان این پروژه، شما یک سیستم عملیاتی خواهید داشت که می‌تواند دو موتور DC را کنترل کند و آن‌ها را در دو جهت عقربه‌های ساعت و خلاف عقربه‌های ساعت بچرخاند. این آموزش شما را از طریق تنظیمات سخت‌افزاری، دستورالعمل‌های سیم‌کشی و کدی که برای راه‌اندازی موتورها نیاز است راهنمایی خواهد کرد. برای درک بهتر کل فرآیند، حتماً ویدیو همراه را بررسی کنید (در ویدیو در 00:00).

BTS7960_module-3

توضیح سخت‌افزار

اجزای اصلی این پروژه ماجیول درایور موتور BTS7960 است. این ماجیول شامل دو درایور H-bridge است که می‌توانند با تغییر قطبیت ولتاژ اعمال شده به موتور، جهت موتور را کنترل کنند. هر درایور می‌تواند تا 43 آمپر جریان را مدیریت کند که آن را برای کاربردهای پرقدرت مناسب می‌سازد. ماجیول همچنین از حفاظت داخلی در برابر شرایط دما و جریان بیش از حد برخوردار است. علاوه بر BTS7960، به یک برد آردوینو برای کنترل موتور ها نیاز دارید. آردوینو سیگنال‌های PWM را به درایور موتور ارسال می‌کند که به شما این امکان را می‌دهد تا سرعت و جهت موتور ها را تنظیم کنید. اتصالات بین آردوینو و ماجیول BTS7960 حیاتی هستند، زیرا تعیین کننده نحوه پاسخ موتور ها به سیگنال‌ها هستند.

جزئیات ورقه داده

تولیدکننده اینفینئون تکنولوژی‌ها
شماره قطعه BTS7960
ولتاژ منطق/ ورودی و خروجی ۳.۳ ولت تا ۵ ولت
ولتاژ تغذیه ۵-۴۰ ولت
جریان خروجی (به ازای هر کانال) ۴۳ آ مکس
جریان اوج (به ازای هر کانال) ۶۰ آ
راهنمایی فرکانس PWM ۵-۲۵ کیلوهرتز
آستانه‌های منطقی ورودی ۰.۸ ولت (بالا)، ۰.۳ ولت (پایین)
افت ولتاژ / RDS(on)/ اشباع ۱۶ میلی‌اهم
محدودیت‌های حرارتی حداکثر ۱۵۰ درجه سانتی‌گراد
بسته TO-263
یادداشت‌ها / انواع پیکربندی دوگانه H-bridge

  • اطمینان حاصل کنید که هنگام کار با جریان‌های بالا، هیت سینک مناسبی وجود داشته باشد.
  • از اندازه مناسب سیم برای اتصالات برق استفاده کنید.
  • پایه‌های مربوط به Arduino و BTS7960 را دوباره بررسی کنید.
  • پیاده‌سازی محدودیت جریان برای جلوگیری از آسیب به ماجیول.
  • از خازن‌های جداسازی در نزدیکی منبع تغذیه برای پایداری استفاده کنید.
BTS7960_ماجیول-2

دستورالعمل‌های سیم‌کشی

BTS7960-_2_motor_wiring

برای اتصال ماجیول BTS7960 به آردوینو، این اتصالات را به دقت دنبال کنید: 1. **اتصالات برق**: پایه مثبت منبع تغذیه خود را به پایه B+ ماجیول BTS7960 و پایه منفی را به پایه B- متصل کنید. اطمینان حاصل کنید که منبع تغذیه با نیازهای ولتاژ موتورهایتان مطابقت دارد. 2. **اتصالات موتور**: سیم‌های موتور را به پایه‌های M+ و M- ماجیول متصل کنید. این کار به ماجیول امکان کنترل موتور را می‌دهد. 3. **پایه‌های آردوینو**: پایه‌های زیر را روی آردوینو به ماجیول BTS7960 متصل کنید: - پایه 3 (RPWM) به پایه RPWM ماجیول. - پایه 4 (R_EN) به پایه R_EN ماجیول. - پایه 5 (R_IS) به پایه R_IS ماجیول. - پایه 6 (LPWM) به پایه LPWM ماجیول. - پایه 7 (L_EN) به پایه L_EN ماجیول. - پایه 8 (L_IS) به پایه L_IS ماجیول. 4. **اتصالات زمین**: پایه زمین آردوینو را به پایه زمین ماجیول BTS7960 متصل کنید تا یک مرجع مشترک برای سیگنال‌ها ایجاد شود. اطمینان حاصل کنید که همه اتصالات محکم هستند تا از هر گونه رفتار غیرمنتظره در حین عملیات جلوگیری شود.

کتابخانه مورد نیاز را نصب کنید

برای نصب الrobojax_BTS7960_motor_driver_libraryدر IDE آردوینو، ابتدا فایل ZIP کتابخانه را از واصل ارائه شده دانلود کنید. پس از ذخیره فایل، IDE آردوینو خود را باز کرده و به آن مراجعه کنید.اسکچ > شامل کتابخانه > افزودن کتابخانه .ZIP.... در پنجره انتخاب فایل، به فایل ZIP دانلود شده بروید، آن را انتخاب کنید و روی "باز کردن" کلیک کنید. سپس IDE کتابخانه را نصب خواهد کرد. شما می‌توانید با بررسی، نصب موفقیت‌آمیز را تأیید کنید.پرونده > نمونه‌هامنویی که باید یک دسته جدید به نام "کتابخانه درایور موتور Robojax BTS7960" در آن ظاهر شود. اکنون می‌توانید سرآیند کتابخانه را در شِفر (کود) خود وارد کنید با#include <RobojaxBTS7960.h>.

مثال‌های شِفر (کود) و راهنمایی

کدهای زیر نحوه راه‌اندازی و کنترل موتورها با استفاده از ماجیول BTS7960 را نشان می‌دهند. تنظیمات اولیه پایه‌های متصل به موتورها را تعریف کرده و اشیاء موتورها را مقداردهی اولیه می‌کند:


// pins for motor 1
#define RPWM_1 3
#define R_EN_1 4
#define R_IS_1 5
#define LPWM_1 6
#define L_EN_1 7
#define L_IS_1 8

// pins for motor 2
#define RPWM_2 9
#define R_EN_2 10
#define R_IS_2 12
#define LPWM_2 11
#define L_EN_2 A0
#define L_IS_2 A1

#include 
RobojaxBTS7960 motor1(R_EN_1, RPWM_1, R_IS_1, L_EN_1, LPWM_1, L_IS_1, debug);
RobojaxBTS7960 motor2(R_EN_2, RPWM_2, R_IS_2, L_EN_2, LPWM_2, L_IS_2, debug);

این بخش از شِفر (کود) تعاریف پایه را تنظیم کرده و نمونه‌هایی از کلاس `RobojaxBTS7960` را برای هر دو موتور ایجاد می‌کند. تابع `setup()` موتور‌ها و نمایشگر مسلسل را راه‌اندازی می‌کند:


void setup() {
  Serial.begin(9600); // setup Serial Monitor
  motor1.begin();
  motor2.begin();
}

اینجا، متد `motor.begin()` هر موتور را برای عملکرد آماده می‌کند و به شما این امکان را می‌دهد که آنها را در تابع `loop()` کنترل کنید. در تابع `loop()`، می‌توانید موتورها را با دستورات زیر کنترل کنید:


void loop() {
   motor1.rotate(100, CW); // run motor 1 at 100% speed CW
   delay(5000); // run for 5 seconds
   motor1.stop(); // stop motor 1
   delay(3000); // stop for 3 seconds
   motor2.rotate(100, CCW); // run motor 2 at 100% speed CCW
   delay(5000); // run for 5 seconds
   motor2.stop(); // stop motor 2
   delay(3000); // stop for 3 seconds
}

این بخش نشان می‌دهد که چگونه موتورها را در هر دو جهت بچرخانید و سرعت آن‌ها را کنترل کنید. شِفر (کود) کامل در زیر مقاله برای مرجع شما بارگذاری شده است.

نمایشگاه / چه انتظاری باید داشت

پس از اتمام سیم‌کشی و بارگذاری شِفر (کود)، باید مشاهده کنید که موتورها در هر دو جهت عقربه‌های ساعت و خلاف عقربه‌های ساعت می‌چرخند. شِفر (کود) هر موتور را به مدت پنج ثانیه با حداکثر سرعت اجرا خواهد کرد، سه ثانیه متوقف می‌شود و این روند تکرار می‌شود. به هرگونه مشکل احتمالی مانند اتصالات معکوس یا تأمین توان ناکافی توجه کنید. اگر با مشکلاتی مواجه شدید، سیم‌کشی خود را دوباره بررسی کنید و اطمینان حاصل کنید که منبع تغذیه کافی است (در ویدیو در 00:00).

زمان‌بندی ویدئوها

  • ۰۰:۰۰ شروع
  • ۰۰:۴۸ توضیح سخت‌افزار
  • 04:06 دیتاشیت مشاهده شد
  • 07:07 توضیحات سیم‌کشی
  • ۹:۰۰ شِفر (کود) توضیح داده شده است
  • ۱۴:۳۳ نمایش
  • ۱۶:۴۷ حداکثر امتحان جریان
  • 19:25 تصویر حرارتی
  • 19:27 امتحان شِفر (کود) مختلف

تصاویر

BTS7960_module-1
BTS7960_module-1
BTS7960_module-2
BTS7960_module-2
BTS7960_module-3
BTS7960_module-3
BTS7960_module-4-heat-sink
BTS7960_module-4-heat-sink
BTS7960-_2_motor_wiring
BTS7960-_2_motor_wiring
203-Arduino Code to control two or more DC motors using BTS7960 motor driver
زبان: C++
کپی شد!

فایل‌ها📁

کتابخانه‌های آردوینو (zip)

برگه مشخصات (pdf)

فایل فریزینگ