
به نام خدا
پروژه ی کنترل موتور دی سی با جوی استیک و آردوینو و L293D

در این پست چگونگی کنترل سرعت و جهت چرخش یک موتور DC با استفاده از جوی استیک و درایور L293D را نشان خواهیم داد.
جوی استیک شامل دو پتانسیومتر (یکی برای محور X و دیگری برای محور Y) و یک دکمه است .
با یک پتانسیومتر، ما می توانیم سرعت و جهت چرخش یک موتور DC را کنترل کنیم. درایور L293D به ما اجازه می دهد که دو موتور را در هر دو جهت حرکت دهیم ، با دو خروجی PWM از آردوینو ما می توانیم به راحتی سرعت و همچنین جهت چرخش یک موتور DC را کنترل کنیم. (PWM: مدولاسیون عرض پالس ).
قطعات مورد نیاز کنترل موتور دی سی با جوی استیک و آردوینو و L293D :
- برد آردوینو UNO
- موتور ۱۲V DC
- ماژول جوی استیک
- آی سی درایور موتور L293D
- منبع تغذیه ۱۲V
- برد برد
- سیم برد بردی
مدار کنترل موتور دی سی با جوی استیک و آردوینو و L293D:
آی سی درایور L293D دو ورودی تغذیه دارد : VCC1 تغذیه ۵ ولت است و VCC2 ورودی ۱۲ ولت است ( ولتاژ نامی موتور ) . پین های IN1 و IN2 پین های کنترل هستند که نحوه مقدار دهی آنها در پایین آمده است :
| IN1 | IN2 | عملکرد |
| L | H | جهت ۱ |
| H | L | جهت۲ |
| L | L | توقف سریع موتور |
| H | H | توقف سریع موتور |
همانطور که در دیاگرام مداری نشان داده شد ، ما فقط به سه پین از پین های آردوینو نیاز داریم : A0 ( پین آنالوگ ) ، پین ۹ و ۱۰٫ پین های ۹ و ۱۰ خروجی های سیگنال PWM هستند در هر لحظه فقط یک خروجی PWM فعال است . این به ما اجازه ی کنترل جهت چرخش موتور را می دهد همانطور که با تغییر زمان وظیفه ( duty cycle ) می توانیم سرعت موتور را کنترل کنیم. پین PWM فعال ، مسیر جهت چرخش را تعیین می کند (خروجی PWM دیگر منطق ۰ است) .
کد های آردوینو :
دانلود کد برنامه کنترل موتور دی سی با جوی استیک و آردوینو و L293D:
دانلود فایل// Arduino joystick DC motor speed and rotation direction control
#define joystick A0
#define pwm1 9
#define pwm2 10
int motor_control;
void setup() {
pinMode(pwm1, OUTPUT);
pinMode(pwm2, OUTPUT);
}
void loop() {
motor_control = analogRead(joystick);
motor_control >>= 1;
if(motor_control > 255){
digitalWrite(pwm2, 0);
analogWrite(pwm1, (motor_control - 256));
}
else
if(motor_control < 255){
digitalWrite(pwm1, 0);
analogWrite(pwm2, (255 - motor_control));
}
else{
digitalWrite(pwm1, 0);
digitalWrite(pwm2, 0);
}
}
سلام در کد نویسی معرفی محیط از چه روشی استفاده کنم
کد آردوینو هست باید با IDE آردوینو کار کنید دوست عزیز