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