نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
آزادی حجاز از دست نااهلان
Avatar

کنترل سرعت موتور dc توسط l293d و پتانسیومتر

با سلام smile
در این پروژه ی بزرگ و مهم! قصد داریم سرعت یه موتور DC رو کنترل کنیم.همونطور که میدونید موتورها برای راه اندازی جریانهای نسبتا بالایی(البته نسبت به جریانهایی که در میکروکنترلرها با آنها سر و کار داریم) لازم دارند، یعنی از جایی که بهش وصل هستند جریان زیادی می کشند.پس اولین نکته اینه اگر میخاییم میکروکنترلرمون یا برد آردوینومون آسیب نبینه نباید موتور رو باهاش راه اندازی کنیم(ولی این که منطقی نیس!  unknw ) ، پس باید یه IC راه انداز استفاده کنیم.کار این درایور تامین جریان مورد نیاز موتور برای راه اندازی است بدون آنکه میکرو آسیب ببینه.در اینجا از L293D استفاده میکنیم.به دو دلیل:1-موتوری که من استفاده میکنم جریانه کمی میکشه 2-این درایور کوچیکتره و کار باهاش ساده تره، چون داخل دیود هرزگرد(دیودهای 1N400x) داره.

کنترل سرعت موتور dc توسط l293d و پتانسیومتر


خب اول بهتره فیلم تست مدار رو ببینیم
لینک فیلم پروژه کنترل سرعت موتور dc با l293 و پتانسیومتر

متاسفانه فیلم حذف شده.

 

قطعات مورد نیاز برای پروژه آردوینو ما در شکل زیر نشان داده شده اند

  1. آیسی L293D
  2. برد آردوینو UNO
  3. موتور DC 6v + پره قابل اتصال به موتور(اختیاری)
  4. پتانسیومتر خطی
  5. سیم نری به نری
  6. سیم مادگی به نری

کنترل سرعت موتور dc توسط l293d و پتانسیومتر

شماتیک مدار هم به صورته زیره
کنترل سرعت موتور dc
پروژه آردوینو

 

و نهایتا کد پروژه آردوینوی پیچیده ی مدار ما!!!

