added basic functions for stepping, changing direction and enabling

disabling the driver
This commit is contained in:
koksnuss 2019-10-11 23:01:01 +01:00
parent a8857334a3
commit f4e0cda1e2

67
stepper.py Normal file
View File

@ -0,0 +1,67 @@
import RPi.GPIO as GPIO
from time import sleep
import logging
from logging import debug
logging.basicConfig(level=logging.DEBUG)
GPIO.setmode(GPIO.BCM)
PINS = {
'direction': [17, 0], # 1 = ckw, 0 = ccw
'step': [27, 0],
'state': [22, 1] # 1 = disabled, 0 = enabled
}
# speed limit 0.0005 s = 500us (could be 1us) waiting between high and low
# je hoeher die motor spannugn, desto lauter
# initialize
for name, pin in PINS.items():
GPIO.setup(pin[0], GPIO.OUT, initial=pin[1])
def disable():
debug('Disabled')
GPIO.output(PINS['state'][0], 1)
def enable():
debug('Enabled')
GPIO.output(PINS['state'][0], 0)
def change_direction():
debug('changing direction')
GPIO.output(PINS['direction'][0], not GPIO.input(PINS['direction'][0]))
def change_state():
debug('changing state')
GPIO.output(PINS['state'][0], not GPIO.input(PINS['state'][0]))
def step(steps=1, direction=None):
if direction:
GPIO.output(PINS['direction'][0], direction)
for step in range(steps):
GPIO.output(PINS['step'][0], 1)
sleep(0.005)
GPIO.output(PINS['step'][0], 0)
sleep(0.005)
if __name__ == '__main__':
try:
while True:
# disable()
# debug('stepping ccw')
# step(200, 0)
#
# enable()
# debug('stepping cw')
# step(200, 1)
step(100)
change_direction()
change_state()
except KeyboardInterrupt:
debug('cleaning up')
disable()
GPIO.cleanup()