در این مقاله به آموزش نحوه راه اندازی ماژول درایور موتور L298 با آردوینو خواهیم پرداخت.
اگر در فکر ساخت یک ربات جدید هستید، حتما باید نحوه کنترل موتورهای DC را یاد بگیرید. یکی از آسانترین و ارزانترین روش های کنترل موتورهای DC، راه اندازی ماژول درایور موتور L298 با آردوینو است. به عنوان مثال ماژول درایور موتور L298N که یکی از مدل درایورها است، ميتواند همزمان سرعت و جهت دوران دو موتور DC را کنترل کند. بعلاوه، با استفاده از آن ميتوان یک استپ موتور دو قطبی نظیر NEMA 17 را نیز کنترل نمود. پس از یادگیری این آموزش میتوانید با نحوه راه اندازی دیگر درایور موتورهای DC مانند درایور موتور DRV8833 و درایور موتور L293D آشنا شوید و در ساخت رباتهای ماشینی خود از این ماژولها استفاده کنید.
کنترل موتور DC
برای کنترل کامل یک موتور DC لازم است هم سرعت و هم جهت دوران موتور را کنترل کرد. این نوع کنترل از ترکیب دو تکنیک زیر قابل دستیابی است:
- تکنیک PWM: برای کنترل سرعت
- تکنیک H-Bridge: برای کنترل جهت چرخش موتور
تکنیک PWM برای کنترل سرعت
کنترل سرعت یک موتور DC از طریق تغییر ولتاژ تغذیه dc موتور امکان پذیر است.
یک تکنیک مرسوم برای این کار استفاده از روش مدولاسیون عرض پالس (PWM) ميباشد. در این تکنیک مقدار متوسط ولتاژ ورودی از طریق ارسال یکسری پالس های صفر و یک (ON-OFF) تنظیم ميشود. مقدار متوسط ولتاژ، متناسب با عرض پالس که duty cycle ناميده ميشود، خواهد بود. با افزایش duty cycle مقدار متوسط ولتاژ تغذیه اعمال شده به موتور DC بیشتر خواهد شد و در نتیجه سرعت دوران شافت موتور افزایش خواهد یافت. اما کم کردن duty cycle، سبب کاهش متوسط ولتاژ تغذیه و در نتیجه کاهش سرعت دور موتور ميشود.
در شکل زیر تکنیک PWM و ارتباط مقادير مختلف duty cycle با مقدار متوسط ولتاژ تغذیه نشان داده شده است:
تکنیک H-Bridge: برای کنترل جهت چرخش موتور
کنترل جهت چرخش شافت یک موتور DC از طریق تغییر پلاریته ولتاژ تغذیه آن امکان پذیر است.
تکنیک مرسوم برای این کار استفاده از H-Bridge یا مدار پل H است. مدار پل H متشکل از 4 عدد سوئیچ ميباشد که موتور در مرکز آنها قرار ميگیرد و بدین ترتیب ساختاری شبیه H تشکیل میدهد. با بسته شدن همزمان دو سوئیچ خاص ميتوان پلاریته ولتاژ تغذیه اعمالی به موتور و در نتیجه جهت چرخش شافت موتور را تغییر داد. در تصویر زیر نحوه عملکرد مدار پل H نشان داده شده است:
آی سی درایور موتور L298
L298 بصورت یک چیپ بزرگ مشکی رنگ متصل به یک هیت سینک در مرکز ماژول قرار دارد. این چیپ یک درایور موتور H-bridge دو کاناله است و با استفاده از آن ميتوان دو عدد موتور DC را بصورت مستقل از یکدیگر کنترل نمود. لذا، برای بکارگیری در رباتهای دوچرخ ایده آل ميباشد.
منبع تغذیه
ماژول درایور L298 بوسیله یک ترمينال 3.5 ميلیمتری سه پین تغذیه ميشود. یک پین برای تغذیه موتور (Vs)، یک پین به عنوان زمين (GND) و پین سوم تغذیه 5 ولت مدارات منطقی (Vss) ميباشد. درایور L298 در حقیقت دارای دو پین تغذیه ورودی “Vss” و “Vs” است. از طریق پین Vs ولتاژ الکتریکی مورد نیاز برای درایو موتور به مدار پل H داده ميشود که بین 5 تا 35 ولت مي تواند تغییر کند. Vss برای تغذیه مدارات منطقی استفاده ميشود که اندازه آن می تواند بین 5 تا 7 ولت متغیر باشد. GND به عنوان زمين مشترک Vs و Vss ميباشد.
ماژول L298 دارای یک رگولاتور 78M05 پنج ولتی STMicroelectronics است که از طریق یک جامپر ميتوان آن را فعال یا غیر فعال کرد. وقتی جامپر در محل خود قرار داشته باشد، رگولاتور پنج ولتی فعال خواهد بود و ولتاژ تغذیه Vss را از ولتاژ تغذیه موتور یعنی Vs تامين ميکند. در چنین حالتی، پین 5 ولت ترمينال ورودی به عنوان یک خروجی 5 ولتی نیم آمپر عمل خواهد نمود که از آن ميتوان برای تغذیه آردوینو و یا هر مدار دیگری که تغذیه 5 ولتی نیاز دارد، استفاده نمود. برداشتن جامپر سبب غیر فعال شدن رگولاتور 5 ولتی ميشود و مجبور خواهیم بود ولتاژ 5 ولتی جداگانهای از طریق ترمینال ورودی تامين کنیم.
هشدار: فقط در حالتی که ولتاژ تغذیه موتور کمتر از 12 ولت باشد ميتوان جامپر فعال سازی رگولاتور را در محل خود قرار داد. چنانچه ولتاژ تغذیه موتور بیش از 12 ولت باشد، برای جلوگیری از خراب شدن رگولاتور لازم است جامپر برداشته شود. همچنین، چنانچه جامپر در محل خود قرار داده شده است، از اعمال ولتاژ تغذیه به هر دو پین تغذیه ترمينال ورودی یعنی پین تغذیه موتور (Vs) و پین 5 ولت (Vss) اجتناب کنید.
افت ولتاژ L298
افت ولتاژ درایور L298 در حدود 2 ولت است که بخاطر افت ولتاژ داخلی ترانزیستورهای سوئیچینگ مدار پل H ميباشد. بنابراین اگر تغذیه 12 ولتی به ترمينال ورودی ماژول اعمال شود، موتور DC ولتاژی در حدود 10 ولت دریافت ميکند. لذا، یک موتور DC دوازده ولتی نمي تواند با حداکثر سرعت نامي خود کار کند. به همین دلیل برای دستیابی به حداکثر سرعت نامي موتور، لازم است ولتاژ تغذیه موتور که به ترمينال ورودی ماژول داده ميشود، حدود 2 ولت بیشتر از حداکثر ولتاژ نامي موتور در نظر گرفته شود.
بنابراین با در نظر گرفتن افت ولتاژ 2 ولت، برای یک موتور DC پنج ولتی باید ولتاژ تغذیه 7 ولت به ترمينال ورودی ماژول درایور داده شود. به همین ترتیب برای یک موتور 12 ولتی باید تغذیه ترمينال ورودی 14 ولت در نظر گرفته شود.
ترمينالهای خروجی
کانالهای خروجی درایور برای دو موتور A و B به دو ترمينال 3.5 ميليمتری در طرفین ماژول L298 متصل شدهاند. به این دو ترمينال ميتوان دو موتور الکتریکی مستقل با ولتاژ کاری 5 تا 35 ولت وصل نمود. هر ترمينال خروجی ميتواند تا 2 آمپر جریان برای موتور الکتریکی تامين نماید. هرچند مقدار جریان اعمالی، به منبع تغذیه سیستم بستگی دارد.
پینهای کنترلی در ماژول درایور موتور L298
برای هر یک از کانالهای ماژول L298 دو نوع پین کنترلی وجود دارد که با استفاده از آن ميتوان بصورت همزمان سرعت و جهت دوران موتور را کنترل نمود:
- پینهای کنترل جهت دوران موتورها
- پینهای کتترل سرعت موتورها
پینهای کنترل جهت دوران
با استفاده از پینهای کنترل جهت ميتوان نحوه دوران شافت موتور DC را در دو جهت مستقیم یا عقبگرد کنترل نمود. این پینها در حقیقت سوئیچهای مدار پل H آی سی L298 را کنترل ميکنند. برای هر کانال خروجی دو پین کنترل جهت وجود دارد. پینهای IN1 و IN2 جهت دوران موتور A و پینهای IN3 و IN4 جهت دوران موتور B را کنترل ميکنند.
کنترل جهت دوران از طریق اعمال منطق High (5 ولت) و یا منطق Low (صفر ولت) طبق چارت زیر ميباشد.
ورودی 1 | ورودی 2 | جهت دوران موتور |
Low (صفر ولت) | Low (صفر ولت) | موتور خاموش |
High (5 ولت) | Low (صفر ولت) | دوران در جهت مستقیم |
Low (صفر ولت) | High (5 ولت) | دوران در جهت معکوس |
High (5 ولت) | High (5 ولت) | موتور خاموش |
پینهای کنترل سرعت
دو پین کنترل سرعت ENA و ENB برای روشن و خاموش کردن موتور و همچنین کنترل سرعت دوران موتورهای A و B بکار گرفته ميشوند. اعمال منطق High (5 ولت) سبب روشن شدن موتور و اعمال منطق Low باعث متوقف شدن دوران موتور ميشود. کنترل تعداد دور از طریق اعمال پالس PWM انجام پذیر ميباشد.
ماژول درایور L298 معمولا دارای جامپر بر روی پینهای کنترل سرعت است. هنگامي که جامپر در محل خود قرار دارد، موتور فعال و با حداکثر سرعت دورانی خود کار ميکند. چنانچه قصد داشته باشید با استفاده از يك برنامه سرعت موتور را کنترل کنید لازم است جامپر از روی پین کنترل سرعت برداشته شود و به پینهای PWM مربوطه آردوینو متصل شود.
پینهای ماژول درایور موتور L298
پیش از ارائه کد برنامه نویسی برای راه اندازی ماژول درایور موتور L298 با آردوینو ، لازم است نگاهی به پینهای مختلف این ماژول داشته باشیم.
پین VCC : تغذیه موتور را تامين مي کند که مقدار ولتاژ آن ميتواند بین 5 تا 35 ولت باشد. یادآوری ميشود که اگر جامپر 5V در محل خود قرار داشته باشد، برای دستیابی به حداکثر سرعت موتور لازم است مقدار ولتاژ تغذیه به اندازه 2 ولت بیشتر از ولتاژ نامي موتور اعمال شود.
پین GND : پین زمين مشترک است.
پین 5V : ولتاژ مورد نیاز مدارات منطقی سوئیچینگ داخلی آی سی L298 را تامين ميکند. اگر جامپر 5V در محل خود قرار داشته باشد، این پین به عنوان یک پین خروجی عمل ميکند و از آن ميتوان برای تغذیه آردوینو استفاده نمود. اگر این جامپر برداشته شود، نیاز است که این پین به پین 5V آردوینو متصل شود.
پین ENA : برای کنترل سرعت موتور A استفاده ميشود. اعمال منطق High به این پین (یا بطور معادل نگه داشتن جامپر در سر جای خود) سبب شروع به کار کردن موتور A و برداشتن جامپر سبب متوقف شدن موتور خواهد شد. برداشتن جامپر و اتصال پین به ورودی PWM امکان کنترل سرعت موتور A را فراهم خواهد کرد.
پینهایIN1 و IN2 : برای کنترل جهت دوران موتور A استفاده مي شوند. وقتی به یکی از این پینها منطق High (5 ولت) و به دیگری منطق Low (صفر ولت) اعمال شود، شافت موتور در یک جهت شروع به چرخش ميکند. اگر به هر دوی این پینها منطق High و یا به هر دو منطق Low اعمال شود، موتور A متوقف خواهد شد.
پینهایIN3 و IN4 : برای کنترل جهت دوران موتور B استفاده مي شوند. وقتی به یکی از این پینها منطقHigh (5 ولت) و به دیگری منطق Low (صفر ولت) اعمال شود، شافت موتور B در یک جهت شروع به چرخش ميکند. اگر به هر دوی این پینها منطق High و یا به هر دو منطق Low اعمال شود، موتور متوقف خواهد شد.
پین ENB : برای کنترل سرعت موتورB استفاده ميشود. اعمال منطق High به این پین (یا بطور معادل نگه داشتن جامپر در سر جای خود) سبب شروع به کار کردن موتور B و برداشتن جامپر سبب متوقف شدن موتور خواهد شد. برداشتن جامپر و اتصال پین به ورودی PWM امکان کنترل سرعت موتور B را فراهم خواهد کرد.
پینهای خروجی OUT1 و OUT2 به موتورA متصل مي شوند.
پینهای خروجی OUT3 و OUT4 به موتور B متصل مي شوند.
راه اندازی ماژول درایور موتور L298 با آردوینو UNO
اکنون که با این ماژول آشنا شده ایم، می توانیم در مورد نحوه راه اندازی ماژول درایور موتور L298 با آردوینو برای کنترل موتور DC صحبت کنیم. برای آغاز این فرایند به وسایل زیر نیاز خواهید داشت:
- ماژول درایور موتور L298N
- موتور گیربکس 12 ولت 200 دور مدل 25GA-370
- برد آردوینو UNO
- سم جامپر نری به مادگی 20 سانتی متری
- آداپتور دیواری 12 ولت
برای این کار در ابتدا منبع تغذیه موتورهای DC را وصل ميکنیم. در اینجا ما از موتورهای DC گیربکسی (موتورهای TT) که بطور معمول در رباتهای دوچرخ بکارگرفته ميشوند، استفاده مي کنیم. ولتاژ این موتورها بین 3 تا 12 ولت است. بنابراین یک منبع تغذیه خارجی 12 ولت به ترمينال VCC متصل ميکنیم. با توجه به افت ولتاژ داخلی ماژول، موتورها حداکثر 10 ولت دریافت خواهند نمود و حداکثر سرعت دور موتورها کمتر خواهد بود، ولی در این مثال مورد قبول است.
در گام بعد لازم است تغذیه 5 ولتی مدارت منطقی L298 را تامين کنیم. به همین دلیل از رگولاتور داخلی 5ولت ماژول درایور استفاده ميکنیم و لذا جامپر رگولاتور را در سر جای خود قرار مي دهیم. اکنون پینهای ورودی و فعالساز ماژول درایور L298 (یعنی پینهای ENA، IN1، IN2، IN3، IN4 و ENB) را به 6 پین خروجی دیجیتال آردوینو (خروجیهای 9، 8، 7، 5، 4 و 3) متصل ميكنيم. به یاد داشته باشید که پینهای شماره 9 و شماره 3 آردوینو مربوط بهPWM هستند.
در مرحله آخر یک موتور به ترمينال A (Out1 و Out2) و موتور دیگر به ترمينال B (Out3 و Out4) وصل مي شوند.
با انجام مراحل فوق، چیزی شبیه به شکل زیر خواهیم داشت:
کد نویسی آردوینو (کنترل موتور DC )
در ادامه مثالي از نحوه کنترل سرعت و جهت دوران موتور DC با استفاده از ماژول درایور موتور L298 ارائه خواهیم کرد که ميتواند به عنوان منبع اطلاعاتی برای پروژه هایی که جنبه عملی بیشتری دارند، مورد استفاده قرار بگیرد.
// Motor A connections
int enA = 9;
int in1 = 8;
int in2 = 7;
// Motor B connections
int enB = 3;
int in3 = 5;
int in4 = 4;
void setup() {
// Set all the motor control pins to outputs
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
// Turn off motors - Initial state
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
void loop() {
directionControl();
delay(1000);
speedControl();
delay(1000);
}
// This function lets you control spinning direction of motors
void directionControl() {
// Set motors to maximum speed
// For PWM maximum possible values are 0 to 255
analogWrite(enA, 255);
analogWrite(enB, 255);
// Turn on motor A & B
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
delay(2000);
// Now change motor directions
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
delay(2000);
// Turn off motors
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
// This function lets you control speed of the motors
void speedControl() {
// Turn on motors
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
// Accelerate from zero to maximum speed
for (int i = 0; i < 256; i++) {
analogWrite(enA, i);
analogWrite(enB, i);
delay(20);
}
// Decelerate from maximum speed to zero
for (int i = 255; i >= 0; --i) {
analogWrite(enA, i);
analogWrite(enB, i);
delay(20);
}
// Now turn off motors
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
چگونه برای راه اندازی ماژول درایور موتور L298 با آردوینو کد نویسی کنیم؟
برای راه اندازی ماژول درایور موتور L298 با آردوینو ، به کد آردوینو نیازمندید. نوشتن کد آردوینو بسیار ساده است و نیاز به هیج کتابخانه ای ندارد. در ابتدای کد مشخص مي کنیم که پینهای آردوینو به کدام یک از پینهای ماژول درایور L298 متصل هستند.
// Motor A connections
int enA = 9;
int in1 = 8;
int in2 = 7;
// Motor B connections
int enB = 3;
int in3 = 5;
int in4 = 4;
همه پینهای کنترلی موتور به عنوان خروجیهای دیجیتال تعریف مي شوند و مقدار اولیه آنها بصورت Low ست ميشود تا هر دو موتور خاموش شوند.
void setup() {
// Set all the motor control pins to outputs
pinMode(enA, OUTPUT);
pinMode(enB, OUTPUT);
pinMode(in1, OUTPUT);
pinMode(in2, OUTPUT);
pinMode(in3, OUTPUT);
pinMode(in4, OUTPUT);
// Turn off motors - Initial state
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
در ادامه، دو تابعی که قبلا توسط کاربر تعریف شده اند، درون یک حلقه نرم افزاری با فاصله زمان یک ثانیه (هزار ميلي ثانیه) فراخوانی مي شوند.
void loop() {
directionControl();
delay(1000);
speedControl();
delay(1000);
}
این توابع عبارتند از:
- ()directionControl : این تابع هر دو موتور را به مدت 2 ثانیه با حداکثر سرعت دوران در جهت مستقیم روشن مي کند. سپس، به مدت دو ثانیه نیز در جهت معکوس موتورها را مي چرخاند و در نهایت دو موتور را متوقف مي کند.
void directionControl() {
// Set motors to maximum speed
// For PWM maximum possible values are 0 to 255
analogWrite(enA, 255);
analogWrite(enB, 255);
// Turn on motor A & B
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
delay(2000);
// Now change motor directions
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
delay(2000);
// Turn off motors
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
- ()speedControl : این تابع سرعت دوران هر دو موتور را از مقدار صفر تا حداکثر سرعت افزایش ميدهد که این کار از طریق تولید سیگنالهای PWM توسط تابع ()analogWrite انجام ميشود. پس از آن، مجددا سرعت دوران موتورها از مقدار حداکثر تا رسیدن به صفر کاهش می یابد و در نهایت دو موتور خاموش مي شوند.
void speedControl() {
// Turn on motors
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
// Accelerate from zero to maximum speed
for (int i = 0; i < 256; i++) {
analogWrite(enA, i);
analogWrite(enB, i);
delay(20);
}
// Decelerate from maximum speed to zero
for (int i = 255; i >= 0; --i) {
analogWrite(enA, i);
analogWrite(enB, i);
delay(20);
}
// Now turn off motors
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
}
با اطلاعاتی که در این مقاله کسب کرده اید، می توانید این ماژول را به راحتی راه اندازی کنید. اگر در حین راه اندازی، به راهنمایی بیشتری نیاز داشتید، سوالات خود را در بخش دیدگاه مطرح کنید.
۳۴ دیدگاه. Leave new
با عرض سلام، این ماژول رو میشه با رادیو کنترل هم راه اندازی کرد؟
مثل رادیو کنترل at9s
سلام محمدرضا عزیز،
روش راهاندازی ماژول در مقاله ذکر شده، شما با هر روشی میتونی به پینهای کنترلی فرمان بدی. مثلا سیگنالی رو از رادیو کنترل بگیری و برحسب اون ماژول رو کنترل کنی.
زنده باد، من با حالتای مختلف تست کردم ولی فقط تونستم شدت ولتاژ و جریان رو تغییر بدم اما نتونستم مدار رو با رادیو کنترل قطع کنم، میتونید شماره بدید یه فیلم بفرستم راهنمایی بدید
سلام مجدد،
ببینید برای قطع کردن طبیعتا باید به پایه en مقدار صفر بدید.
سلام ببخشید من با دسته بازی آردینو و درایور L298Nمیخوام ماشین کنترلی بسازم برنامه اش رو هم پیدا کردم مشکلم تو این قسمت هست که چه جوری به آردینو بگم که با زدن یه دکمه دسته بازی یا حرکت شوک ها ماشین یا همون گیربکس به جلو عقب بره نمی تونم جهت چرخشش رو بهش بفهمونم امید وارم بتونید کمکم کنید
سلام امیر حسین عزیز،
اگر مشکلت اینه که نمیتونی زده شدن یک دکمه رو تشخیص بدی، باید در مورد خود دسته سرچ کنی که انتقال اطلاعات به چه شکل هست و …
اگر زدن دکمه رو با آردوینو تشخیص میدی ولی نمیدونی جهت چرخش موتور رو چطور تغییر بدی، یعنی در کار با درایور موتور مشکل داری که بهتره مقاله رو دقیق مطالعه کنی.
سلام توی شماتیک مدار اومدید تغذیه درایور از یک اداپتور گرفتید نمیشه تغذیش از پایه ۵V اردوینو بگیریم؟
سلام امیر عزیز،
آداپتور، هم تغذیه مدار درایور و هم تغذیه موتورها رو بر عهده داره.
شما میتونی درایور رو با ۵ ولت خود آردوینو هم تغذیه کنی اما برای موتورها به تعذیه جداگانه نیاز هست.
سلام نمیشه ماژل گیرنده کدلرن را به موتور درایور وصل کنیم ؟؟؟
درود برشما دوست عزیز
این کار امکانپذیر است و خوشبختانه یک مقاله هم با موضوع ساخت ربات قابل کنترل با ریموت کنترلر در دست تهیه داریم که به زودی منتشر میشود.
سلام و عرض خسته نباشی
انصافاً مطلب تا حد زیادی کامل و مرتب و دسته بندی شده بود.
خدا خیرتون بده
و من الله توفیق
سلام محمد عزیز،
خیلی ممنون از شما، خوشحالیم که مقاله برات مفید بوده.
دکمه ایشو کیزارید بی زحمت
سلام شایان عزیز،
میشه لطفا بیشتر توضیح بدی، تشکر.
واقعا عالی هستید
لوازم بینظیر
پشتیبانی بینظیر
مقاله ها کاملا مفید
فقط اگه امکانش هست اموزش در باز کن با ماژول rc522را هم در سایت قرار بدهید ممنون
درود برشما مهدی عزیز
بینهایت سپاسگذاریم بابت رضایت شما از خدمات سایت روبوایکیو
در مورد ماژول RC522 در مقاله” آموزش راه اندازی ماژول RFID RC522 با آردوینو ” مفصل توضیح دادیم. با اضافه کردن یه ماژول رله به پروژه ذکر شده در همین مقاله شما بهراحتی در بازکن بسازید.
متشکریم از همراهی شما 🙂
سلام این مطلب عالی بود فقط میشه بگین چجوری با سر موتور و سنسور تشخیص فاصله درایور موتور را روشن کرد
درود برشما آرش عزیز
لطفاً اگر براتون مقدور هست سؤالتون را واضحتر برای ما بیان کنید تا بتونیم کمکتون کنیم. برای مثال عملکردی که مدنظرتون هست و قسمتی که براتون مشکل بوجود اومده را مطرح کنید.
بینهایت از همراهی شما سپاسگذاریم.
سلام.وقت بخیر ممنون از آموزشهای خوبتون.
یه جا خوندم که اگر in1 و in2 به صورت همزمان های(یک) بشن یه حالت اتصال کوتاه داخل l298 به وجود میاد و امکان سوختن آیسی وجود داره. آیا این مطلب صحت داره؟
سلام زانیار عزیز
سپاسگذاریم بابت رضایتتون
در دیتاشیت آی سی L298 به همچین موضوعی اشاره نشده و بلوک دیاگرام آی سی هم این رو نشون نمیده اما ممکنه این موضوع به طور تجربی توسط افرادی که از آی سی استفاده کردن، در شرایط استفاده خاصی مشاهده شده باشه که احتمالا مربوط به کیفیت آی سی میشه.
یا سلام و خیلی ممنون بخاطر مقاله کامل ساده و زیبا فقط یک سوالی داشتم برای کنترل سرعت موتور آیا میتوان یک ولوم به اردینو متصل کرد و یا کم و زیاد کردن ولوم سرعت موتور کم و زیاد شود اگه ممکنه از چه مقدار ولوم استفاده بشه و برنامه آن چگونه باشد.
سلام و درود برشما یعقوب عزیز
خوشحالیم که از محتوای این آموزش راضی بودین و تصمیم به پیادهسازی پروژه گرفتین،
لطفاً آموزش کنترل و راه اندازی موتور DC با درایور موتور L293D و آردوینو رو بخونید. خصوصا قسمت «کنترل سرعت دو موتور DC» و اگر باز هم جای ابهامی وجود داشت با ما مطرح کنید 🙂
درود بر شما . در صورتیکه ولتاژ موتورها بیشتر از ۱۲ ولت باشد , با برداشتن جامپر رگولاتور ۵ ولت , و همین آرایش اتصالات ( بدون هیچ تغییر دیگری ) , مدار کار خواهد کرد یا تغییرات دیگری نیاز است؟ سپاس.
سلام حامد عزیز
با برداشتن جامپر، کنترل کننده درایور تغذیه نخواهد شد و درایور خاموش خواهد ماند. بنابراین حتما نیاز است ۵ ولت Vss به طور جداگانه متصل شود.
با آرزوی موفقیت و پیروزی هرچه بیشتر برای شما
اینطور که من متوجه شدم این پروژه با یک سناریو هر دو موتور را از حالت خاموش روشن میکند و پس از افزایش و سپس کاهش دور موتور موتور خاموش میشود . درسته ؟
سلام ایمان عزیز
بله دقیقا همینطوره
با کمک این مقاله مدار خوبی درست کردم فقط نمیدونم چرا افت ولتاژ در خروجی زیاد است حدود هشت ولت افت ولتاژ بوجود میاد خیلی ممنون میشوم منو راهنمایی کنید
درود برشما دوست عزیز
خیلی خوشحالیم که از این مقاله بعنوان راهنمای انجام پروژه خودتون استفاده کردید.
لطفاً بفرمایید افت ولتاژ دقیقا بین کدام دو نقطه است و ولتاژ را در چه سرعتی و با چه وسیلهای (مولتیمتر یا اسیلوسکوپ) اندازه گیری میکنید.
موتور ۳ ولت و ۶ ولت رو هم میشه توسط این درایور کنترل کرد؟
احتمال سوختن موتورها وجود داره؟
درود بر شما علی عزیز
بله امکان پذیر است البته توجه کنید که تغذیه موتورها را متناسب با ولتاژشون اعمال کنید.
سلام وقت بخیر.
من مدار رو بستم ولی وقتی برنامه رو اجرا نیکنم روی استپ موتور، که موتور ۱۸۰ درحه بچرخه و ۱۰ ثانیه تاخیر داشته باشه و لوم ادامه میدا کنه، درایور l298 و هیت سینک اون به شدت داغ میشه، دلیلش چی هست؟
سلام و درود خدمت شما دوست عزیز
بفرمایید از چه موتوری با چه مشخصاتی استفاده میکنید و تغذیه ماژول و موتور رو چطور وصل میکنید؟
مشخصات موتور:
Sanyo Denki
۱۰۳-۵۹۳-۰۸۴
Step angle: 0.9 degree
۱.۵ ohm
نحوه اتصال مشابه تصویری هست که گذاشتین. فقط به جای دو تا موتور سیمها به دو فاز مختلف استپ موتور متصل میشن (تشخیص فازهای موتور انجام شده). تغذیه هم ۱۲ ولت هست. ولی بعد اجرای برنامه بعد از چند ثانیه شدیدا داغ میشه.
درود برشما دوست عزیز
لطفاً از درایوری با جریان بیشتر (متناسب با مشخصات موتور مورد استفاده خود) استفاده کنید.