چند نکته درباره ی نحوه ی عملکرد مدار:

  1. خروجی پتانسیومتر ولتاژی بین 0 تا 5 ولت است که به ورودی A0 واحد ADC اعمال شده و بدلیل 10 بیتی بودن واحد، نتیجه عددی بین 0 تا 1023 است.
  2. توسط دستور (analogWrite(pwmpin,val میتوان یک سیگنال مربعی روی یکی از پینهای 3 یا 4 یا 6 یا 9 یا 10 یا 11 تولید کرد.مقدار val میتواند بین 0 تا  255 باشد(بدلیل 8 بیتی بودن تایمرهای میکروی UNO).به همین دلیل توسط دستور map یک تغییر رنج انجام داده ایم.
  3. در صورت اعمال 5 ولت به in2 و 0 ولت به in1 جهت چرخش موتور عوض می شود.

برای درک کد پروژه بالا میتونید مطالب زیر رو بخونید :
برا بحث توابع setup و loop : آموزش جامع آردوینو جلسه ۱
برا بحث تابع analogWrite : آموزش جامع آردوینو جلسه ۲ و آموزش جامع آردوینو جلسه 3
برا بحث تابع map : آموزش جامع آردوینو جلسه ۹ توابع متفرقه

بله همون طور که دیدید همش یه خطه برنامه ما  laugh

گروه پرسش و پاسخ الکترونیکی در سروش
Avatar
ارسال دیدگاه
20

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید ( طبیعتا لینک کدتون رو باید برای من بفرستید! ) : debian

4) پسورد فایل های سایت : www.dmf313.ir

  1. Avatar

    مهمان

    احمد

    سلام
    دوتا سوال دارم
    ۱-برای تغییر جهت دور باید چیکار کرد؟؟
    ۲- و اینکه بخواایم همین کنترل سرعت و تغییر جهت گردش رو برای موتور براشلس انجام بدیم مدارش چجوریه؟

    • مهدی دمرچیلو

      مدیر سایت

      مهدی دمرچیلو

      سلام
      ۱-یه رله دو خروجی به پایه های IN1 و IN2 وصل کن
      ۲-داستانش فرق داره براشلس – سرچ کن – خودم هم درایورشو بلد نیستم درست کنم.

  2. Avatar

    مهمان

    عرفان

    سلام به همه دوستان
    من تو پروتئوس تونستم موتور براشلس رو راش بندازم اونجا سرعتش 1000 به بالا میره آخرش میشه MAX+فقط نمی دونم چطوری عکشو بزارم تو سایت؟ ولی تو عملی موتور فقط ویبره داره laugh فک کنم به خاطر آدابتوره 12v 1A باشه. اون مداری که تو سایت ECA دیدم کلی المان داره, تو سایتم که بالای 80 صفحه بحث شده منم که حوصله ندارم میگم شما نسخه نهایی اونو دارین برام بفرستیم ممنون میشم .

  3. Avatar

    مهمان

    ناشناس

    چه طور میشه موتور رو بخوام با سرعت ثابت به حرکت در بیارم و تو ی نقطه بخوام متوقف بشه؟

    • مهدی دمرچیلو

      مدیر سایت

      مهدی دمرچیلو

      موتور DC نمیشه ولی با سرو موتور میشه ولی استپ موتور هم تقریبا میشه

  4. Avatar

    مهمان

    ناشناس

    سلام پتانسیومتر چی رو اندازه می گیره؟من یک سنسور دارم که فاصله رو اندازه می گیره می خوام موتورم به اندازه ای حرکت کنه که فنی که بهش وصله توموقعیت اعلامی سنسور قرار بگیره

    • مهدی دمرچیلو

      مدیر سایت

      مهدی دمرچیلو

      پتاسیومتر چیزی رو اندازه نمیگیره، به کمکش یه تقسیم ولتاژ درست کردیم(مدار داخلی پتاسیومتر رو ببین) و دادیم به میکرو و میکرو مقدار خروجی پتاسومتر رو میخونه و بر طبق اون مقدار سرعت موتور رو تنظیم میکنه.

  5. Avatar

    مهمان

    بهنام

    سلام
    کلا کارت عالیه به همه جواب میدی و تمام سعیتو در انتقال مطالب میکنی خدا وکیلی دمت گرم
    اما سوال من
    کنترل فاز چیه؟؟
    من میخام یه موتور براشلس رو هم ساعتگرد بچرخونم هم پاد ساعتگرد(مثل ماشین کنترلی هم جلو بره هم عقب)بهم گفتن براشلس ها همه دو طرفه میچرخن و این قابلیت باید توی اسپید کنترلت باشه و همچنین با تغییر فاز اینکارو کنی
    تغییر فازچیه؟
    با اردوینو میشه تغییر فاز داد؟
    خیلیی ممنون

    • مهدی دمرچیلو

      مدیر سایت

      مهدی دمرچیلو

      سلام
      نمیدونم تو گوگل سرچ کن – جان داش حسش نیست برم تو گوگل سرچ کنم از ساعت 7.5صب رفتن تمرین رزمایش و 1ساعت پیش برگشتم shout

  6. Avatar

    مهمان

    عرفان

    تغذیه جاروبک ها نه ببخشید سیم پیچ ها D:

  7. Avatar

    مهمان

    عرفان

    سلام
    بله حق با شماست تغذیه موتور که با تغذیه کنترلر یکی نیست قطعا, از یه آدابتور تغذیه میشه. ولی فک کنم بشه دور موتور رو با میکرو کنترل کرد چون راه اندازی brushless با یه سری کد باینری که به عنوان تغذیه جاروبک ها استفاده میشه (اون چیزی که من فهمیدم!!) خوب همین کد هارو بدیم به میکرو . واسه سرعتشم فرکانس کاریمونو تغییر بدیم هان نظرتون چیه؟؟؟؟ ولی اگه بشه چی میشه smile

    • Avatar

      نویسنده سایت

      mitavanim

      با عرض سلام و وقت بخیر خدمت آقا عرفان.
      بله با میکروکنترلر می توان سرعت را مدیریت کرد اما نیاز به مقداری مدار جانبی هم دارید که باید در این مورد تحقیق و مطالعه داشته باشید. این هم یک منبع برای مطالعه: راه اندازی موتور براشلس (BLDC)

  8. Avatar

    مهمان

    عرفان

    سلام
    میشه با آردوینو سرعت موتورای brushless رو کنترل کرد ؟؟ منظورم بدون اسپیدکنتلر باشه یعنی خود آردو نقش اسپید کنترلر رو بازی کنه و… چون قیمت درایورش از موتوره بیشتره!!! smile

    • مهدی دمرچیلو

      مدیر سایت

      مهدی دمرچیلو

      سلام
      نچ
      سمت همچین کاری نرو که غیر از آردوینو میزنی کامپیوترت رو هم میسوزنی ها laugh
      برا هر موتوری اسپیدش نیازه – چون میکرو خروجی جریانشون محدوده و موتور ها هم ماشا الله مصرفشون بالاس
      کلا هیچ موتوری رو بدون درایور به میکرو وصل نکن

    • Avatar

      نویسنده سایت

      mitavanim

      با عرض سلام و وقت بخیر خدمت آقا عرفان.
      سرعت موتورهای بدون جاروبک را حتی با ATmega8 هم می توان مدیریت کرد ولی شما نیازمند تعدادی ترانزیستور هستید تا به سرعت تغذیه اعمالی به سیم ها موتور تغییر مکان بدهند.
      در نمونه های تجاری باز شده مشاهده شد که ATmega8 استفاده شده بود.
      کار سختی نیست ولی باید حوصله داشته باشی، افرادی را دیدم که می توانند مدیریتگر سرعت موتور بدون جاروبک را حتی بهتر از برخی نمونه های موجود در بازار بسازند.
      این مطلب را بخوانید:
      راه اندازی موتور براشلس (BLDC)

  9. Avatar

    مهمان

    هادی

    عرض سلام و وقت بخیر
    میشه واسه راه اندازی موتور کرولس با ولتاژ 3.7 ولت هم از آردوینو استفاده کرد؟
    اگه جوابتون مثبته میشه راهنمایی کنین چطور همچین کاری رو میشه انجام داد و اینکه با یه برد آردوینو uno تا چن تا موتور رو میشه کنترل کرد؟
    با تشکر از مطالب خوبتون

    • مهدی دمرچیلو

      مدیر سایت

      مهدی دمرچیلو

      سلام
      شدنش میشه ولی خب توقع نداری که مستقیم اینا رو به آردوینو وصل کنید، باید ببینی درایوری براس تو بازار هستش یا نه برو تهیش کن – اگه هم نیستش که باید تو نت بسرچی و خودت مدارش رو ببندی.

  10. Avatar

    مهمان

    تقی

    کتاب ارشدم گذاشتی دم دستو بعله … 😉

    • Avatar

      نویسنده این مطلب

      آمانج عبداله زاده

      خخخخخ چیزه دیگه ای دمه دستم نبود گوشیمو باش ثابت نگه دارم.بالاخره این کتابا به یه دردی خوردن! laugh

      • Avatar

        مهمان

        علی

        با سلام به دوستان عزیز که وقت و انرژی واسه آموزش آردوینو میذارن.
        من یک پروژه میخوام انجام بدم که همین موتور DC رو بشه از طریق کی پد کنترل کرد.
        یعنی وقتی دور موتور رو از طریق کی پد بهش میدم دور موتوررو دور مورد نظر بچرخه تو یک ال سی دی (عدد دور وارد شده از کی پد) نشونهم بده.
        نیازی به فیدبک گرفتن از دور موتور ندارم.
        میشه راهنمایی کنید یا اینکه همین پروژه رو تو سایت قرار بدید تا بقیه هم استفاده کنن.
        ممنون