آخرین نسخهی به روز شدهی نرمافزار کیتهای آموزشی Raspbian JESSIE را توسط دستور زیر نصب کنید.
sudo apt-get update && sudo apt-get upgrade
در این برنامه با استفاده از کتابخانه RPi.GPIO استپر یک مرتبه ساعتگرد و مرتبه دیگر در پادساعتگرد میچرخد. پینهای DIR و STEP به عنوان خروجی تنظیم میشوند. پین DIR به منظور چرخش در جهت ساعتگرد High و به منظور چرخش در جهت پادساعتگرد Low میشود. این روند 48 مرتبه تکرار میشود. در هر سیکل به مدت 0.028ثانیه پین step خاموش و سپس روشن میشود.
from time import sleep
import RPi.GPIO as GPIO
DIR = 20 # Direction GPIO Pin
STEP = 21 # Step GPIO Pin
CW = 1 # Clockwise Rotation
CCW = 0 # Counterclockwise Rotation
SPR = 48 # Steps per Revolution (360 / 7.5)
GPIO.setmode(GPIO.BCM)
GPIO.setup(DIR, GPIO.OUT)
GPIO.setup(STEP, GPIO.OUT)
GPIO.output(DIR, CW)
step_count = SPR
delay = .0208
for x in range(step_count):
GPIO.output(STEP, GPIO.HIGH)
sleep(delay)
GPIO.output(STEP, GPIO.LOW)
sleep(delay)
sleep(.5)
GPIO.output(DIR, CCW)
for x in range(step_count):
GPIO.output(STEP, GPIO.HIGH)
sleep(delay)
GPIO.output(STEP, GPIO.LOW)
sleep(delay)
GPIO.cleanup()
حرکت موتور در حالت گام کامل ممکن است موجب لرزش آن شده و حرکت روان و نرمی خصوصا در سرعتهای پایین نداشته باشد. توصیه میشود به منظور اجتناب از چنین مشکلی موتور در حالت میکرواستپ راهاندازی شود. برنامه زیر به این منظور به برنامه بالا اضافه اضافه شده و استپر را در حالت 32/1 به حرکت درمیآورد.
MODE = (14, 15, 18) # Microstep Resolution GPIO Pins
GPIO.setup(MODE, GPIO.OUT)
RESOLUTION = {'Full': (0, 0, 0),
'Half': (1, 0, 0),
'1/4': (0, 1, 0),
'1/8': (1, 1, 0),
'1/16': (0, 0, 1),
'1/32': (1, 0, 1)}
GPIO.output(MODE, RESOLUTION['1/32'])
step_count = SPR * 32
delay = .0208 / 32
توجه داشته باشید که در این حالت تعداد گام ها 32 برابر میشود؛ زیرا در حال حاضر هر سیکل چرخش موتور 32 برابر بیشتر از حالت گام کامل طول کشیده که منجر به حرکت بیشتر میشود. تأخیر برای جبران میزان گامهای اضافی بر 32 تقسیم شده است. لازم به ذکر است که حرکت در حالت میکرواستپ ضعفهایی از جمله نرسیدن به گشتاور حداکثر را منجر میشود.