我正在使用Arduino上的pyFirmata为我的植物制作一个自动浇水系统的代码,但当我试图运行它时,总是会出现这个错误
Traceback (most recent call last):
File "C:/Users/wenbi/PycharmProjects/Helen/Automated watefring.py", line 43, in <module>
if 0.5<=val<=0.7:
TypeError: '<=' not supported between instances of 'float' and 'NoneType'
当我从我的Arduino上连接到A0的土壤湿度传感器的读数中得到两个输入值“val”和从连接到D2的水传感器得到两个要打印的“waterlvl”时,结果只会给出一个“无” 而不是一个值
我不知道我的代码出了什么问题,因为Pycharm没有检测到任何问题
以下是我的代码供参考:
import time
from pyfirmata import Arduino, util
board = Arduino('COM4')
iterator = util.Iterator(board)
iterator.start()
LED5 = board.get_pin('d:5:o')
LED6 = board.get_pin('d:6:o')
LED7 = board.get_pin('d:7:o')
buzz_pin = board.get_pin('d:10:o')
waterdetect = board.get_pin('d:2:i')
soildetect = board.get_pin('a:0:i')
waterpump = board.get_pin('d:8:s')
def blinkLED6():
for s in range(1):
LED6.write(1)
time.sleep(0.25)
LED6.write(0)
time.sleep(0.25)
def buzzalarm():
for f in range(1):
buzz_pin.write(1)
time.sleep(0.25)
buzz_pin.write(0)
time.sleep(0.25)
while True:
val = soildetect.read()
waterlvl = waterdetect.read()
if 0.5 <= val <= 0.7:
LED5.write(1)
if waterdetect == "True":
buzzalarm()
elif waterdetect == "False":
waterpump.write(1)
LED5.write(0)
blinkLED6()
if val <= 0.25:
waterpump.write(0)
LED7.write(1)
if val < 0.5:
continue
那么我能问一下如何解决这个问题吗
目前没有回答
相关问题 更多 >
编程相关推荐