如何使用Python从多个Arduino ADC读取串行数据?
我是Python的乞丐。我正在尝试用Python将串行端口数据从Arduino写入CSV文件。 我想以以下格式保存数据:时间、传感器1、传感器2作为数字,以便在Excel中以单独的列打开它们。 我的代码允许按如下方式获取CSV: 12:25:57,“294293” 我不能删除这些引文 串行输出的我的Arduino代码:如何使用Python从多个Arduino ADC读取串行数据?,python,string,arduino,serial-port,export-to-csv,Python,String,Arduino,Serial Port,Export To Csv,我是Python的乞丐。我正在尝试用Python将串行端口数据从Arduino写入CSV文件。 我想以以下格式保存数据:时间、传感器1、传感器2作为数字,以便在Excel中以单独的列打开它们。 我的代码允许按如下方式获取CSV: 12:25:57,“294293” 我不能删除这些引文 串行输出的我的Arduino代码: Serial.print(sensorValue_1); Serial.print(","); Serial.println(sensorValue_2);
Serial.print(sensorValue_1);
Serial.print(",");
Serial.println(sensorValue_2);
delay(1000);
我的Python代码:
import csv
import serial
import time
ser=serial.Serial("COM15", 9600)
ser.flushInput()
while True:
ser_bytes = ser.readline().decode().strip()
t = time.localtime()
decoded_time = time.strftime('%H:%M:%S', t)
print(decoded_time, ser_bytes)
with open("test_file.csv", "a", newline='') as f:
writer = csv.writer(f, delimiter = ",")
writer.writerow([decoded_time, ser_bytes])
f.close()
非常感谢您的帮助。我编辑了您的代码并添加了一些注释。 如果这是你需要的,试试这个
import csv
import serial
import time
ser=serial.Serial("COM15", 9600)
ser.flushInput()
while True:
#use split(',') to seperate ser_byte string to list
ser_bytes = ser.readline().decode().strip().split(',')
# using list comprehension to perform conversion to int
new_ser_bytes = [int(i) for i in ser_bytes]
#new_ser_bytes[0] is sensorValue_1
#new_ser_bytes[1] is sensorValue_2
t = time.localtime()
decoded_time = time.strftime('%H:%M:%S', t)
#print(decoded_time, ser_bytes)
with open("test_file.csv", "a", newline='') as f:
writer = csv.writer(f, delimiter = ",")
#writerow with seperate sensorValue
writer.writerow([decoded_time, new_ser_bytes[0], new_ser_bytes[1]])
f.close()
你能展示你想要的输出吗?嗨,作为一个输出,我想得到这样的东西(x,y1,y2):12:25:563633512:25:5729429312:25:58279276我想用它在Excel或Matplotlib中制作图表。米龙索在你的问题中提到了这一点,而不是埋没在评论中