我正在使用Arduino从麦克风中读取模拟值以对子弹的位置进行三角测量。三角测量实际上发生在Python中,它将字符串解析为数组然后处理它,我有这个功能。但是,为了使我的功能能够以足够的精度进行三角测量,我需要显着降低引脚的模拟采样之间的时间。理想情况下,我想要一个每微秒4个引脚的样本,虽然我确实有一些摆动空间。我正在使用Arduino Uno。这是我到目前为止的代码。
/*
This code reads in values on analog pins A0-A3 and sends the values
over serial. The outputs can be checked using the serial monitor.
created 03/22/18
*/
const int sensor1Pin = 0;
const int sensor2Pin = 1;
const int sensor3Pin = 2;
const int sensor4Pin = 3;
float sensorVal[] = {0,0,0,0};
unsigned long time;
void setup()
{
Serial.begin(2000000); //setup serial connection
}
void loop()
{
time = micros();
sensorVal[0] = analogRead(sensor1Pin);
sensorVal[1] = analogRead(sensor2Pin);
sensorVal[2] = analogRead(sensor3Pin);
sensorVal[3] = analogRead(sensor4Pin);
Serial.print(sensorVal[0]); //read xpin and send value over serial
Serial.print("\t"); //send a "tab" over serial
Serial.print(sensorVal[1]);
Serial.print("\t");
Serial.print(sensorVal[2]);
Serial.print("\t");
Serial.print(sensorVal[3]);
Serial.print("\t");
Serial.print(time);
Serial.println(); //ends the line of serial communication
delayMicroseconds(1);
}
我添加了计时器,以便我可以了解每个样本之间有多长时间。使用定时器,我在样本之间得到1000-2000μs。我认识到我的采样率会随着计时器的移除而下降,但我很好奇我是否可以采取任何措施来显着减少样本之间的时间。