شما به اینترنت متصل نیستید.
کنترل استپر موتور با برد رزبری پای | درس یازدهم
نویسنده:
امتیاز دهید

کنترل استپر موتور با برد رزبری پای | درس یازدهم

استپر موتورها در واقع چیزی میان موتورهای DC و سروو موتورها می باشند و این مزیت را دارند که می توان به راحتی آنها را موقعیت یابی کرد، موتور حرکت رو به جلو یا عقب داشته باشد و یا اینکه به طور مداوم بچرخد.

کنترل موتور DC با برد رزبری پای | درس دهم
کنترل موتور DC با برد رزبری پای | درس دهم
در این درس یاد خواهید گرفت که چگونه سرعت و جهت چرخش موتور DC را توسط برنامه پایتون و آس سی L293D کنترل کنید. لذا می توانید از موتورهای DC که کاربرد گسترده ای نیز دارند، در پروژه های خود استفاده کنید.
زمان مطالعه: 10 دقیقه

در این مقاله نحوه کنترل استپر موتور توسط برد رسپبری پای و آی سی کنترل کننده موتورL293D که در درس دهم برای کنترل موتور DC از آن استفاده گردید، مورد بررسی قرار می گیرد.

همچنین چگونگی جایگزینی آی سی ULN2803 به عنوان درایور آموزش داده می شود.

برای این پروژه فرقی نمی کند که از L293D یا ULN2803استفاده کنید. اگر تراشه دیگری ندارید، استفاده از ULN2803 به خاطر قیمت ارزان و دارا بودن چهار خروجی جداگانه، آن را به بهترین گزینه تبدیل می کند.

استپر موتورها دارای توان مصرفی پایین بوده و نسبت به موتور های DC و سروو به جریان الکتریکی کمتری نیاز دارند. برای کارکرد مناسب این پروژه می توانید از خروجی 5V رسپبری پای استفاده کنید، فقط در نظر داشته باشید که رسپبری پای به یک منبع تغذیه مناسب با حداقل جریان آمپر 1 متصل باشد.

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

قطعات مورد نیاز برای انجام این آموزش را می توانید از بخش فروشگاه اتومی تهیه کنید:

برد رسپبری پای
1 عدد
برد GPIO تی شکل + کابل
1 عدد
سیم اتصال برد بورد
1 عدد
برد بورد
1 عدد
آی سی درایور موتور L293D
1 عدد
آی سی ULN2803
1 عدد
استپر موتور
1 عدد

سخت افزار (L293D):

استپر موتور به کار گرفته شده در این آموزش از نوع 5 سیم می باشد، و برای راه اندازی آن از هر دو سمت درایور L293D استفاده می شود، که به معنای وجود اتصالات زیاد در برد بورد می باشد.

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

توجه داشته باشید که سیم قرمز رنگ به جایی متصل نمی شود.

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

سخت افزار(ULN2803):

در صورتی که از ULN2803 استفاده می کنید، هر 5 سیم به کار خواهد رفت. مانند حالت قبل از سیم جامپرها برای اتصال به برد بورد استفاده کنید.

توجه کنید که روش و مباحث بیان شده، فقط برای کنترل استپر موتورهای 5 سیم دو قطبی می باشد.

اگرچه در کد زیر از پایه 18پورت GPIO به عنوان پایه فعالساز استفاده شده ولی اینکار فقط زمانی که از L293D استفاده می کنید، لازم است.

استپر موتور:

این موتورها از چرخ دنده و آهنربای الکترو مغناطیسی برای چرخش در هر پله استفاده می کنند.

با وارد کردن انرژی به سیم پیچ سمت راست، موتور شروع به چرخش می کند. تعداد پله ها برای چرخش 360 درجه، در واقع همان تعداد دندانه های چرخ دنده می باشد.

موتور استفاده شده در این درس، 8 پله می باشد. اما با توجه به دارا بودن جعبه دنده 1:64، برای چرخش کامل نیازمند 8*64 = 512 پله است.

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

در صورتی که از درایور L293D استفاده می کنید، نیازی به این اتصال میانی نیست، چون این درایور توانایی تولید جریان معکوس را دارد. لذا شما می توانید جریان را به هر کدام از سیم پیچ ها وارد کنید.

