如何在列表(python)中存储连续来自arduino的值?
在我最近的项目中,我需要将数据从Arduino传输到python。而且已经完成了 这里是我的Arduino代码:如何在列表(python)中存储连续来自arduino的值?,python,python-2.7,arduino,arduino-uno,Python,Python 2.7,Arduino,Arduino Uno,在我最近的项目中,我需要将数据从Arduino传输到python。而且已经完成了 这里是我的Arduino代码: float TPS_MIN = 0.00; float TPS_MAX = 5.00; float MAP_MIN = 0.85; float MAP_MAX = 1.90; float LOAD_MIN_TPS = 2.00; float LOAD_MAX_TPS = 10.00; float LOAD_MIN_MAP = 9.69; float LOAD_MAX_MAP =
float TPS_MIN = 0.00;
float TPS_MAX = 5.00;
float MAP_MIN = 0.85;
float MAP_MAX = 1.90;
float LOAD_MIN_TPS = 2.00;
float LOAD_MAX_TPS = 10.00;
float LOAD_MIN_MAP = 9.69;
float LOAD_MAX_MAP = 82.18;
float m1, m2;
float y1, y2;
float TPS[] = {0, 0.4, 0.8, 1.2, 1.6, 2, 2.4, 2.8, 3.2, 3.6, 4, 4.4, 4.8, 5};
float MAP[] = {0.85, 0.95, 1.05, 1.15, 1.25, 1.35, 1.45, 1.55, 1.65, 1.75, 1.85, 1.9};
int i;
int j;
void setup()
{
Serial.begin(9600);
}
void loop()
{
m1 = (LOAD_MAX_TPS - LOAD_MIN_TPS) / (TPS_MAX - TPS_MIN);
for(i = 0; i < 14; i++)
{
y1 = m1 * (TPS[i] - TPS_MIN) + LOAD_MIN_TPS;
Serial.println(y1);
}
m2 = (LOAD_MAX_MAP - LOAD_MIN_MAP) / (MAP_MAX - MAP_MIN);
for(j = 0; j < 12; j++)
{
y2 = m2 * (MAP[j] - MAP_MIN) + LOAD_MIN_MAP;
Serial.println(y2);
}
delay(10000000);
}
和输出(python shell):
现在,我想把这个值存储在列表中。我不知道是怎么做到的。给出一些建议。您可能希望这样,但由于您正在运行一个无限循环,您将有一个附加数据的连续更改列表
import serial
arduino = serial.Serial('COM12', 9600, timeout = .1)
arduino_data = [] # declare a list
while True:
data = arduino.readline()
if data:
arduino_data.append(data) # Append a data to your declared list
print arduino_data
你应该提供一个你预期行为的例子,因为我们无法理解你的想法。命题和>可以说是模棱两可的。可以从这个
TPS=[]加载=[]开始。。。TPS.append(data.split()[2])LOAD.append(data.split()[5])
@PatrickTrentin好的,让我用另一个例子解释一下。您更改了几次输出,因为现在您只有一个值流。。你想让它们都在同一个数组中吗?@PatrickTrentin我改变了整个示例,这有点容易理解。是的,我希望它们都在python语言的相同数组或列表中。因此,在这之后,我很容易将数据从该数组中分离出来。我希望你能理解。好吧,现在的答案应该能让你明白这一点。
2.00
2.64
3.28
3.92
4.56
5.20
5.84
6.48
7.12
7.76
8.40
9.04
9.68
10.00
9.69
16.59
23.50
30.40
37.31
44.21
51.11
58.02
64.92
71.82
78.73
82.18
import serial
arduino = serial.Serial('COM12', 9600, timeout = .1)
arduino_data = [] # declare a list
while True:
data = arduino.readline()
if data:
arduino_data.append(data) # Append a data to your declared list
print arduino_data