Как найти пиковое значение аналогового сигнала?

У меня есть вопрос.. Пожалуйста, помогите мне, я не знаю, как Arduino может считывать пиковое значение сигнала датчика. Значение, которое я хочу, находится в значении АЦП. Я хочу... в течение 5 секунд будет 1 среднее значение от самого высокого пикового значения датчика и значение АЦП. Я буду использовать контакт A0, но я не знаю, как запрограммировать нужную мне программу. Пожалуйста, помогите мне. Что такое код?

, 👍0


1 ответ


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

0

Посмотрите, правильно ли я понимаю: за заданный период времени вы хотите найти пик.

void setup()
{
  unsigned long int cur_time = 0 ;
  unsigned long int time_elapsed = 0;
  int peaks[20]; // скажем, вы хотите найти 20 пиков, 1 пик для данных, поступающих между 5 секундами
  int time_period = 5000;  
  int data = 0; 
  int mx=0;
}

void loop()
{
   for(int i = 0 ; i<20;i++)
   { 
      cur_time = millis();
      while(cur_time - time_elapsed <=time_period)
      { 
             if(mx==0)
              { mx = analogRead(A0); } 
              else:
               {  data = analogread(A0);
                  mx = max(data , mx);  
               }
              cur_time = millis();
        } 
         time_elapsed = cur_time;
         peaks[i] = mx;
         mx = 0; 
        }
  }  

Надеюсь, это поможет!

,