避障传感器无法正常工作

时间:2018-07-12 17:44:21

标签: raspberry-pi3 sensor gpio

我正在开发带有树莓派的机器人。为了检测障碍物,我正在使用FC-51红外传感器。这是我当前的代码。

import RPi.GPIO as GPIO
import time

GPIO.setmode(GPIO.BOARD)
ObstaclePin = 18
tServoPin = 15
GPIO.setup(tServoPin, GPIO.OUT)

GPIO.setup(ObstaclePin, GPIO.IN, pull_up_down=GPIO.PUD_UP)
GPIO.setup(tServoPin, GPIO.OUT)
tPwm = GPIO.PWM(tServoPin, 50)
tPwm.start(0)

def loop():
    while True:
        if (0 == GPIO.input(ObstaclePin)):
            print ("Barrier is detected !")
            #turn_right(tPwm)

def turn_right(tPwm):
    for i in range(90, 180):
        positiont = 1./18.*(i)+2
        tPwm.ChangeDutyCycle(positiont)
        time.sleep(0.02)
    for i in range(180, 90, -1):
        positiont = 1./18.*(i)+2
        tPwm.ChangeDutyCycle(positiont)
        time.sleep(0.05)
def destroy():
    GPIO.cleanup()

if __name__ == '__main__':     # Program start from here
    try:
        loop()
    except KeyboardInterrupt:  
        destroy()

上面的代码可以正常工作。但是,当我取消对turn_right功能中的loop()行的注释时,即使首次检测后没有障碍物,红外传感器也会持续点亮灯泡。 我不明白这背后的逻辑。 我在这里做错什么了吗?

任何帮助都会很棒 提前非常感谢您!

0 个答案:

没有答案