我有一个带DRV8825驱动器芯片的步进电机连接到我的Raspberry Pi。我的目标是当传感器检测到金属(如止动块)时,电动机停止旋转。
使用代码,我使电机转动了4圈,然后停止。 当传感器检测到金属并且我开始“转向”时,电机不旋转。 因此Sensor可以正常工作。
我想要的是,电动机每旋转一步,回路就会检查一次传感器。
希望任何人都可以帮助我:)
GPIO.input(26) #Gets a signal from the sensor when metal is detected
def turnforward():
while True:
if (GPIO.input(26) == False): #False= Sensor sends LOW
for i in range(800): # 800 steps = 4 rounds
GPIO.output(pinStep, True)
time.sleep(0.0018)
GPIO.output(pinStep, False)
break # without the break the for loop in infinite
else:
break
答案 0 :(得分:2)
尝试将您的传感器检查放入循环中
def turnforward():
for i in range(800): # 800 steps = 4 rounds
if (GPIO.input(26) == True): #False= Sensor sends LOW::My failure!
break
GPIO.output(pinStep, True)
time.sleep(0.0018)
GPIO.output(pinStep, False)