ULN2803 :

آی سی درایور موتور L293D در درس دهم مورد بررسی قرار گرفت. حال آی سی پرکاربرد ULN2803 بررسی می گردد.

L293D در حقیقت دارای 4 خروجی می باشد، که می توانند به طور متقارن عمل معکوس سازی را انجام دهند. اما ULN2803 8 خروجی دارد، که سیگنال های ضعیف تولید شده توسط پین های GPIO برد رسپبری پای را تقویت کرده و اجازه اعمال جریان های قوی تر را می دهد.

برخلاف L293D، خروجیULN2803 فقط در یک جهت جریان تولید می کند، لذا باید از سیم قرمز مشترک استفاده شود. بنابراین به جای به کارگیری تمامی سیم پیچ بین سیم صورتی و نارنجی، فقط به نیمی از آن که بین سیم قرمز مشترک و صورتی قرار دارد، انرژی وارد می شود.

نرم افزار:

نرم افزار مورد استفاده برای هر کدام از تراشه های L293D یا ULN2803 کاملا مشابه می باشد. در این پروژه از کتابخانه‌ی Rpi.GPIO استفاده شده است. اگر شما قبلا از آن استفاده نکرده اید، ابتدا از طریق این لینک آن را نصب کنید.

برای نصب کد، باید به وسیله SSH به برد رسپبری پای خود متصل شده با وارد کردن دستور زیر پنجره ی ویرایشگر (editor window) را باز کنید:

$nano stepper.py

در ادامه کد زیر را در آن وارد کرده و در نهایت با استفاده از CRTL-X و سپسY آنرا ذخیره نمایید.

import RPi.GPIO as GPIO

import time

 

GPIO.setmode(GPIO.BCM)

 

enable_pin = 18

coil_A_1_pin = 4

coil_A_2_pin = 17

coil_B_1_pin = 23

coil_B_2_pin = 24

 

GPIO.setup(enable_pin, GPIO.OUT)

GPIO.setup(coil_A_1_pin, GPIO.OUT)

GPIO.setup(coil_A_2_pin, GPIO.OUT)

GPIO.setup(coil_B_1_pin, GPIO.OUT)

GPIO.setup(coil_B_2_pin, GPIO.OUT)

 

GPIO.output(enable_pin, 1)

 

def forward(delay, steps): 

  for i in range(0, steps):

    setStep(1, 0, 1, 0)

    time.sleep(delay)

    setStep(0, 1, 1, 0)

    time.sleep(delay)

    setStep(0, 1, 0, 1)

    time.sleep(delay)

    setStep(1, 0, 0, 1)

    time.sleep(delay)

 

def backwards(delay, steps): 

  for i in range(0, steps):

    setStep(1, 0, 0, 1)

    time.sleep(delay)

    setStep(0, 1, 0, 1)

    time.sleep(delay)

    setStep(0, 1, 1, 0)

    time.sleep(delay)

    setStep(1, 0, 1, 0)

    time.sleep(delay)

 

 

def setStep(w1, w2, w3, w4):

  GPIO.output(coil_A_1_pin, w1)

  GPIO.output(coil_A_2_pin, w2)

  GPIO.output(coil_B_1_pin, w3)

  GPIO.output(coil_B_2_pin, w4)

 

while True:

  delay = raw_input("Delay between steps (milliseconds)?")

  steps = raw_input("How many steps forward? ")

  forward(int(delay) / 1000.0, int(steps))

  steps = raw_input("How many steps backwards? ")

  backwards(int(delay) / 1000.0, int(steps))

استپر موتورها در زمان سکون هم هنوز فعال بوده و موقعیت خود را حفظ می کنند، که این خود نیاز به مصرف انرژی دارد. در صورتی که نیاز به حفظ موقعیت و وضعیت ندارید، دستور setStep(0,0,0,0) را فراخوانی کنید تا سیم پیچ ها آزاد گردند. در این صورت محور موتور آزادانه حرکت می کند و جریان زیادی مصرف نخواهد کرد.

تست و نکات نهایی:

برنامه باید در حالت super-user اجرا گردد، بنابراین دستور زیر را در SSH session وارد کنید.

