Я использую 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 записывать и хранить такие резкие значения?