Відповісти

Введіть повідомлення і натисніть Надіслати
Параметри

Назад

Огляд теми (нові повідомленні вгорі)

valerakopay
2019-10-22 14:46:40

если прям сразу после запуска и прям только один раз и прям только 5 секунд, то

int max = 0;
void setup() {
  pinMode(A0, INPUT);
  Serial.begin(115200);

  for (int i= 1; i <= 5; i++) {
    int val = analogRead(A0);
    if (val >= max) {
      max = val;
    }
  }
  Serial.print("max=");
  Serial.println(max);
}
void loop() {
}

Пример работы:
пример

Kaka
2019-10-04 09:29:28

Заводишь переменную "maximal" и сначала делаешь её очень маленькой (например, нулём). В течение нужного времени вводишь значения, каждое сравниваешь с maximal. Если больше, то присваиваешь его переменной maximal. По истечению любого времени (в т.ч. и 5 сек.) в переменной maximal всегда находится максимальное значение, которое мелькнуло за это время.

Watchdog
2019-10-04 07:03:33

Выше максимального значения никаких других значений не бывает.

renoshnik
2019-10-04 06:38:15

Зависит от того сколько придет значений за эти 5 секунд.

MegBegb
2019-10-04 00:35:56

Сложилась проблема которую решить мне еще недостаточно опыта

Програмно сделать что-то вроде динамического фильтра

Суть:
мне нужно После запуска записать на протяжении (к примеру) 5 секунд значения из аналогового пина, они всегда могут иметь разные колебания, от 0 к 1000 или от 0 к 20000, поэтому нужно выбрать максимальное из записаного за 5 секунд, и все что ниже максимального - мусор, все что выше - дальше использовать в коде

как должен выглядеть фрагмент такого кода? помогите пожалуйста)

Підвал форуму