我是编码新手,这可能有一个简单的解决方案,但基本上我正在尝试记录来自连接到Arduino的传感器的传入数据。出于我的目的,我不仅要记录传入的数据,还要记录试验的最高价值。
我拥有的代码导致仅Max_Force = 0
.我的最终目标是将我正在记录的所有值也保存为最大值。最后将所有这些值链接到GUI,以便于操作员使用。
import serial
import csv
import time
import numpy as np
import warnings
import serial
import serial.tools.list_ports
arduino_ports = [
p.device
for p in serial.tools.list_ports.comports()
if 'Arduino' in p.description
]
if not arduino_ports:
raise IOError("No Arduino found")
if len(arduino_ports) > 1:
warnings.warn('Multiple Arduinos found - using the first')
Arduino = serial.Serial(arduino_ports[0])
Arduino.flush()
Arduino.reset_input_buffer()
start_time=time.time()
Distance = 0.5 # This is how long the lever arm is in feet
with open('DynoData.csv', 'w') as outfile:
outfileWrite = csv.writer(outfile)
while True:
while (Arduino.inWaiting()==0):
pass
try:
data = Arduino.readline()
dataarray = data.decode().rstrip().split(',')
Arduino.reset_input_buffer()
Force = round(float(dataarray[0]),3)
Max_Force = 0
if Max_Force < Force:
Max_Force == Force
else:
Max_Force == Max_Force
RPM = round(float (dataarray[1]),3)
Torque = round(Force * Distance,3)
HorsePower = round(Torque * RPM / 5252,3)
Run_Time = round(time.time()-start_time,3)
print (Force ,",",Max_Force )
except (KeyboardInterrupt, SystemExit,IndexError,ValueError):
pass
outfileWrite.writerow([Force,",",Max_Force,"lbs", RPM, "RPMs", Torque,"ft-lbs" ,HorsePower ,"HP" ,Run_Time ,"sec" ])
由于您正在分配一个变量,因此您只使用 1 个等号。所以Max_Force == Force
需要Max_Force = Force
和这些行:
else:
Max_Force == Max_Force #there should only be 1 equal sign btw
是不必要的,因为没有理由将变量设置为自身。
您还需要将Max_Force = 0
移动到while True
循环上方,因为您不断将Max_Value
设置回 0。