آموزش راه اندازی ماژول درایور موتور 43 آمپر BTS7960 با آردوینو

ویژگی های ماژول درایور موتور 43 آمپر BTS7960

BTS7960 یک ماژول درایور موتور تمام‌پل با جریان بالا می‌باشد. از ویژگی‌های بارز این ماژول می‌توان به موارد زیر اشاره کرد:

  • ولتاژ ورودی بین 6 تا 27 ولت
  • حداکثر جریان مجاز عبوری : 43 آمپر
  • قابلیت PWM تا فرکانس 25 کیلوهرتز
  • دارای 2 پایه خروجی PWM جهت کنترل سرعت در جهت مستقیم و معکوس
  • دارای 2 پایه خروجی EN جهت کنترل ‌موتورها
  • دارای 2 پایه ورودی IS جهت محافظت در برابر جریان و حرارت بالا

این ماژول‌ها توسط تکنیک  PWM(مدولاسیون عرض پالس) موتورهای DC را کنترل می‌کند. در اصل این ماژول‌ها ولتاژ ثابت ورودی را به ولتاژی متغیر برای موتور تبدیل می‌کنند. با تغییر ولتاژ دو سر موتور DC نیز می‌توان سرعت آن را کنترل کرد. معمولا PWM ها دارای فرکانس ثابتی هستند و با کنترل زمان HIGH بودن پالس (Duty Cycle) می‌توان آن را کنترل نمود.
ماژول‌های کنترل سرعت بسیار پرکاربرد هستند و در عین حال عملکردی ساده و راحتی دارند.

دیتاشیت آی سی BTS7960 را می توانید از اینجا دانلود کنید.

معرفی پایه های (Pinout) ماژول درایور موتور 43 آمپر BTS7960

ماژول BTS7960 دارای 12 پایه به شرح زیر است:

بخش مرتبط به میکروکنترلر(جریان پایین):

  • VCC: تغذیه ماژول 5 ولت
  • GND: زمین
  • IS-R: سیگنال ورودی تشخیص جریان بالا – چرخش مستقیم
  • IS-L: سیگنال ورودی تشخیص جریان بالا – چرخش معکوس
  • EN-R: سیگنال خروجی برای کنترل جهت موتور – چرخش مستقیم
  • EN-L: سیگنال خروجی برای کنترل جهت موتور – چرخش معکوس
  • PWM-R: سیگنال PWM خروجی برای کنترل سرعت موتور – چرخش مستقیم
  • PWM-L: سیگنال PWM خروجی برای کنترل سرعت موتور – چرخش معکوس

بخش مرتبط به موتور (جریان بالا):

  • M+: سر مثبت موتور
  • M-: سر منفی موتور
  • B+: سر مثبت منبع تغذیه
  • M+: سر منفی منبع تغذیه

پین اوت (Pinout) این ماژول را می‌توانید در تصویر زیر مشاهده کنید.

لوازمی که به آن احتیاج دارید

قطعات مورد نیاز

آردوینو UNO R3 × 1
درایور موتور 43 آمپر BTS7960 × 1
موتور DC ساده 6 ولت × 1
پتانسومتر 10 کیلواهم × 1
باتری 9 ولت کتابی × 1
گیره باتری 9 ولتی بدون فیش × 1
سیم جامپر نری-مادگی × 1
سیم جامپر نری-نری × 1
برد بورد 400 حفره ای × 1

نرم افزارهای مورد نیاز

آردوینو IDE

راه اندازی ماژول درایور موتور 43 آمپر BTS7960 با آردوینو

گام اول: سیم بندی

مطابق مدار زیر ماژول را به آردوینو و دیگر قطعات وصل کنید.

گام دوم: کد

کد زیر را روی آردوینو خود آپلود کنید.

   /*
  BTS7960-43A-Driver
  made on 22 Nov 2020
  by Amir Mohammad Shojaee @ Electropeak
  Home<iframe class="wp-embedded-content" sandbox="allow-scripts" security="restricted" style="position: absolute; clip: rect(1px, 1px, 1px, 1px);" title="&#8220;Home&#8221; &#8212; Electropeak" src="https://electropeak.com/learn/embed/#?secret=3YbOwoSesz" data-secret="3YbOwoSesz" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>

*/

#define RPWM 5
#define LPWM 6
#define REN 8
#define LEN 9


