Резкие скачки в выводе данных датчика Arduino UNO - PullRequest
0 голосов
/ 01 октября 2019

Я использую 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;
  }
}

Значения копируются из последовательного монитора. Некоторые записи показывают внезапный скачок одного или двух записанных значений, и из-за этого график данных выглядит так, как будто он «вычеркнут». Цифры: Скачок значения данных датчика Увеличенное изображение данных датчика

Эти резкие значения появляются не каждый раз, когда выполняется код, а онипоявляются один раз каждые 7-12 прогонов. В чем причина этих резких скачков? Резких изменений в условиях эксперимента нет. Как запретить Arduino записывать и хранить такие резкие значения?

1 Ответ

0 голосов
/ 01 октября 2019

Ваши значения не скачут внезапно, они падают до 0. Обычно вы можете измерить 0, только если у вас есть замыкание на землю. Так что, возможно, у вас поврежден кабель и из-за вибраций .... Я не знаю, какие настройки теста.

Тест 1) Измерьте постоянное напряжение

Тест 2) Попробуйте другой входной контакт

Если вы не можете это исправить, просто проверьте считанные значения. Если они не имеют смысла, пропустите их или замените их экстраполяцией.

...