Возвращает среднее значение наблюдений для заданного времени выборки

Я новичок на этом сайте StackExchange. У меня есть экспериментальная установка с тремя входами: два от лазерного дальномера для измерения расстояния до плоскости и один цифровой вход от штангенциркуля.

Показания всех датчиков колеблются в небольшом диапазоне (что приемлемо для моего случая). Можно ли сделать так, чтобы Arduino регистрировала все входные данные за определённый период времени и выводила только среднее значение для каждого датчика?

, 👍0

Обсуждение

Просто используйте массив. На сайте Arduino есть руководство по [сглаживанию](https://www.arduino.cc/en/Tutorial/Smoothing), которое может вам помочь., @sempaiscuba

Чтобы облегчить жизнь: https://github.com/MajenkoLibraries/Average, @Majenko

@Majenko Это очень здорово. Есть что-то, чего у тебя нет в библиотеке?, @sempaiscuba

@sempaiscuba У меня нет инструмента для зарабатывания денег :(, @Majenko

@Majenko Жаль. Мне бы тоже очень пригодился один из них. :), @sempaiscuba

https://stackoverflow.com/questions/4611599/smoothing-data-from-a-sensor?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa, @Gerben


1 ответ


Лучший ответ:

1

У меня есть это:

int readElSens() {
  long sum = 0;
  int n = 0;
  long start_time = millis();
  while(millis() - start_time < 400) { 
    sum += analogRead(ELSENS_PIN);
    n++;
  }
  return sum / n;
}
,