int pot;
int out1;
int out2;

void setup() {
  Serial.begin(9600);
  pinMode(RPWM,OUTPUT);
  pinMode(LPWM,OUTPUT);
  pinMode(LEN,OUTPUT);
  pinMode(REN,OUTPUT);
  digitalWrite(REN,HIGH);
  digitalWrite(LEN,HIGH);

}
 
 
void loop() {
  
  pot=analogRead(A0);
  
  if(pot>512){
    out1=map(pot,512,1023,0,255);
    analogWrite(RPWM,out1);
    analogWrite(LPWM,0);
    
  }
  
  if(pot<512){
    out2=map(pot,512,0,0,255);
    analogWrite(LPWM,out2);
    analogWrite(RPWM,0);
    
  }
}
Arduino

در این برنامه با چرخش کامل پتانسیومتر، موتور در دو جهت مستقیم و معکوس کنترل می‌شود. اگر مقدار ورودی بیشتر از 512 باشد، موتور در جهت مستقیم و اگر کوچکتر از 512 باشد، در جهت معکوس می‌چرخد. پین‌های EN را HIGH کردیم و کنترل را صرفا با پایه‌های PWM انجام می‌دهیم.

Warning

دقت کنید به دلیل اینکه موتور شما 6 ولت می‌باشد، پتاسیومتر را تا انتهای آن نچرخانید. زیرا مقدار ولتاژ ورودی 9 ولت است و امکان دارد به موتور آسیب برسد. البته می‌توانید از باتری با ولتاژ پایین‌تر یا از موتوری با ولتاژ بالاتر استفاده کنید.

آموزش های مشابه

Comments (6)

  • مازیار Reply

    من نیاز دارم که از سرعت و جهت از طریق خود آردوینو قابل تغییر باشد و نه از طریق پتانسیومتر دستی، یعنی آردوینو بتواند بر اساس خروجی یک سنسور خودش جهت و سرعت موتور را تنظیم کند، آیا میتوان بدون استفاده از پتانسیومتر دستی اینک عملیات را انجام داد؟

    فوریه 25, 2024 at 9:47 ب.ظ
    • محمد دمیرچی Reply

      با سلام
      این یک مثال می باشد که مقادیر از طریق پتانسیومتر خوانده می شود و توسط دستور analogWrite(RPWM,out1); به درایور اعلام میشود.
      شما به جای متغییر out1 هر متغییری که میخواهید قرار بدهید و پر کردن این عدد بین 0 الی 255 می توانید سرعت موتور مورد نظر را تغییر بدهید.
      در مورد جهت حرکت نیز دقت کنید داخل کد به چه صورت از دستور analogWrite استفاده می شود و همان را انجام بدهید می توانید جهت را تنظیم کنید.

      فوریه 26, 2024 at 10:34 ق.ظ
  • رامین Reply

    سلام
    آیا این ماژول برای راه اندازی ماژول درایور موتور 43 آمپر BTS7960
    با RC یعنی با گیرنده رادیو کنترل ۷ کاناله
    قابل کنترل هست.؟
    نمیخوام وارد مقوله برنامه نویسی بشم
    با احترام

    ژانویه 26, 2025 at 11:57 ق.ظ
    • محمد دمیرچی Reply

      با سلام
      خیر، نیاز به میکرو دارید چون باید چپ گرد و راست گرد را مشخص بکنید و در ادامه با PWM بهش دستور بدهید. سبگنال های RC یک مقدار با PWM درایور موتور فرق میکند.
      حتما باید برنامه نویسی بکنید یا فلایت کنترل قرار بدهید

      ژانویه 27, 2025 at 10:20 ق.ظ
      • رامین Reply

        سلام از جوابتون متشکرم
        لطفا نام ماژول های لازمه را برام بنویسید یا معرفی کیند که خرید کنم . با احترام

        ژانویه 29, 2025 at 5:07 ب.ظ
        • محمد دمیرچی Reply

          از هر مدل میکروکنترلی برای این موضوع میتوانید استفاده بکنید.
          مانند Arduino, ESP32, ESP8266, STM
          برای تک تک این محصول ها آموزش راه‌اندازی اولیه از طریق برنامه Arduino IDE نیز قرار داده شده است.

          فوریه 1, 2025 at 12:46 ب.ظ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.