上面的代码当距离小于50时电机不会停转,请修改一下
时间: 2024-03-25 13:35:28 浏览: 18
好的,可以使用以下代码实现当距离小于50时电机停转:
```python
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BOARD)
TRIG = 16
ECHO = 18
MOTOR_PIN = 22
GPIO.setup(TRIG,GPIO.OUT)
GPIO.setup(ECHO,GPIO.IN)
GPIO.setup(MOTOR_PIN,GPIO.OUT)
def distance():
GPIO.output(TRIG, False)
time.sleep(0.5)
GPIO.output(TRIG, True)
time.sleep(0.00001)
GPIO.output(TRIG, False)
while GPIO.input(ECHO) == 0:
pulse_start = time.time()
while GPIO.input(ECHO) == 1:
pulse_end = time.time()
pulse_duration = pulse_end - pulse_start
distance = pulse_duration * 17150
distance = round(distance, 2)
return distance
try:
while True:
dist = distance()
print("Distance:",dist,"cm")
if dist < 50:
GPIO.output(MOTOR_PIN, GPIO.LOW)
else:
GPIO.output(MOTOR_PIN, GPIO.HIGH)
time.sleep(0.1)
except KeyboardInterrupt:
GPIO.cleanup()
```
在代码中,我们添加了一个判断语句,如果距离小于50则将电机输出设置为低电平,停止转动。否则将电机输出设置为高电平,继续转动。