import RPi.GPIO as GPIO import time mota = 22 motb = 23 sig = 27 ele_pow = 20 stp = 0 ids = 0 GPIO.setwarnings(False) GPIO.setmode(GPIO.BCM) GPIO.setup(mota,GPIO.OUT) GPIO.setup(motb,GPIO.OUT) GPIO.setup(sig,GPIO.IN, pull_up_down=GPIO.PUD_UP) GPIO.setup(ele_pow,GPIO.OUT) GPIO.output(ele_pow,GPIO.HIGH) p2 = GPIO.PWM(motb, 50) # GPIO PWM with 50Hz num_steps = 148 print "CTRL+C = STOP program" p2.start(0) try: while True: n = 20 # speed p2.ChangeDutyCycle(n) while stp < num_steps: if GPIO.input(sig) == 1 and ids == 0: stp = stp + 1 ids = 1 print(stp) if GPIO.input(sig) == 0 and ids == 1: stp = stp + 1 ids = 0 print(stp) p2.ChangeDutyCycle(0) time.sleep(2) stp = 0 except KeyboardInterrupt: GPIO.cleanup() # must be executed before program stop