جستجو برای:
سبد خرید 0
  • خانه
  • فروشگاه
    • دوره های آموزشی
    • پروژه
    • بسته های آموزشی
      • رباتیک
      • آردوینو
  • هوافضا
    • آموزش هوافضا
      • فیلم های آموزش هوافضا
      • PDF های آموزش هوافضا
    • محصولات هوافضایی
    • نرم افزار های هوافضا
    • تازه های هوافضا
  • رباتیک
    • آموزش رباتیک
      • فیلم های آموزش رباتیک
        • PDF های آموزش رباتیک
    • دیتاشیت فارسی
    • نرم افزار های رباتیک
    • تازه های رباتیک
    • تاریخ مسابقات
  • پروژه
    • پروژه های رایگان
    • پروژه های آماده
    • پروژه های آردوینو
    • پروژه های رزبری پای
    • پروژه های بدون میکروکنترلر
    • پردازش تصویر
    • سفارش پروژه
  • دوره های آموزشی
    • کلاس های آموزشی
    • فیلم های آموزشی
    • جلسه های آموزشی
      • آموزش آردوینو
      • آموزش رسپبری پای
      • آموزش STM32
      • ربات پرنده
      • رباتیک مقدماتی
  • تماس با ما
  • درباره ما
  • مقالات
شروع ثبت نام دوره تابستانی آوات روبو
فرصت تکرار نشدنی ثبت نام در دوره های حضوری با 20% تخفیف!
ساعت
دقیقه
ثانیه
مشاهده دوره های آموزشی
رباتیک و هوافضا
ورود
با ایمیل با شماره موبایل
گذرواژه خود را فراموش کرده اید؟
عضویت
با ایمیل با شماره موبایل
  • 09152556924
  • sup@avatrobo.ir
رباتیک و هوافضا
  • خانه
  • فروشگاه
    • دوره های آموزشی
    • پروژه
    • بسته های آموزشی
      • رباتیک
      • آردوینو
  • هوافضا
    • آموزش هوافضا
      • فیلم های آموزش هوافضا
      • PDF های آموزش هوافضا
    • محصولات هوافضایی
    • نرم افزار های هوافضا
    • تازه های هوافضا
  • رباتیک
    • آموزش رباتیک
      • فیلم های آموزش رباتیک
        • PDF های آموزش رباتیک
    • دیتاشیت فارسی
    • نرم افزار های رباتیک
    • تازه های رباتیک
    • تاریخ مسابقات
  • پروژه
    • پروژه های رایگان
    • پروژه های آماده
    • پروژه های آردوینو
    • پروژه های رزبری پای
    • پروژه های بدون میکروکنترلر
    • پردازش تصویر
    • سفارش پروژه
  • دوره های آموزشی
    • کلاس های آموزشی
    • فیلم های آموزشی
    • جلسه های آموزشی
      • آموزش آردوینو
      • آموزش رسپبری پای
      • آموزش STM32
      • ربات پرنده
      • رباتیک مقدماتی
  • تماس با ما
  • درباره ما
  • مقالات
شروع کنید
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0

وبلاگ

رباتیک و هوافضا > مقالات > پروژه > پروژه کنترل موتور دی سی با انکودر دوار و آردوینو به همراه کد برنامه

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

اسفند 15, 1396
ارسال شده توسط mjavad
پروژه، پروژه های آردوینو، پروژه های رایگان
پروژه کنترل موتور دی سی با انکودر دوار و آردوینو به همراه کد برنامه

به نام خدا

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

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

در این پروژه کنترل موتور دی سی با انکودر دوار، آردوینو و درایور موتور L293D را یاد خواهیم گرفت.

در این جا از انکودر زیر استفاده شده است:

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

 

