ویژگی های ماژول درایور موتور دو کاناله DRV8833
امروزه کنترل سرعت و جهت موتورهای DC به علت کاربردهای فراوان، از اهمیت زیادی برخوردار است. عمومیترین روش کنترل موتورهای DC پل H یا همان H-Bridge است. ماژول دو کاناله DRV8833 نیز از همین روش برای کنترل دو موتور بهره میگیرد.
این ماژول دارای دو درایور H-bridge است و میتواند دو موتور DC، یک استپر موتور و یا بارهای سلفی دیگر را کنترل کند.
ولتاژ تغذیه موتور 2.7 تا 10.8 ولت و جریان مجاز پیوسته عبوری 1.5 آمپر و جریان مجاز حداکثر آن 2 آمپر میباشد.
از موارد کاربرد این ماژول میتوان به موارد زیر اشاره کرد:
- پرینترهای POS
- اسباببازی های تغذیه شده توسط باتری
- رباتیک
- ماشین های اتوماسیون اداری
نکته
این ماژول پین PWM مجزا ندارد، در نتیجه از یکی از پایه های دیجیتال به انتخاب خود برای PWM باید استفاده نمایید تا سرعت موتور را تنظیم بنمایید.
دیتاشیت آی سی DRV8833 را می توانید از اینجا دانلود کنید.
معرفی پایه های (Pinout) ماژول درایور موتور دو کاناله DRV8833
ماژول درایور موتور دو کاناله DRV8833 دارای 16 پایه به شرح زیر است:
- VM: ولتاژ موتور
- GND: زمین-در این ماژول سه زمین داریم که به یکدیگر متصل اند.
- AO1: سر مثبت موتور A
- AO2: سر منفی موتور A
- BO1: سر مثبت موتور B
- BO2: سر منفی موتور B
- AIN1: سیگنال کنترلی موتور A
- AIN2: سیگنال کنترلی موتور A
- BIN1: سیگنال کنترلی موتور B
- BIN2: سیگنال کنترلی موتور B
- STBY: برای فعال شدن وضعیت Standby بایستی این پین HIGH شود.
- NC: پایههای بدون استفاده
پین اوت (Pinout) این ماژول را میتوانید در تصویر زیر مشاهده کنید.
توجه شود که با حالتهای مختلف سیگنالهای کنترلی، عملکرد موتورهای DC متفاوت میشود. جدول زیر حالتهای مختلف کاری را نشان میدهد.
لوازمی که به آن احتیاج دارید
قطعات مورد نیاز
نرم افزارهای مورد نیاز
راه اندازی ماژول درایور موتور دو کاناله DRV8833 با آردوینو
گام اول: سیم بندی
مطابق مدار زیر ماژول را به آردوینو وصل کنید.
توجه
پایه STBY را به VCC متصل کنید.
هشدار
دقت کنید به دلیل اینکه موتورهای شما 6 ولت میباشد از منبع تغذیه با ولتاژ بالاتر از 6 ولت استفاده نکنید.
گام دوم: کد
کد زیر را روی برد آردوینوی خود آپلود کنید.
/*
DRV8833-Dual-Motor-Driver-Module
made on 23 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=HzKoaeQ1Z8" data-secret="HzKoaeQ1Z8" width="600" height="338" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
*/
#define AIN1 4
#define AIN2 5
#define BIN1 7
#define BIN2 8
void setup() {
Serial.begin(9600);
pinMode(AIN1,OUTPUT);
pinMode(AIN2,OUTPUT);
pinMode(BIN1,OUTPUT);
pinMode(BIN2,OUTPUT);
}
void loop() {
digitalWrite(AIN1,HIGH);
digitalWrite(AIN2,LOW);
digitalWrite(BIN1,HIGH);
digitalWrite(BIN2,LOW);
delay(1000);
digitalWrite(AIN1,LOW);
digitalWrite(AIN2,LOW);
digitalWrite(BIN1,LOW);
digitalWrite(BIN2,LOW);
delay(1000);
digitalWrite(AIN1,LOW);
digitalWrite(AIN2,HIGH);
digitalWrite(BIN1,LOW);
digitalWrite(BIN2,HIGH);
delay(1000);
digitalWrite(AIN1,LOW);
digitalWrite(AIN2,LOW);
digitalWrite(BIN1,LOW);
digitalWrite(BIN2,LOW);
delay(1000);
}
برنامه بالا برای کنترل همزمان دو موتور DC میباشد. موتورها ابتدا ساعتگرد میچرخند. سپس 1 ثانیه میایستند و بعد از آن در جهت معکوس به چرخش درمیآیند. دوباره 1 ثانیه متوقف میشوند و این مراحل دوباره تکرار میشود.
Comments (2)
سلام در مقاله اشاره شده که این ماژول PWM نداره در حالی که از PWM پشتیبانی میشه. البته با این کد نه.
با سلام،
ممنون از نظر خوبتون توضیحات اصلاح شد.