رباتیک و هوافضا

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

کنترل موتور دی سی با جوی استیک و آردوینو و L293D

به نام خدا

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

 

کنترل موتور دی سی با جوی استیک و آردوینو و L293D

در این پست چگونگی کنترل سرعت و جهت چرخش یک موتور DC با استفاده از جوی استیک و درایور L293D را نشان خواهیم داد.

جوی استیک شامل دو پتانسیومتر (یکی برای محور X و دیگری برای محور Y) و یک دکمه است .

با یک پتانسیومتر، ما می توانیم سرعت و جهت چرخش یک موتور DC را کنترل کنیم. درایور  L293D به ما اجازه می دهد که دو موتور را در هر دو جهت حرکت دهیم ، با دو خروجی PWM از آردوینو ما می توانیم به راحتی سرعت و همچنین جهت چرخش یک موتور DC را کنترل کنیم. (PWM: مدولاسیون عرض پالس ).

قطعات مورد نیاز کنترل موتور دی سی با جوی استیک و آردوینو و L293D :

  • برد آردوینو UNO
  • موتور ۱۲V DC
  • ماژول جوی استیک
  •  آی سی درایور موتور L293D
  •  منبع تغذیه ۱۲V
  • برد برد
  • سیم برد بردی

مدار کنترل موتور دی سی با جوی استیک و آردوینو و L293D:

اتصالات مدار در تصویر بالا نشان داده شده است.

 

آی سی درایور  L293D  دو ورودی تغذیه دارد : VCC1  تغذیه ۵ ولت  است و VCC2  ورودی ۱۲ ولت است ( ولتاژ نامی موتور ) . پین های IN1 و IN2 پین های کنترل هستند که نحوه مقدار دهی آنها در پایین آمده است :

بیشتر بخوانید...  ساخت اسپیدکنترلر موتور براشلس 3 ( با سنسور )

 

IN1 IN2 عملکرد
L H جهت ۱
H L جهت۲
L L توقف سریع موتور
H H توقف سریع موتور

همانطور که در دیاگرام مداری نشان داده شد ، ما فقط به سه پین از پین های آردوینو نیاز داریم : A0 ( پین آنالوگ ) ، پین ۹ و ۱۰٫  پین های  ۹ و ۱۰  خروجی های سیگنال PWM هستند در هر لحظه فقط یک خروجی PWM  فعال است .  این به ما اجازه ی کنترل جهت چرخش موتور را می دهد همانطور که با تغییر زمان وظیفه ( duty cycle ) می توانیم سرعت موتور را کنترل کنیم. پین PWM فعال ، مسیر جهت چرخش را تعیین می کند (خروجی  PWM دیگر منطق ۰ است) .

ماژول جوی استیک ۵ پایه دارد :  GND،+۵V، VRX، VRY ،SW  که GND  و ۵ ولت پایه های تغذیه ، VRX  خروجی پتانسیومتر محور X ، VRY خروجی پتانسیومتر محور Y و SW  خروجی میکروسوییچ است . خروجی پتانسیومتر محور X به پین A0 آنالوگ آردوینو متصل می شود، خروجی پتانسیومتر محور Y می تواند برای کنترل موتور DC استفاده شود. پین سوئیچ (SW) در این پروژه استفاده نمی شود.
با استفاده از پتانسیومتر های محور X و محور  Y می توانیم به طور مستقل دو موتور DC را نیز کنترل کنیم.

کد های آردوینو :

آردوینو UNO دارای یک مبدل آنالوگ به دیجیتال (ADC) با دقت ۱۰ بیت است به این معنی است که مقدار خروجی عددی بین ۰ تا ۱۰۲۳ می باشد.
سیگنال های PWM دارای دقت ۸ بیتی هستند که به این معنی است که مقدار آن ( duty cycle ) بین ۰ تا ۲۵۵ متغیر است.

دانلود کد برنامه کنترل موتور دی سی با جوی استیک و آردوینو و 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);
    }
}

 

بیشتر بخوانید...  پروژه ی ساخت آمپر متر دیجیتال با استفاده از آردوینو

 

دیدگاه‌ها (2)

*
*

    مسعود مهمان مرداد 27, 1399 پاسخ

    سلام در کد نویسی معرفی محیط از چه روشی استفاده کنم

      Admin مدیر کل آبان 16, 1399 پاسخ

      کد آردوینو هست باید با IDE آردوینو کار کنید دوست عزیز