mirror of
https://github.com/danbulant/ambientlightdemo
synced 2026-05-19 04:18:32 +00:00
68 lines
No EOL
1.6 KiB
Python
68 lines
No EOL
1.6 KiB
Python
#!/usr/bin/python3
|
|
import RPi.GPIO as GPIO
|
|
import time
|
|
|
|
out1 = 17
|
|
out2 = 27
|
|
out3 = 22
|
|
out4 = 23
|
|
|
|
# careful lowering this, at some point you run into the mechanical limitation of how quick your motor can move
|
|
step_sleep = 0.002
|
|
|
|
step_count = 200
|
|
|
|
# setting up
|
|
GPIO.setmode( GPIO.BCM )
|
|
GPIO.setup( out1, GPIO.OUT )
|
|
GPIO.setup( out2, GPIO.OUT )
|
|
GPIO.setup( out3, GPIO.OUT )
|
|
GPIO.setup( out4, GPIO.OUT )
|
|
|
|
# initializing
|
|
GPIO.output( out1, GPIO.LOW )
|
|
GPIO.output( out2, GPIO.LOW )
|
|
GPIO.output( out3, GPIO.LOW )
|
|
GPIO.output( out4, GPIO.LOW )
|
|
|
|
|
|
def cleanup():
|
|
GPIO.output( out1, GPIO.LOW )
|
|
GPIO.output( out2, GPIO.LOW )
|
|
GPIO.output( out3, GPIO.LOW )
|
|
GPIO.output( out4, GPIO.LOW )
|
|
GPIO.cleanup()
|
|
|
|
|
|
# the meat
|
|
try:
|
|
for i in range(step_count):
|
|
if i%4==0:
|
|
GPIO.output( out4, GPIO.HIGH )
|
|
GPIO.output( out3, GPIO.LOW )
|
|
GPIO.output( out2, GPIO.LOW )
|
|
GPIO.output( out1, GPIO.LOW )
|
|
elif i%4==1:
|
|
GPIO.output( out4, GPIO.LOW )
|
|
GPIO.output( out3, GPIO.LOW )
|
|
GPIO.output( out2, GPIO.HIGH )
|
|
GPIO.output( out1, GPIO.LOW )
|
|
elif i%4==2:
|
|
GPIO.output( out4, GPIO.LOW )
|
|
GPIO.output( out3, GPIO.HIGH )
|
|
GPIO.output( out2, GPIO.LOW )
|
|
GPIO.output( out1, GPIO.LOW )
|
|
elif i%4==3:
|
|
GPIO.output( out4, GPIO.LOW )
|
|
GPIO.output( out3, GPIO.LOW )
|
|
GPIO.output( out2, GPIO.LOW )
|
|
GPIO.output( out1, GPIO.HIGH )
|
|
|
|
time.sleep( step_sleep )
|
|
|
|
except KeyboardInterrupt:
|
|
cleanup()
|
|
exit( 1 )
|
|
|
|
cleanup()
|
|
exit( 0 ) |