#1 2019-10-04 00:35:56

MegBegb
Учасник
Зареєстрований: 2018-03-01
Повідомлень: 7

Как через аналоговый пин сортировань значения

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

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

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

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

Остання редакція MegBegb (2019-10-04 00:53:11)

Неактивний

#2 2019-10-04 06:38:15

renoshnik
Учасник
Зареєстрований: 2017-04-03
Повідомлень: 1,025

Re: Как через аналоговый пин сортировань значения

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

Неактивний

#3 2019-10-04 07:03:33

Watchdog
Гість

Re: Как через аналоговый пин сортировань значения

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

#4 2019-10-04 09:29:28

Kaka
Учасник
Зареєстрований: 2018-03-21
Повідомлень: 411

Re: Как через аналоговый пин сортировань значения

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

Неактивний

#5 2019-10-22 14:46:40

valerakopay
Учасник
Зареєстрований: 2019-10-21
Повідомлень: 10

Re: Как через аналоговый пин сортировань значения

если прям сразу после запуска и прям только один раз и прям только 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() {
}

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

Остання редакція valerakopay (2019-10-22 15:18:12)

Неактивний

Швидке повідомлення

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

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