2017-10-21 12 views
-1

나는 코딩이 더 쉽고 간단한 해결책이있을 수 있지만 기본적으로 Arduino에 연결된 센서로부터 들어오는 데이터를 기록하려고합니다. 제 목적을 위해 들어오는 데이터뿐만 아니라 재판이 가졌던 최고의 가치를 기록하고 싶습니다.새로운 데이터가 파이썬 3.5와 함께 들어올 때마다 변경되는 최대 값

내가 가지고있는 코드는 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" ]) 

답변

0

변수를 할당하기 때문에 1 등호 만 사용합니다. 자체에 변수를 설정 할 이유가 없기 때문에

else: 
    Max_Force == Max_Force #there should only be 1 equal sign btw 

이 필요하지 않습니다 : 그래서 Max_Force == Force 요구 Max_Force = Force 이러한 줄 수 있습니다. 당신이 항상 0

+0

다시 Max_Value 설정되어 있기 때문에

은 또한 나뿐만 아니라이 시도 한 while True 루프 위 Max_Force = 0를 이동해야 그 결과가 바로 Max_Force 값을 수에 관계없이 항상의 힘 값과 동일 포스의 이전 값 다른 아이디어가 있습니까? –

+0

내가 설정 한 또 다른 변수를 가질 필요가있을 수 있습니까? Max_Force Equal to는 각 반복마다 동일한 수가 아닌 것을 얻으려고합니까? –

+1

@MatthewEspindolaMunn : 반복 할 때마다 Max_Force = 0을 지정합니다. 그러지 마. –