/ Raspberry_Pi_Stepper_Motors / Raspberry_Pi_Stepper_Motors.py
Raspberry_Pi_Stepper_Motors.py
1 # SPDX-FileCopyrightText: 2019 Mikey Sklar for Adafruit Industries 2 # 3 # SPDX-License-Identifier: MIT 4 5 import time 6 import board 7 import digitalio 8 9 enable_pin = digitalio.DigitalInOut(board.D18) 10 coil_A_1_pin = digitalio.DigitalInOut(board.D4) 11 coil_A_2_pin = digitalio.DigitalInOut(board.D17) 12 coil_B_1_pin = digitalio.DigitalInOut(board.D23) 13 coil_B_2_pin = digitalio.DigitalInOut(board.D24) 14 15 enable_pin.direction = digitalio.Direction.OUTPUT 16 coil_A_1_pin.direction = digitalio.Direction.OUTPUT 17 coil_A_2_pin.direction = digitalio.Direction.OUTPUT 18 coil_B_1_pin.direction = digitalio.Direction.OUTPUT 19 coil_B_2_pin.direction = digitalio.Direction.OUTPUT 20 21 enable_pin.value = True 22 23 def forward(delay, steps): 24 i = 0 25 while i in range(0, steps): 26 setStep(1, 0, 1, 0) 27 time.sleep(delay) 28 setStep(0, 1, 1, 0) 29 time.sleep(delay) 30 setStep(0, 1, 0, 1) 31 time.sleep(delay) 32 setStep(1, 0, 0, 1) 33 time.sleep(delay) 34 i += 1 35 36 def backwards(delay, steps): 37 i = 0 38 while i in range(0, steps): 39 setStep(1, 0, 0, 1) 40 time.sleep(delay) 41 setStep(0, 1, 0, 1) 42 time.sleep(delay) 43 setStep(0, 1, 1, 0) 44 time.sleep(delay) 45 setStep(1, 0, 1, 0) 46 time.sleep(delay) 47 i += 1 48 49 def setStep(w1, w2, w3, w4): 50 coil_A_1_pin.value = w1 51 coil_A_2_pin.value = w2 52 coil_B_1_pin.value = w3 53 coil_B_2_pin.value = w4 54 55 while True: 56 user_delay = input("Delay between steps (milliseconds)?") 57 user_steps = input("How many steps forward? ") 58 forward(int(user_delay) / 1000.0, int(user_steps)) 59 user_steps = input("How many steps backwards? ") 60 backwards(int(user_delay) / 1000.0, int(user_steps))