ویژگی های شیلد موتور درایور مونستر موتو VNH2SP30
امروزه کنترل سرعت و جهت موتورهای DC بسیار پرکاربرد است. همچنین این موتورها در ساخت بسیاری از وسایل و تجهیزات مورد استفاده قرار میگیرند. یکی از روشهای کنترل موتورهای DC استفاده از مدارهای تمامپل full-bridge است. این روش به شما اجازه میدهد هم سرعت و هم جهت موتور را کنترل کنید. در این شیلد یک جفت درایور تمامپل VNH2SP30 قرار دارد. قابلیت جدید این درایور نسبت به موارد مشابه آن، جریان بالای آن است. این شیلد میتواند عبور جریان 14 آمپر را در حالت پیوسته تحمل کند. تغذیه آن نیز بایستی بین 5.5 تا 16 ولت باشد.
یکی از پین های کنترلی این ماژول PWM میباشد. این پین به پایه فرمان ماسفت یا ترانزیستور وصل میشود و هرچه زمان روشن ماندن (Duty Cycle)آن بیشتر باشد، ولتاژ بیشتری در دو سر موتور قرار میگیرد و در نتیجه سرعت چرخش نیز بیشتر میشود.
توجه
در صورتی که از مدار شما جریانی بیشتر از 6 آمپر میگذرد، بایستی از هیتسینک جهت خنکسازی استفاده کنید.
دیتاشیت آی سی VNH2SP30 را می توانید از اینجا دانلود کنید.
VNH2SP30 Monster Motor Shield Datasheet
معرفی پایه های (Pinout) شیلد موتور درایور مونستر موتو VNH2SP30
شیلد موتور درایور مونستر موتو VNH2SP30 دارای پایههایی به شرح زیر است:
- VM: ولتاژ موتور
- VCC: ولتاژ تغذیه ماژول
- GND: زمین
- A1: سر مثبت موتور A
- A2: سر منفی موتور A
- B1: سر مثبت موتور B
- B2: سر منفی موتور B
- PWMA: سیگنال کنترل سرعت موتور A
- PWMB: سیگنال کنترل سرعت موتور B
- AIN1: سیگنال کنترلی موتور A
- AIN2: سیگنال کنترلی موتور A
- BIN1: سیگنال کنترلی موتور B
- BIN2: سیگنال کنترلی موتور B
- EN1: سیگنال فعالسازی موتور A
- EN2: سیگنال فعالسازی موتور B
- C1: سیگنال اندازهگیری جریان موتور A
- C2: سیگنال اندازهگیری جریان موتور B
پین اوت (Pinout) این ماژول را می توانید در تصویر زیر مشاهده کنید.
توجه شود که با حالت های مختلف سیگنالهای کنترلی، عملکرد موتورها متفاوت میشود. جدول زیر حالت های مختلف کاری را نشان میدهد.
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزارهای مورد نیاز
راه اندازی شیلد موتور درایور مونستر موتو VNH2SP30 با آردوینو
گام اول: سیم بندی
بعد از اینکه پین هدرهای مربوط به شیلد را روی آن لحیم کنیم، میتوانیم بدون سیمکشی آن را به طور مستقیم برروی آردوینو قرار دهیم. اتصال دیگر قطعات به شیلد مانند شکل زیر است.
گام دوم : کد
کد زیر را روی آردوینو خود آپلود کنید.
/*
VNH2SP30-Monster-Shield
made on 01 Nov 2020
by Amir Mohammad Shojaee @ Electropeak
Home
*/
int pot;
int out;
#define PWM1 5
#define AIN1 7
#define AIN2 8
#define PWM2 6
#define BIN1 4
#define BIN2 9
#define EN1 A0
#define EN2 A1
void setup(){
pinMode(BIN1,OUTPUT);
pinMode(AIN1,OUTPUT);
pinMode(AIN2,OUTPUT);
pinMode(BIN2,OUTPUT);
pinMode(PWM1,OUTPUT);
pinMode(PWM2,OUTPUT);
pinMode(A0,OUTPUT);
pinMode(A1,OUTPUT);
pinMode(A5,INPUT);
}
void loop(){
digitalWrite(A0,HIGH);
digitalWrite(A1,HIGH);
digitalWrite(BIN1,HIGH);
digitalWrite(BIN2,LOW);
digitalWrite(AIN1,HIGH);
digitalWrite(AIN2,LOW);
pot=analogRead(A5);
out=map(pot,0,1023,0,255);
analogWrite(PWM1,out); //Speed control of Motor A
analogWrite(PWM2,out); //Speed control of Motor B
}
برنامه بالا برای کنترل همزمان دو موتور DC میباشد. با چرخاندن پتانسیومتر سرعت موتورها در جهت عقربه های ساعت زیاد میشوند.
Comments (9)
سلام با تشکر از مطلب مفیدی که قرار دادید. بنده با سیم جامپر طبق همون نقشه اول صفحه پینهای ۴تا۹ و تمام GNDها رو به هم و vcc رو به vcc و آنالوگ های ۰تا۴ رو به آنالوگ صفر تا ۴ برد وصل کردم ولی موقعی که باتری رو به شیلد متصل میکنم فقط چراغ PWM شیلد روشن میشه و چراغ های برد روشن نمیشه(ظاهرا برق به برد نرسیده) مشکل از کجاست بنظرتون؟ اگر میشد فایل fritzing اتصالی رو هم میزاشتید خوب بود چون توی عکس شیلد رو گذاشتید روی برد و خیلی اتصال ها مشخص نیست
با سلام و احترام و تشکر بابت آموزش خوبتون,بنده پین های ۴تا۹ رو به دیحیتال ۴تا۹ برد و GND ها رو هم همگی به برد و آنالوگ های ۰تا۴ رو به آنالوگ برد و vin رو به vin برد وصل کردم ولی بعد از اتصال باتری به شیلد ,برد تامین تغذیه نمیشه,مگه موقعی که vin. ها رو به هم وصل میکنیم از شیلد تامین برق برای برد صورت نمیگیره یا اینکه باید تامین تغذیه برد جدا باشه؟
سلام.
فایل fritzing همون عکسیه که تو قسمت سیمبندی ها گذاشته شده. نحوه اتصال شیلد به برد آردوینو هم همینه که روی برد قرار بگیره. ولی اگر میخواید روی برد نذارید و با سیم جامپر متصل کنید هم میشه. کافیه یکبار شیلد رو روی برد بگیرید و متوجه میشید که هر پایه شیلد رو با سیم جامپر باید به کدوم پایه آردوینو متصل کنید. اتصالهایی هم که گفتید درست هستند همینطوری باید متصل میکردید.
و در مورد vin و تغذیه مدار هم، بله تغذیه برد باید جداگونه تامین بشه. اون باتری صرفا تغذیه موتورهاست (همون چراغ pwm). تغذیه برد آردوینو و تغذیه آی سی های شیلد یکیاند و باید جداگونه تامین بشن.
سلام مجدد. تمام پین ها رو مثل شکل به هم وصل کردم و کد رو کپی کردم فقط قسمت analogwrite رو اینجوری تغییر دادم :
int f=100;
int t=0;
analogWrite(PWM1,f); //Speed control of Motor A
delay(2000);
analogWrite(PWM1,t); //Speed control of Motor A
delay(2000);
analogWrite(PWM2,f); //Speed control of Motor B
delay(2000);
analogWrite(PWM2,t); //Speed control of Motor B
مشکل اینه که موتور ۱ کامل درست کار میکنه و حرکت میکنه ولی موتور ۲ کار نمیکنه.
بنظرتون مشکل از چی میتونه باشه؟
ممکنه مشکل از خود موتور باشه یا از سیمکشی. تو همون حالت سیمکشی، موتورهارو با همدیگه جابهجا کنید ببینید این بار کدوم موتور حرکت میکنه، اینطوری میتونید بفهمید مشکل از کجاست
ببینید یه جراغ چشمک زن بغل هر موتور هست که دو حالت روشن و فول روشن داره این چراغ اصلا روشن نمیشه یعنی اصلا ربطی به سیم کشی به موتور نداره,
منظورم از روشن نشدن برای موتور ۲ هست یعنی. A2و b2
خب پس امکانش هست که مشکل از خود برد درایور باشه.
ببینید با کدی که توی این لینک هست میزنم هر دو موتور کار میکنه ولی با این کد reverse نمیکنه دیگه گیج شدم,احساس میکنم سیم کشی ها نباید عین به عین uno باشه یعنی مثلا نباید ۴ رو به ۴ uno وصل کنم
https://www.14core.com/wiring-the-vnh2sp30-30a-monster-moto-with-mcu/?unapproved=5522&moderation-hash=b80a45f4eaa3b28ded402e670a44152e#comment-5522