当红外传感器检测到某些东西时,我的伺服电机不动

2024-04-20 13:32:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图让伺服电机旋转180度,然后当红外传感器感应到什么东西时,再返回到0度 Circuit

import time
from pyfirmata import Arduino, util

board = Arduino('COM5')

iterator = util.Iterator(board)
iterator.start()

motor = board.get_pin('d:6:s')

sensorPinNo = 2

sensorPin = board.get_pin('d:' + str(sensorPinNo) + ':i')

print("Nothing is being sensed ")

rlt = sensorPin.read()
while True:
    if rlt:
        print("Sensor has detected something")

        def setServoAngle(angle):
            print("Wiping In Progress")
            for i in range(0, 180):
                setServoAngle(i)
                motor.write(angle)
            for i in range(180, 1, -1):
                setServoAngle(i)
                motor.write(angle)

        print("Program Exit")
        board.exit()

我有: 阿杜伊诺·乌诺, 伺服电机, 红外传感器, 蜂鸣器 带路, 电阻, 试验板, 跨接导线


Tags: importboardgetutilpin传感器arduinoprint
1条回答
网友
1楼 · 发布于 2024-04-20 13:32:37

您这里有一些问题,我无法解决,但:

import time
from pyfirmata import Arduino, util

board = Arduino('COM5')

iterator = util.Iterator(board)
iterator.start()

motor = board.get_pin('d:6:s')

sensorPinNo = 2

sensorPin = board.get_pin('d:' + str(sensorPinNo) + ':i')

print("Nothing is being sensed ")

while True:
    rlt = sensorPin.read()
    if rlt:
        print("Sensor has detected something")

        print("Wiping In Progress")
        for i in range(0, 180):
            motor.write(i)
        for i in range(180, 1, -1):
            motor.write(i)

print("Program Exit")
board.exit()

请注意,您的函数没有被调用,最终看起来是多余的

还请注意,此程序不会退出。我不知道退出需要什么条件

相关问题 更多 >