气压计MS5611

经过几天的痛苦挣扎,终于搞定了,完成气压计的参数读写,温度检测,大气压计算。因为这款气压计精度高,好多计算需要用到正负数,整数小数,浮点整形,有的计算结果特别大,所以在数据格式转换方面费了好长时间。但是结果还是挺满意的。需要源代码的可以去我分享的资源下载,留言或者留邮箱。这款气压计也可以用作测量海拔,稳定性挺好,测量的温度,气压都挺准确,下面是资料简介,最后添加部分程序代码,如需完整版的代码和资料,可以从附件下载。MS5611气压传感器是由MEAS(瑞士)推出的一款SPI和I²C总线接口的新一代高分辨率气压传感器,分辨率可达到10cm。该传感器模块包括一个高线性度的压力传感器和一个超低功耗的24位Σ模数转换器(工厂校准系数)。

计算温度:

D2 = MS5611_DO_Conversion(OSR_Temp);
delay_ms(10);
dT = D2 - (((u32)c5)*256) ; 

Temperature = 2000 + dT*((float)c6)/8388608 ; 

计算大气压:

D1 = MS5611_DO_Conversion(OSR_Pressure) ;
delay_ms(10) ;
OFF  = (((int64_t)c2)*65536 + (((int64_t)c4*dT)/128)) ;
SENS = (((int64_t)c1)*32768) + (((int64_t)c3*dT)/256) ;
if(Temperature < 2000)  //µ±Î¶ÈÖµTEMPСÓÚ2000ʱÐèÒª×öζȲ¹³¥
{
T2    = (float)(dT*dT)/0x80000000 ;
Aux   = (Temperature - 2000)*(Temperature - 2000) ;
OFF2  = 2.5f*Aux ;
SENS2  = 1.25f*Aux ;
if(Temperature < -1500) //µ±Î¶ÈÖµTEMPСÓÚ-1500ʱÐèÒª×öζȲ¹³¥
{
Aux = (Temperature+1500)*(Temperature+1500);
OFF2 = OFF2 + 7*Aux;
SENS2 = SENS2 + 5.5f*Aux;
}
}
else 
{
T2   = 0 ;

OFF2 = 0 ;
SENS2= 0 ;
}
Temperature = Temperature - T2 ;
OFF  = OFF - OFF2 ;
SENS = SENS - SENS2 ;
Pressure = ((D1*SENS)/2097152 - OFF)/32768 ; 
海拔计算:

Altitude  = (44330.0f*(1.0f - pow((float)Pressure/101325.0f, 0.190295f))) ;

  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值