added basic functions for stepping, changing direction and enabling
disabling the driver
This commit is contained in:
parent
a8857334a3
commit
f4e0cda1e2
67
stepper.py
Normal file
67
stepper.py
Normal 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()
|
Loading…
x
Reference in New Issue
Block a user