Top.Mail.Ru
Уведомления
Очистить все

STM32F407 + BMP280 - VARIOMETR

(@eduard-2)
Level 2

Здравствуйте! помогите пожалуйста определить скороподъемность!

Вот фрагмент кода.

while(1)
{         
  bme280_start(); // Запускаю преобразование датчика давления bmp280
  delay(5000);
  bme280_clc(); // Вычисляем давление в паскалях 
  h1 = p; //сохраняем
  currentTime = TIM1->CNT+ OVF_counter * 0X2710; // Текущее время Фактическое время чтения

  elapsedTime = (currentTime - previousTime) /1000; // Разделим на 1000, чтобы   получить время в секундах   
  previousTime = currentTime; // Предыдущее время сохраняется до фактического чтения
      
  vs=(h1-h3)/elapsedTime; // Вычисляем производную ,то есть приращение высот делим на промежуток времени
  h3=h1; // Сохраняем предыдущее значение 
 
  string(180,10,"скорость подъема:",0xff,0x00ff22,1);
  BINBCD(vs,210,10,2); // выводим на дисплей

  delay(850000);
}
 
В общем высота выводится правильно, но скороподъемность ерунда какая то , может в алгоритме вычисления скорости , что то не учитываю?
 
Спасибо!
Цитата
Создатель темы Размещено : 05.07.2024 22:02
(@eduard)
Level 4 Moderator

Я не понял.

А причём здесь задержка в 5 секунд?

Потом задержка в 14 минут?

Какая может быть скороподъёмность при таких задержках?

За это время я слетаю, отбомблюсь и вернусь обратно.

Нужно обрабатывать данные в реальном времени, а не вчера, когда рак на горе свистнет.

ОтветитьЦитата
Размещено : 05.07.2024 22:25
(@eduard-2)
Level 2

@eduard задержка порядка 0.6 сек

ОтветитьЦитата
Создатель темы Размещено : 05.07.2024 23:29
(@eduard-2)
Level 2

Запись от: @eduard-2

@eduard задержка порядка 0.6 сек

в общем , на делай не обращайте , проц молотит на частоте 168 мгц

 

ОтветитьЦитата
Создатель темы Размещено : 05.07.2024 23:31
(@eduard-2)
Level 2

@eduard функции delay это обычные циклы через for() ;

ОтветитьЦитата
Создатель темы Размещено : 06.07.2024 00:22
(@eduard)
Level 4 Moderator

Я так понимаю.

Нужно проверить давление и запомнить.

Через строго определённое время, померять снова.

Посчитать разницу и запомнить.

Замерять давление снова. Снова посчитать разницу и исходя из этих значений  посчитать скорость подъёма.

И делать это постоянно в цикле. Есть алгоритм бегущего среднего.

 

У Вас же замер происходит один раз. Или я чего то не вижу?

ОтветитьЦитата
Размещено : 06.07.2024 10:14
(@eduard-2)
Level 2

@eduard так и есть, сохраняем предыдущее измерение в h3

ОтветитьЦитата
Создатель темы Размещено : 06.07.2024 11:10
Поделиться: