diff options
| -rw-r--r-- | python/examples/pnStepper.py | 91 | 
1 files changed, 91 insertions, 0 deletions
| diff --git a/python/examples/pnStepper.py b/python/examples/pnStepper.py new file mode 100644 index 0000000..2f8d747 --- /dev/null +++ b/python/examples/pnStepper.py @@ -0,0 +1,91 @@ +#----------------------------------- +# Name: Stepper Motor +# +# Author: matt.hawkins +# +# Created: 11/07/2012 +# Copyright: (c) matt.hawkins 2012 +#----------------------------------- +#!/usr/bin/env python +  +# Import required libraries +import time +import RPi.GPIO as GPIO +  +# Use BCM GPIO references +# instead of physical pin numbers +GPIO.setmode(GPIO.BOARD) +  +# Define GPIO signals to use +# Pins 19,22,24,26 +# GPIO10,GPIO25,GPIO8,GPIO7 +StepPins = [26,24,22,19] +  +# Set all pins as output +for pin in StepPins: +  print "Setup pins" +  GPIO.setup(pin,GPIO.OUT) +  GPIO.output(pin, False) +  +# Define some settings +StepCounter = 0 +WaitTime = 0.002 +  +# Define simple sequence +StepCount1 = 4 +Seq1 = [] +Seq1 = range(0, StepCount1) + +Seq1[0] = [1,0,0,0] +Seq1[1] = [0,1,0,0] +Seq1[2] = [0,0,1,0] +Seq1[3] = [0,0,0,1] + +Seq1[3] = [1,0,0,0] +Seq1[2] = [0,1,0,0] +Seq1[1] = [0,0,1,0] +Seq1[0] = [0,0,0,1] +  +# Define advanced sequence +# as shown in manufacturers datasheet +StepCount2 = 8 +Seq2 = [] +Seq2 = range(0, StepCount2) +Seq2[0] = [1,0,0,0] +Seq2[1] = [1,1,0,0] +Seq2[2] = [0,1,0,0] +Seq2[3] = [0,1,1,0] +Seq2[4] = [0,0,1,0] +Seq2[5] = [0,0,1,1] +Seq2[6] = [0,0,0,1] +Seq2[7] = [1,0,0,1] +  +# Choose a sequence to use +Seq = Seq1 +StepCount = StepCount1 +  +# Start main loop +while 1==1: +  +  for pin in range(0, 4): +    xpin = StepPins[pin] + +    pinVal = Seq[StepCounter][pin] + +    if pinVal!=0: +      print " Step %i Enable %i" %(StepCounter,xpin) +      GPIO.output(xpin, True) +    else: +      GPIO.output(xpin, False) +  +  StepCounter += 1 +  +  # If we reach the end of the sequence +  # start again +  if (StepCounter==StepCount): +    StepCounter = 0 +  if (StepCounter<0): +    StepCounter = StepCount +  +  # Wait before moving on +  time.sleep(WaitTime) | 
