Как найти пиковое значение аналогового сигнала?
У меня есть вопрос.. Пожалуйста, помогите мне, я не знаю, как Arduino может считывать пиковое значение сигнала датчика. Значение, которое я хочу, находится в значении АЦП. Я хочу... в течение 5 секунд будет 1 среднее значение от самого высокого пикового значения датчика и значение АЦП. Я буду использовать контакт A0, но я не знаю, как запрограммировать нужную мне программу. Пожалуйста, помогите мне. Что такое код?
@Apridho Rozaqy, 👍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;
}
}
Надеюсь, это поможет!
,
@Somasundharam Sampath
Смотрите также:
- Как преобразовать эту программу в сборку из c++
- Как настроить вход АЦП Arduino на A0 вместо использования по умолчанию?
- Использование MAX30100 для Arduino для чтения АЦП в формате (0-1023)
- Печать string and integer LCD
- Почему мои часы реального времени показывают неверное время с моего ПК?
- Arduino uno + cnc Shield v3 + драйвер шагового двигателя A4988 + AccelStepper?
- Отправьте несколько значений int из Python в Arduino, используя pySerial
- Глобальные переменные занимают много места в динамической памяти.