راسبيري باي -الدرس العاشر- التحكم بالمحرك الخطوي “Stepper”

مبتدئ

image_pdf

البرمجة

افتح نافذة SSH الخاصة بالراسبيري باي ثم اكتب الأمر التالي لفتح ملف نصي جديد باسم stepper:

$nano stepper.py

انسخ الكود البرمجي التالي ثم قم بالضغط على CTRL+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 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)

try:
 
    while True:
 
        #forward
    for i in range(512):
            setStep(1, 0, 1, 0)
            time.sleep(0.05)
            setStep(0, 1, 1, 0)
            time.sleep(0.05)
            setStep(0, 1, 0, 1)
            time.sleep(0.05)
            setStep(1, 0, 0, 1)
            time.sleep(0.05)
 
        time.sleep(1)
        #backwards
    for i in range(512):
            setStep(1, 0, 0, 1)
            time.sleep(0.05)
            setStep(0, 1, 0, 1)
            time.sleep(0.05)
            setStep(0, 1, 1, 0)
            time.sleep(0.05)
            setStep(1, 0, 1, 0)
            time.sleep(0.05)
        
        time.sleep(1)
 
except KeyboardInterrupt:
 
        GPIO.cleanup()

أخيرًا لتشغيل البرنامج قم بكتابة الأمر التالي:

sudo python stepper.py

شرح البرمجة

في البداية نقوم باستدعاء المكتبات المطلوبة و هي مكتبة (GPIO) و مكتبة الوقت

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 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)

نعطي أمر ليتحرك في إتجاهان مع عقارب الساعة و عكس عقارب الساعة

 

 

X
Product added to the cart