$sudo python stepper.py

در ادامه مقدار تاخیر(5 مقدار خوبی است)و سپس تعداد پله ها (512 برای چرخیدن کامل) را وارد کنید.

برای پیدا کردن حداکثر سرعت موتور، زمان تاخیر را کاهش دهید.

راه اندازی سنسور دمای دیجیتال ‏‎ DS18B20‎‏ با برد رزبری پای | درس دوازدهم

برای بهتر شدن محتوای مطالب لطف کنید نظرات، پیشنهادات و انتقادات خود را با ما در میان بگذارید...

ترجمه شده توسط تیم الکترونیک سایت اتومی | منبع: adafriut

مطالب مرتبط

معرفی و راه‌اندازی استپر موتور با آردوینو آردوینو

معرفی و راه‌اندازی استپر موتور با آردوینو

در این آموزش به معرفی استپر موتور و بررسی نحوه راه اندازی آن با آردوینو خواهیم پرداخت.
2 سال قبل
آموزش موتورهای استپر با رسپبری‌پای (قسمت اول) رزبری پای

آموزش موتورهای استپر با رسپبری‌پای (قسمت اول)

در این آموزش نشان می‌دهیم که چگونه موتورهای استپر (پله‌ای) دوقطبی را روی یک رسپبری‌پای در پایتون با استفاده از یک درایور استپ موتور DRV-8825 کنترل کنی...
2 سال قبل
آموزش موتورهای استپر با رسپبری‌پای (قسمت دوم) رزبری پای

آموزش موتورهای استپر با رسپبری‌پای (قسمت دوم)

در این آموزش نشان می‌دهم که چگونه موتورهای استپر (پله‌ای) دوقطبی را روی یک رسپبری‌پای در پایتون با استفاده از یک درایور استپ موتور DRV-8825 کنترل کنیم...
2 سال قبل
آموزش جامع آردوینو (مبتدی و پیشرفته) آردوینو

آموزش جامع آردوینو (مبتدی و پیشرفته)

جمعیت افراد علاقه‌مند به ساختن (Makers) در سال‌های اخیر رشد قابل توجهی داشته است. این موضوع تا حد زیادی مربوط به توسعه نرم‌افزارها و سخت‌افزارهای منبع
2 سال قبل
آموزش موتورهای استپر با رسپبری‌پای (قسمت سوم) رزبری پای

آموزش موتورهای استپر با رسپبری‌پای (قسمت سوم)

در این آموزش نشان می‌دهم که چگونه موتورهای استپر (پله‌ای) دوقطبی را روی یک رسپبری‌پای در پایتون با استفاده از یک درایور استپ موتور DRV-8825 کنترل کنیم...
2 سال قبل
شروعی سریع با شیلد CNC V3 برای آردوینو آردوینو

شروعی سریع با شیلد CNC V3 برای آردوینو

در این آموزش به شما کمک خواهیم کرد تا شیلد CNC موجود در وب‌سایت ما را با استفاده از برد UNO شروع کنید و راه‌اندازی نمایید. در این پروژه از برد آردوینو...
2 سال قبل
کاربرد استپ موتور و مقایسه انواع آن در صنایع مختلف پایگاه دانش

کاربرد استپ موتور و مقایسه انواع آن در صنایع مختلف

با استپر موتور، انواع آن و کاربردهای متنوعش در صنایع مختلف آشنا شوید. این مقاله به بررسی کامل استپر موتور و نقش آن در فناوری‌های مدرن می‌پردازد.​
1 هفته قبل
آموزش جامع اینترنت اشیا با آردوینو آردوینو

آموزش جامع اینترنت اشیا با آردوینو

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

آموزش آردوینو: درس پانزدهم (موتور DC - بخش دوم)

سری آموزش آردوینو: درس پانزدهم در این درس شما یاد خواهید گرفت که چگونه جهت چرخش و سرعت یک موتور DC کوچک را از طریق برد آردوینو و تراشه درایور موتور L2...
2 سال قبل
کنترل موتور DC با برد رزبری پای | درس دهم رزبری پای

کنترل موتور DC با برد رزبری پای | درس دهم

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