У меня есть термометр Arduino от Sparkfun, который измеряет температуру. Это очень точно, но мне нужно больше среднего.средняя температура в Arduino
код я использую прямо из SparkFun (https://learn.sparkfun.com/tutorials/sik-experiment-guide-for-arduino---v32/experiment-7-reading-a-temperature-sensor)
const int temperaturePin = 0;
void setup()
{
Serial.begin(9600);
}
void loop()
{
float voltage, degreesC, degreesF;
voltage = getVoltage(temperaturePin);
degreesC = (voltage - 0.5) * 100.0;
degreesF = degreesC * (9.0/5.0) + 32.0;
Serial.print("voltage: ");
Serial.print(voltage);
Serial.print(" deg C: ");
Serial.print(degreesC);
Serial.print(" deg F: ");
Serial.println(degreesF);
delay(1000);
}
float getVoltage(int pin)
{
return (analogRead(pin) * 0.004882814);
}
Я ищу получить чтение каждую минуту на среднем каждые 10 секунд, и выбросить выбросы, а не только то, что есть каждая минута. ПРИМЕР, если он читает 65, 64, 66, 67, 65, 44 в течение минуты ... он будет усреднять первые 5 и выкидывать 44, в среднем на 65,4.
Вы можете рассчитать, какие значения являются выбросами, сначала сделав [краткое изложение пяти цифр] (https://en.wikipedia.org/wiki/Five-number_summary) – Charles
Один из способов - сбросить самые низкие и самые высокие значения и усреднить отдых. Есть и другие способы ... google? Более сложным способом было бы, зная возможную скорость изменения температуры, чтобы любое изменение вне этого должно * сохраняться * для определенного количества показаний. –
В чем вопрос? –