البرمجة
افتح نافذة 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)
نعطي أمر ليتحرك في إتجاهان مع عقارب الساعة و عكس عقارب الساعة