انکدور 5 پایه به نام های (GND,  +5V , SW (push button), DT (pin B) , CLK (pin A دارد.

در کنار انکودر یک میکروسوئیچ و سه مقاومت پول آپ 10 کیلو اهم در پایه های SW ، DT و CLK  نیاز است. با این سه مقاومت پول آپ ، این پایه ها در حالت 1 منطقی قرار می گیرند. این انکودر در پایه های (A (CLK و (B(DT سیگنال های مربعی با اختلاف فاز 90 درجه از یکدیگر (مانند شکل زیر) تولید می کند:

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

 

از آنجا که در حالت عادی پایه های A و B ، یک منطقی هستند ما باید لبه پایین رونده(لحظه تغییر حالت از یک به صفر ) را تشخیص دهیم. در اینجا پایه A چرخش انکودر به هر سمتی و پایه B جهت این چرخش را تشخیص می دهد. اگر پایه B یک منطقی باشد یعنی چرخش در جهت عقربه های ساعت و اگر پایه B صفر منطقی باشد یعنی چرخش در جهت خلاف عقربه های ساعت است.

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

  • برد آردوینو
  • انکودر دوار
  • موتور دی سی
  • درایور موتور L293D
  • برد بورد
  • منبع ولتاژ 12 ولت
  • سیم برد بورد

شماتیک مدار:

شماتیک مدار به صورت زیر است.

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

(همه زمین های مدار به یکدیگر متصل شده اند ، ترمینال منفی منبع را هم به زمین وصل کنید)

درایور L293D قابلیت راه اندازی دو موتور را در هر دو جهت دارد. با دو سیگنال PWM که آردوینو تولید می کند به راحتی می توانیم سرعت و جهت چرخش موتور را کنترل کنیم.(PWM: Pulse Width Modulation)

درایور  L293D با دو منبع جدا گانه تغذیه می شود. اولی VCC1) + 5) ولت است که از برد آردوینو می آید و دومی(VCC2) ولتاژ نامی موتور است و با + 12 ولت تغذیه می شود. پایه های IN1 و IN2  برای کنترل موتور می باشد که در زیر حالت هایش را می بینیم:

IN1 IN2 Function
L H Direction 1
H L Direction 2
L L Fast motor stop
H H Fast motor stop

پین های 5 و 6  آردوینو برای تولید سیگنال PWM  می باشند. در هرلحظه فقط یکی از پایه های PWM می تواند فعال باشد. این سبب  می شود که علاوه بر سرعت ، جهت موتور نیز بوسیله چرخه کار PWM در هر لحظه قابل کنترل باشد.جهت حرکت موتور وابسته به پایه فعال PWM است(وقتی یکی از PWM ها یک باشد دیگری صفر می باشد)

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

پایه A انکودر دوار به پین 2 آردوینو که پین وقفه خارجی است متصل می شود بنابراین چرخش انکودر دوار باعث تولید پالس هایی در پایه A انکودر می شود. این پالس تولید شده دستور وقفه به آردوینو داده و آردینو با این وقفه جهت حرکت انکودر دوار  را با خواندن پایه B انکودر تشخیص می دهد. اگر پایه B یک باشد و حرکت در جهت عقربه های ساعت باشد، متغییری با نام motor_speed افزایش می یابد و سرعت موتور را در همان جهت زیاد میکند. اگر منطق پایه B صفر بود عکس اتفاق می افتد و از این متغییر کم شده، سرعت موتور کم می شود.

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

[maxbutton id=”197″ url=”http://avatrobo.ir/wp-content/uploads/2018/03/سشس.txt” ]

// DC motor speed and direction control with Arduino and rotary encoder

#define pin_B    3       // Rotary encoder pin B (DT) is connected to Arduino pin 3
#define button  4        // Rotary encoder push-button pin (SW) is connected to Arduino pin 4
#define pwm1    5
#define pwm2    6

boolean motor_dir = 0;
int motor_speed = 0;

void setup() {
  pinMode(pwm1,   OUTPUT);
  pinMode(pwm2,   OUTPUT);
  attachInterrupt(0, encoder_read, FALLING);          // Enable external interrupt (INT0)
}
void encoder_read() {
  if(digitalRead(pin_B)) {
    motor_speed++;
  if(motor_speed > 255)
    motor_speed = 255;
  }
  else
    if(motor_speed > 0)
      motor_speed--;
  if(motor_dir)
    analogWrite(pwm1, motor_speed);
  else
    analogWrite(pwm2, motor_speed);
}
void loop() {
  if(!digitalRead(button)) {               // If direction button is pressed
    while(!digitalRead(button));           // Wait for direction button release
    motor_dir = !motor_dir;                // Toggle direction variable
    if(motor_dir) {
      digitalWrite(pwm2, 0);
      analogWrite(pwm1, motor_speed);
    }
    else {
      digitalWrite(pwm1, 0);
      analogWrite(pwm2, motor_speed);
    }
  }
}

 

برچسب ها: ROTARY ENCODERآردوینو یونوآموزش کنترل موتور دی سی با انکودر دوار و آردوینوپروژه ی کنترل موتور دی سی با انکودر دوار و آردوینودانلود کنترل موتور دی سی با انکودر دوار و آردوینوشیوه ی کنترل موتور دی سی با انکودر دوار و آردوینوطرز کنترل موتور دی سی با انکودر دوار و آردوینوکنترل موتور DCکنترل موتور دی سیکنترل موتور دیسی
قبلی ثبت کننده ی داده (دیتا لاگر) با آردوینو و حافطه ی SD و سنسور DHT11
بعدی کنترل موتور دی سی با ریموت کنترل و آردوینو

پست های مرتبط

اردیبهشت 9, 1398

برنامه نویسی به زبان پایتون برای رزبری پای

mjavad
ادامه مطلب

اسفند 5, 1397

تشخیص رنگ با استفاده از رزبری پای

mjavad
ادامه مطلب

بهمن 10, 1397

راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت دوم

mjavad
ادامه مطلب

بهمن 10, 1397

راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت اول

mjavad
ادامه مطلب

بهمن 2, 1397

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

Author Avatar
Admin
ادامه مطلب

دیدگاهتان را بنویسید لغو پاسخ

دسته های محصولات
آخرین دیدگاه‌ها
  • Admin در پروژه ی ساخت یک ریموت کنترل 2.4 گیگا هرتز برای 10 کانال
  • Admin در درباره ما
  • Admin در پروژه ی ساخت یک ریموت کنترل 2.4 گیگا هرتز برای 10 کانال
  • Admin در رادیوکنترل 4 کاناله با قابلیت افزایش تا 10 کانال
  • امیر در رادیوکنترل 4 کاناله با قابلیت افزایش تا 10 کانال
ژوئن 2026
ش ی د س چ پ ج
 12345
6789101112
13141516171819
20212223242526
27282930  
« آوریل    
فهرست 1
  • عضویت
  • ویرایش حساب کاربری
  • ورود
  • خانه
فهرست 2
  • حمایت مالی
  • تبلیغات
  • فروشنده
  • داشبورد فروشندگان
  • سفارش پروژه
  • تماس با ما
  • درباره ما
فهرست 3
  • ویرایش حساب کاربری
  • فراموشی رمز عبور
  • ثبت نام
  • ویرایش حساب کاربری
محل کد نماد...
جستجو برای:
محصولات
  • دوره کوادکوپتر سرعتی FPV دوره آموزش ساخت کوادکوپتر مسابقاتی FPV
    نمره 4.00 از 5

    4,830,000 
  • دوره هواپیما مقدماتی تا پیشرفته دوره آموزش ساخت پهپاد بال ثابت ( هواپیما ) - مقدماتی تا پیشرفته
    10,480,000 
  • دوره کوادکوپتر مقدماتی دوره آموزش مقدماتی ساخت مولتی کوپتر (کوادکوپتر، هگزاکوپتر و ...)
    2,490,000 
  • دوره کوادکوپتر فیلم بردار دوره آموزش ساخت پهپاد فیلم بردار ( مولتی کوپتر )
    8,970,000 
  • دوره هواپیمای مدل موتور کشی دوره آموزش ساخت هواپیمای موتور کشی
    2,030,000 
نوشته‌های تازه
  • برنامه نویسی به زبان پایتون برای رزبری پای
  • تشخیص رنگ با استفاده از رزبری پای
  • راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت دوم
  • راه اندازی ال سی 2 در 16 با استفاده رزبری پای قسمت اول
  • کنترل PID با آردوینو و دو موتور براشلس

درباره آوات روبو

 

آرمان آوات روبو نه تنها تغییر اکنون و تعریف آینده آموزش عملی و کاربردی در ایران، بلکه توسعه همین تغییر به کل دنیا است. نسخه بین المللی آوات روبو، هم اکنون در حال برنامه ریزی است و کارهای اولیه آن برای فعالیت در یوتیوب و یک سایت انگلیسی در حال انجام است.

دسترسی سریع

  • دوره های آموزشی
  • کیت
  • کلاس های حضوری
  • پروژه

کاوش

  • درباره ما
  • تماس با ما
  • مقالات

شبکه های اجتماعی

  • اینیستاگرام
  • یوتیوب
  • تلگرام

استفاده از مطالب سایت برای مقاصد غیر تجاری و با ذکر منبع بلامانع است. تمامی حقوق برای آوات روبو محفوظ است.