Code:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
ControlPinX1 = [7,11,13,15]
ControlPinY1 = [16,18,22,29]
ControlPinX2 = [31,33,35,37]
ControlPinY2 = [32,36,38,40]
for pinX1 in ControlPinX1:
GPIO.setup(pinX1,GPIO.OUT)
GPIO.output(pinX1,0)
for pinY1 in ControlPinY1:
GPIO.setup(pinY1,GPIO.OUT)
GPIO.output(pinY1,0)
for pinX2 in ControlPinX2:
GPIO.setup(pinX2,GPIO.OUT)
GPIO.output(pinX2,0)
for pinY2 in ControlPinY2:
GPIO.setup(pinY2,GPIO.OUT)
GPIO.output(pinY2,0)
dir1 =[ [1,0,0,0],
[1,1,0,0],
[0,1,0,0],
[0,1,1,0],
[0,0,1,0],
[0,0,1,1],
[0,0,0,1],
[1,0,0,1] ]
dir2 =[ [0,0,0,1],
[0,0,1,1],
[0,0,1,0],
[0,1,1,0],
[0,1,0,0],
[1,1,0,0],
[1,0,0,0],
[1,0,0,1] ]
dir0 =[ [0,0,0,0],
[0,0,0,0],
[0,0,0,0],
[0,0,0,0],
[0,0,0,0],
[0,0,0,0],
[0,0,0,0],
[0,0,0,0] ]
for cycle1 in range(2560):
for halfstep in range(8):
for pinX1 in range(4):
GPIO.output(ControlPinX1[pinX1], dir1[halfstep][pinX1])
for pinY1 in range(4):
GPIO.output(ControlPinY1[pinY1], dir1[halfstep][pinY1])
for pinX2 in range(4):
GPIO.output(ControlPinX2[pinX2], dir1[halfstep][pinX2])
for pinY2 in range(4):
GPIO.output(ControlPinY2[pinY2], dir1[halfstep][pinY2])
#time.sleep(0.0000001)
for cycle2 in range(2560):
for halfstep in range(8):
for pinX1 in range(4):
GPIO.output(ControlPinX1[pinX1], dir2[halfstep][pinX1])
for pinY1 in range(4):
GPIO.output(ControlPinY1[pinY1], dir2[halfstep][pinY1])
for pinX2 in range(4):
GPIO.output(ControlPinX2[pinX2], dir2[halfstep][pinX2])
for pinY2 in range(4):
GPIO.output(ControlPinY2[pinY2], dir2[halfstep][pinY2])
#time.sleep(0.0000001)
GPIO.cleanup()