【问题标题】:Abrupt jumps in the Arduino UNO sensor data outputArduino UNO 传感器数据输出中的突然跳跃
【发布时间】:2019-10-01 07:38:55
【问题描述】:

我正在使用 Arduino UNO 来记录 CNY70 的传感器数据。我使用的代码如下所示。编写此代码以记录 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;
  }
}

这些值是从串行监视器复制的。一些记录显示一个或两个记录值突然跳跃,因此,数据图表看起来像是被“击中”了。这些数字是: Jump in value of the sensor data Zoomed image of the sensor data

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

【问题讨论】:

    标签: arduino arduino-uno android-sensors proximitysensor


    【解决方案1】:

    您的值不会突然跳跃,它们会下降到 0。 通常,如果您对地短路,您只能测量 0。所以也许你的电缆坏了并且由于振动......我不知道你的测试设置。

    测试 1) 测量恒定电压

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

    如果您无法修复它,只需检查读取值。如果它们没有意义,请跳过它们或通过推断替换它们。

    【讨论】:

    • 先生,我检查了发生此问题的其他记录,正如您所提到的,在大多数记录中,值确实下降到 0(或过冲到一个很大的值)。实验装置确实会出现振动(传感器放置在旋转盘的前面,随着旋转速度的增加,振动会增加),这可能是原因,因为没有损坏的电缆。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-08
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多