آموزش راه اندازی ماژول درایور استپر موتور ULN2003 با آردوینو

فهرست مطالب

ویژگی های ماژول درایور استپر موتور ULN2003

زمانی که نیاز به کنترل دقیق شفت موتور داریم، عموما از استپر موتورها استفاده می‌کنیم. این موتورها در بازوی ربات، پرینترهای سه بعدی، ماشین‌های CNC و …. کاربرد دارند. 28BJY-48 یکی از انواع استپر موتور می‌باشد. در مد full step این موتورها هر چرخش را با 32 گام طی می‌کنند و داری یک گیربکس کاهش سرعت 1 به 64 هستند. عموما برای کنترل این موتورها از درایور ULN2003 استفاده می‌شود.
آی‌سی ULN2003 از 7 جفت ترانزیستور دارلینگتون (Darlington) تشکیل شده‌است که هر جفت قابلیت تحمل 500 میلی‌آمپر و 50 ولت را دارد. 4 عدد از این 7 جفت ترانزیستور در این ماژول در دسترس است. این ماژول دارای 4 عدد LED جهت نشان دادن فعالیت 4 پایه کنترلی موتور می‌باشد.

دیتاشیت آی سی ULN2003 را می توانید از اینجا دانلود کنید.

معرفی پایه های (Pinout) ماژول درایور استپر موتور ULN2003

ماژول درایور استپر موتور ULN2003 دارای پایه‌هایی به شرح زیر است:

  • VIN: ولتاژ تغذیه ماژول- 5تا12 ولت
  • GND: زمین
  • IN1: پایه کنترلی 1
  • IN2: پایه کنترلی 2
  • IN3: پایه کنترلی 3
  • IN4: پایه کنترلی 4
  • MOTOR: سیگنال های اتصالی به موتور

پین اوت (Pinout) این ماژول را می توانید در تصویر زیر مشاهده کنید.

لوازمی که به آن احتیاج دارید

قطعات مورد نیاز

آردوینو UNO R3 × 1
ماژول درایور استپر موتور ULN2003 × 1
استپر موتور 5 ولت 28BYJ-48 × 1
سیم جامپر نری-مادگی × 1

نرم افزارهای مورد نیاز

آردوینو IDE

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

گام اول: سیم بندی

مطابق مدار زیر ماژول را به آردوینو و استپ موتور وصل کنید.

توجه

پایه GND آردوینو را به GND منبع تغذیه متصل کنید.

هشدار

به دلیل اینکه ولتاژ کاری موتور 5 ولت است، هرگز از منبع تغذیه بالاتر از 5 ولت استفاده نکنید.

گام دوم : کد

کد زیر را روی آردوینو خود آپلود کنید.

   /*
  ULN2003-Stepper-Motor-Driver
  modified on 25 Nov 2020
  by Amir Mohammad Shojaee @ Electropeak
  
Home
based on Arduino library Example */ #include <Stepper.h> const int stepsPerRevolution = 2048; const int rpm = 12; Stepper stepper1 = Stepper(stepsPerRevolution, 8, 10, 9, 11); void setup() { stepper1.setSpeed(rpm); } void loop() { stepper1.step(stepsPerRevolution); delay(100); stepper1.step(-stepsPerRevolution); delay(100); }

در کد فوق، ابتدا کتابخانه موتور پیوست می‌شود. در مرحله بعدی دو متغیر گام چرخش و سرعت موتور بر حسب RPM تعیین می‌شوند. موتور 28BJY-48  داری یک گیربکس 64 به 1 و گام چرخش 32 می‌باشد. بنابراین گام به ازای هر چرخش موتور با احتساب این دو شرط 32×64=2048 می‌شود. سرعت آن را نیز 12RPM قرار می‌دهیم. سپس پایه های کنترلی طبق ترتیب بالا تعیین می‌گردند. در آخر نیز موتور ابتدا 5 ثانیه در جهت عقربه‌های ساعت و  5 ثانیه در خلاف جهت عقربه های ساعت می‌چرخد.

آموزش های مشابه

Comments (3)

  • مهرداد Reply

    سلام
    سوالی از خدمتتون داشتم
    5 ثانیه گردش بر اساس کدوم سطر تعریف شده و چطور میتونم افزایشش بدم

    ژوئن 27, 2021 at 4:27 ب.ظ
    • مهران ملکی Reply

      سلام،
      همونطور که در متن پس از کد توضیح داده شده، موتوری که در این آموزش استفاده شده یک گیربکس 1 به 64 داره و گام چرخش اون هم 32 هست. در نتیجه هر دور چرخش به تعداد 32*64 یعنی 2048 گام لازم داره.
      در خط 11 کد هم تعداد گام‌های چرخش تعریف شده که 2048 هست. یعنی در هر دستور چرخش، موتور یک دور میچرخه. در خط 12 هم سرعت چرخش تعریف شده که 12 دور بر دقیقه هست.
      در نتیجه در هر دستور چرخش، موتور یک دور میچرخه و ازونجایی که سرعت چرخش 12 دور بر دقیقه هست، هر دور چرخش 5 ثانیه طول میکشه. برای اینکه این مدت زمان رو تغییر بدید میتونید در خط‌های 11 و 12، تعداد گام چرخش و سرعت رو تنظیم کنید.

      ژوئن 28, 2021 at 4:39 ب.ظ
  • م م Reply

    سلام من کد کتابخانه پروتئوس ماژول uln2003 را چطور می توانم دانلود کنم ،کد ماژول نه کد آی سی

    می 13, 2022 at 7:23 ق.ظ

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد.