Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
30.07.2012, 10:21
|
|
Временная регистрация
Регистрация: 16.11.2007
Сообщений: 65
Сказал спасибо: 7
Сказали Спасибо 3 раз(а) в 3 сообщении(ях)
|
Re: Посоветуйте датчик атмосферного давления
Спасибо всем откликнувшимся.
Вот это уже свобода выбора ! ))
|
|
|
|
17.10.2012, 12:40
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2009
Сообщений: 609
Сказал спасибо: 37
Сказали Спасибо 140 раз(а) в 72 сообщении(ях)
|
Re: Посоветуйте датчик атмосферного давления
Многим известен датчик BMP085, в сети есть много информации, но вот не могу я найти алгоритм с плавающей точкой для OSS отличным от нуля.
Если кто имеет - покажите где подсмотреть ?
|
|
|
|
17.10.2012, 14:01
|
|
Почётный гражданин KAZUS.RU
Регистрация: 08.06.2008
Сообщений: 1,394
Сказал спасибо: 4
Сказали Спасибо 183 раз(а) в 167 сообщении(ях)
|
Re: Посоветуйте датчик атмосферного давления
|
|
|
|
17.10.2012, 15:43
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2009
Сообщений: 609
Сказал спасибо: 37
Сказали Спасибо 140 раз(а) в 72 сообщении(ях)
|
Re: Посоветуйте датчик атмосферного давления
Там нет ничего про алгоритм рассчета для BMP085...
|
|
|
|
17.10.2012, 16:03
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,537
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
|
Re: Посоветуйте датчик атмосферного давления
Сообщение от BolshoyK
|
Многим известен датчик BMP085, в сети есть много информации, но вот не могу я найти алгоритм с плавающей точкой для OSS отличным от нуля.
Если кто имеет - покажите где подсмотреть ?
|
В даташите же на стр.13 расписан алгоритм расчета.
|
|
|
|
17.10.2012, 18:54
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2009
Сообщений: 609
Сказал спасибо: 37
Сказали Спасибо 140 раз(а) в 72 сообщении(ях)
|
Re: Посоветуйте датчик атмосферного давления
Сообщение от realid
|
В даташите же на стр.13 расписан алгоритм расчета.
|
В даташите целочисленный.
http://wmrx00.sourceforge.net/Arduino/BMP085-Calcs.pdf
Походу я протупил и этот алгоритм то что надо. Завтра перепроверю.
|
|
|
Сказали "Спасибо" BolshoyK
|
|
|
17.10.2012, 21:06
|
|
Супер-модератор
Регистрация: 15.10.2007
Сообщений: 3,537
Сказал спасибо: 172
Сказали Спасибо 1,561 раз(а) в 811 сообщении(ях)
|
Re: Посоветуйте датчик атмосферного давления
Код:
|
struct BMP {
long UT;
long UP;
}ValueBMP;
struct BMP_Cal {
int AC1;
int AC2;
int AC3;
unsigned int AC4;
unsigned int AC5;
unsigned int AC6;
int B1;
int B2;
int MB;
int MC;
int MD;
}CalibrationValueBMP;
struct Pressure {
float Pressure;
float Temperature;
float Altitude;
}ValBMP;
void Calculate_BMP(void)
{
float p;
float X1 = ((float)ValueBMP.UT - CalibrationValueBMP.AC6) * CalibrationValueBMP.AC5 / 32768.0;
float X2 = CalibrationValueBMP.MC * 2048.0 / (X1 + CalibrationValueBMP.MD);
float B5 = X1 + X2;
ValBMP.Temperature = ((B5 + 8.0)/16.0) * 0.1;
float B6 = B5 - 4000.0;
X1 = (CalibrationValueBMP.B2 * (B6 * B6 / 4096.0)) / 2048.0;
X2 = CalibrationValueBMP.AC2 * B6 / 2048.0;
float X3 = X1 + X2;
float B3 = ((CalibrationValueBMP.AC1 * 4.0 + X3)*(pow(2,oss)) + 2.0)/4.0;
X1 = CalibrationValueBMP.AC3 * B6 / 8192.0;
X2 = (CalibrationValueBMP.B1 * (B6 * B6 / 4096.0)) / 65536.0;
X3 = ((X1 + X2) + 2.0) / 4.0;
float B4 = CalibrationValueBMP.AC4 * (X3 + 32768.0) / 32768.0;
float B7 = ((float)ValueBMP.UP - B3) * (50000.0 / (pow(2,oss)));
if(B7 ‹ 2147483648.0)
p = (B7 * 2) / B4;
else
p = (B7 / B4) * 2;
X1 = (p / 256.0) * (p / 256.0);
X1 = (X1 * 3038.0) / 65536.0;
X2 = (-7357.0 * p) / 65536.0;
ValBMP.Pressure = (p + (X1 + X2 + 3791.0) / 16.0) / 133.3223684;
//ValBMP.Pressure = ValBMP.Pressure / 133.3223684;
ValBMP.Altitude = 44333.0 * (1.0 - pow((ValBMP.Pressure/760.0),0.190295));
} |
|
|
|
|
17.10.2012, 22:42
|
|
Частый гость
Регистрация: 23.02.2005
Сообщений: 13
Сказал спасибо: 2
Сказали Спасибо 0 раз(а) в 0 сообщении(ях)
|
Re: Посоветуйте датчик атмосферного давления
А вот ктстати спасибо за информацию, пригодится)
|
|
|
|
18.10.2012, 07:10
|
|
Гражданин KAZUS.RU
Регистрация: 25.11.2009
Сообщений: 609
Сказал спасибо: 37
Сказали Спасибо 140 раз(а) в 72 сообщении(ях)
|
Re: Посоветуйте датчик атмосферного давления
Допилил демку, BMP085 + отладочная плата HY-MINI STM32 на основе ранее упомянутого документа. Единственно что неудобно для сравнения целочисленного метода и с плавающей точкой - берутся разные семплы, по этому исходные данные не идентичны в расчетах.
http://serg22.sibgtu.ru/radio/BMP085_Stm32.rar
|
|
|
|
18.10.2012, 11:44
|
|
Прописка
Регистрация: 19.12.2009
Сообщений: 120
Сказал спасибо: 22
Сказали Спасибо 35 раз(а) в 22 сообщении(ях)
|
Re: Посоветуйте датчик атмосферного давления
тоже заказал себе бош..
правда еще не пришел..
кстати, а не поделитесь ссылкой на stm32 с дисплеем ? - там экран как подключен ?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:27.
|
|