Arduino UNO传感器数据输出突然跳变

Arduino UNO传感器数据输出突然跳变,arduino,arduino-uno,android-sensors,proximitysensor,Arduino,Arduino Uno,Android Sensors,Proximitysensor,我正在使用Arduino UNO记录70元人民币的传感器数据。下面给出了我使用的代码。此代码用于记录10秒的值,然后停止 #include <EEPROM.h> const int chipSelect = 2; unsigned int y1 = 0; unsigned long y = 0; String data = ""; void setup() { Serial.begin(230400); delay(10); } void loop() { while

我正在使用Arduino UNO记录70元人民币的传感器数据。下面给出了我使用的代码。此代码用于记录10秒的值,然后停止

#include <EEPROM.h>
const int chipSelect = 2;
unsigned int y1 = 0;
unsigned long y = 0;

String data = "";
void setup()
{
  Serial.begin(230400);
  delay(10);
}

void loop()
{
  while (y < 10000000)
  {
    if (y1 > 372) //start recording only after 372 microseconds
    {
      y = micros();
      data += y;
      data += ",";
      data += analogRead(A0);
      Serial.println(data);
      data = " "; //clear data after printing the value
    }
    y1 = micros() - y;
  }
}
#包括
常数int chipSelect=2;
无符号整数y1=0;
无符号长y=0;
字符串数据=”;
无效设置()
{
序列号开始(230400);
延迟(10);
}
void循环()
{
而(y<10000000)
{
if(y1>372)//仅在372微秒后开始记录
{
y=微秒();
数据+=y;
数据+=“,”;
数据+=模拟读数(A0);
Serial.println(数据);
data=”“;//打印值后清除数据
}
y1=微米()-y;
}
}
这些值是从串行监视器复制的。一些记录显示一个或两个记录值突然跳变,正因为如此,数据图表看起来好像被“删除”了。有关数字如下:


这些突然值不是每次运行代码时都出现,而是每7-12次运行一次。这些突然跳跃的原因是什么?实验条件没有突变。如何防止Arduino记录和存储此类突然值

您的值不会突然跳转,而是下降到0。 通常,如果对地短路,只能测量0。所以,也许你有一根断了的电缆,由于振动。。。。我不知道你的测试设置

测试1)测量恒定电压

测试2)尝试另一个输入引脚


如果无法修复,请检查读取值。如果它们没有意义,请跳过它们或用外推法替换它们。

先生,我检查了发生此问题的其他记录,正如您所提到的,在大多数记录中,值确实下降到0(或超出到一个大值)。实验装置确实经历了振动(传感器放置在旋转盘的前面,随着旋转速度的增加,振动增加),这可能是原因,因为没有断开的电缆。