کنترل جهت گردش موتور DC — راهنمای کاربردی
برای کنترل جهت گردش موتورهای جریانمستقیم کافی است که جهت جریان عبوری از سیمپیچهای آنها را تغییر دهیم. در این آموزک مدار کنترل سرعت و جهت گردش موتور DC توسط آیسی L293D توضیح داده خواهد شد.
فیلم آموزشی کنترل جهت گردش موتور DC
عموما برای کنترل جهت چرخش موتورهای جریان مستقیم از مدار زیر استفاده میشود که به آن پل H میگوییم. این کار توسط کنترل ولتاژ بیس ترانزیستورها انجام خواهد شد. اگر ولتاژ بیس A یک منطقی و بیس B صفر منطقی شود، آنگاه ترانزیستورهای 1 و 4 روشن و بقیه خاموش خواهند شد. در نتیجه جهت جریان الکتریکی در موتور به سمت راست خواهد بود.
اما اگر ولتاژ بیس B یک منطقی و بیس A صفر منطقی شود آنگاه، ترانزیستورهای 2 و 3 روشن و بقیه آنها خاموش خواهند شد. در چنین وضعیتی جهت جریان عبوری از موتور به سمت چپ خواهد بود که معکوس حالت قبل است. بنابراین با کنترل ولتاژ بیسهای A و B میتوان جهت گردش را کنترل کرد. برای تغییر سرعت موتور نیز به جای اعمال یک منطقی از سیگنال PWM استفاده میشود و با تغییر چرخه کاری آن میتوان سرعت موتور را تغییر داد.
در عمل مدار بالا در داخل آیسی L293D پیادهسازی شده است. البته با استفاده از این آیسی بصورت همزمان میتوان سرعت دو موتور جریان مستقیم و یا یک موتور پلهای را کنترل کرد. شکل 2 مدار کنترل جهت گردش و سرعت موتور جریان مستقیم با استفاده از آیسی L293D را نشان میدهد.
موتور اول به پایههای 3 و 6 و موتور دوم به پایههای 11 و 14 آیسی متصل میشود. پایههای 2 و 3 همان بیسهای A و B در شکل 1 برای موتور اول هستند و جهت گردش آن را کنترل میکنند. بصورت مشابه پایههای 2 و 3 همان بیسهای A و B برای موتور دوم هستند و جهت گردش آن را کنترل میکنند.
پایههای 1 و 9 فعالساز آیسی هستند و تا زمانیکه ولتاژ این پایهها یک منطقی نشود، موتورها نیز روشن نخواهند شد. البته برای کنترل سرعت موتورها نیز میتوان از این پایه استفاده کرد و سیگنال PWM را به این پایهها اعمال کرد. همچنین دقت کنید که سیگنال فرمان برای سرعت و گردش موتور توسط برد Arduino Uno صادر خواهد شد.
جدول زیر مدهای کاری مدار بالا را نشان میدهد. برای مثال، برای موتور اول اگر 1A و 2A به ترتیب صفر منطقی و یک منطقی شوند، موتور به صورت ساعتگرد و اگر 1A یک منطقی و 2A صفر منطقی شود، موتور به صورت پادساعتگرد خواهد چرخید. اگر هر دو سیگنال صفر منطقی باشند، موتور خاموش و اگر یک منطقی شوند، موتور در مد توقف سریع قرار میگیرد.
برنامه زیر کنترل سرعت و جهت موتورها را نشان میدهد. موتور اول باید با سرعت نامی به صورت ساعتگرد و موتور دوم باید به صورت پادساعتگرد و با نصف سرعت نامی گردش کند. دقت کنید که در Arduino برای تولید سیگنال PWM از دستور AnalogWrite استفاده میکنیم.
1const int motor1SpeedPin = 5;
2const int motor2SpeedPin = 6;
3const int motor1DirAPin = 2;
4const int motor1DirBPin = 3;
5const int motor2DirAPin = 4;
6const int motor2DirBPin = 7;
7void setup()
8{
9pinMode(motor1SpeedPin, OUTPUT);
10pinMode(motor2SpeedPin, OUTPUT);
11pinMode(motor1DirAPin, OUTPUT);
12230 | Chapter 13: MotorspinMode(motor1DirBPin, OUTPUT);
13pinMode(motor2DirAPin, OUTPUT);
14pinMode(motor2DirBPin, OUTPUT);
15Serial.begin(9600);
16// M1 full speed clockwise
17analogWrite(motor1SpeedPin, 255);
18digitalWrite(motor1DirAPin, LOW);
19digitalWrite(motor1DirBPin, HIGH);
20// M2 half speed counter-clockwise
21analogWrite(motor2SpeedPin, 127);
22digitalWrite(motor2DirAPin, HIGH);
23digitalWrite(motor2DirBPin, LOW);
24}
25void loop()
26{ }
در صورتی که مطلب بالا برای شما مفید بوده است، آموزشها و مطالبی که در ادامه آمدهاند نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای مهندسی قدرت
- آموزش کنترل موتورهای الکتریکی صنعتی ۱
- مجموعه آموزشهای مهندسی الکترونیک
- آموزش کنترل موتورهای الکتریکی صنعتی ۲
- کنترل موتورهای الکتریکی — به زبان ساده
- کنترل سرعت موتورهای DC — از صفر تا صد
- اسیلاتور ۵۵۵ — از صفر تا صد
^^
سلام مهندس وقت بخیر ضمن سپاسگزاری فراوان از آموزشهای فوق العاده شماعزیزان در سایت وزین فرادرس ،یک خواهش داشتم من به طرح ویانقشه مداری ساده جهت کنترل جهت حرکت موتور الکتریکی DC وACبصورت جداازهم دارم ،ولی چون مبتدی هستم تاحدودی متاسفانه از اموزش فوق نتونستم استفاده کنم که البته قابل ذکراست نقص در عدم معلومات کافی اینجانب هست نه نحوه آموزش ،لذا خواهشمندم اگه محبت بفرمایید و این حقیرراراهنمایی بفرماییدمتشکرو سپاسگزارم