我正在学习pyFirmata协议,并举了一些例子。作为练习,我正在做PIR传感器系统。当我运行代码时,pyFirmata总是输出'None‘值。但是,如果我在PyCharm中进行调试,一切都会正常工作。在Arduino上,StandardFirmata的草图被上传。有人知道这种行为的原因是什么吗?
守则:
import pyfirmata
from time import sleep
def blinkled(pin, message):
print(message)
board.digital[pin].write(1)
sleep(1)
board.digital[pin].write(0)
sleep(1)
port = '/dev/cu.usbmodem1411'
board = pyfirmata.Arduino(port)
it = pyfirmata.util.Iterator(board)
it.start()
pirPin = board.get_pin('d:7:i')
redPin = 12
greenPin = 13
while True:
value = pirPin.read()
while value is None:
print("None")
sleep(1)
pass
if value is True:
blinkled(redPin, "Motion Detected.")
else:
blinkled(greenPin, "No Motion Detected.")
board.exit()发布于 2018-06-15 20:20:19
好的,发现"while“语句应该替换为"if”。那么一切都正常了。不要理解这种行为。
如果有人能解释的话,我会很感激的。
守则解决了这个问题:
if value is None:
print("None")https://stackoverflow.com/questions/50881918
复制相似问题