ویژگی های ماژول درایور موتور 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) این ماژول را میتوانید در تصویر زیر مشاهده کنید.
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزارهای مورد نیاز
راه اندازی ماژول درایور موتور 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="“Home” — 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);
}
}
در این برنامه با چرخش کامل پتانسیومتر، موتور در دو جهت مستقیم و معکوس کنترل میشود. اگر مقدار ورودی بیشتر از 512 باشد، موتور در جهت مستقیم و اگر کوچکتر از 512 باشد، در جهت معکوس میچرخد. پینهای EN را HIGH کردیم و کنترل را صرفا با پایههای PWM انجام میدهیم.
Warning
دقت کنید به دلیل اینکه موتور شما 6 ولت میباشد، پتاسیومتر را تا انتهای آن نچرخانید. زیرا مقدار ولتاژ ورودی 9 ولت است و امکان دارد به موتور آسیب برسد. البته میتوانید از باتری با ولتاژ پایینتر یا از موتوری با ولتاژ بالاتر استفاده کنید.
Comments (6)
من نیاز دارم که از سرعت و جهت از طریق خود آردوینو قابل تغییر باشد و نه از طریق پتانسیومتر دستی، یعنی آردوینو بتواند بر اساس خروجی یک سنسور خودش جهت و سرعت موتور را تنظیم کند، آیا میتوان بدون استفاده از پتانسیومتر دستی اینک عملیات را انجام داد؟
با سلام
این یک مثال می باشد که مقادیر از طریق پتانسیومتر خوانده می شود و توسط دستور analogWrite(RPWM,out1); به درایور اعلام میشود.
شما به جای متغییر out1 هر متغییری که میخواهید قرار بدهید و پر کردن این عدد بین 0 الی 255 می توانید سرعت موتور مورد نظر را تغییر بدهید.
در مورد جهت حرکت نیز دقت کنید داخل کد به چه صورت از دستور analogWrite استفاده می شود و همان را انجام بدهید می توانید جهت را تنظیم کنید.
سلام
آیا این ماژول برای راه اندازی ماژول درایور موتور 43 آمپر BTS7960
با RC یعنی با گیرنده رادیو کنترل ۷ کاناله
قابل کنترل هست.؟
نمیخوام وارد مقوله برنامه نویسی بشم
با احترام
با سلام
خیر، نیاز به میکرو دارید چون باید چپ گرد و راست گرد را مشخص بکنید و در ادامه با PWM بهش دستور بدهید. سبگنال های RC یک مقدار با PWM درایور موتور فرق میکند.
حتما باید برنامه نویسی بکنید یا فلایت کنترل قرار بدهید
سلام از جوابتون متشکرم
لطفا نام ماژول های لازمه را برام بنویسید یا معرفی کیند که خرید کنم . با احترام
از هر مدل میکروکنترلی برای این موضوع میتوانید استفاده بکنید.
مانند Arduino, ESP32, ESP8266, STM
برای تک تک این محصول ها آموزش راهاندازی اولیه از طریق برنامه Arduino IDE نیز قرار داده شده است.