STM32f1系列压力传感器MPX4250压力检测

文章目录

引言

STM32f1是具有arm cortex-M3内核的芯片,具有两个10位(或16位)adc检测功能,这为很多模拟输出的传感器的信号传输提供了便利。
MPX4250是一种线性度极强的一种压力传感器,它的线性范围为20-250kpa,测量范围也比较广泛,适用于大多数场合的压力检测。

过程

废话不多说,先看mpx4250的接线图:mpx4250的接线图
可以看到mpx4250的外接电路还是很方便的,再附上一张仿真接线图:
仿真接线图
这样实物接线应该没有问题了。
可以看到这里可以从1端口输出电压值 。这个电压是可以被32的AD检测的。但是,这个电压又是咋来的?或者直接点,电压与压力对应关系如何??
查看手册我们可以看到这样一幅图:输出电压与压力对应关系
公式
可以看到,这里有三条线,在(20-250)范围内成线性关系。可是为啥是三条,看图中公式可知它是在标准输出±了一个误差值,这里可以看到在0-85C的范围内的Vs=5.1V,那么其他呢,其他值,Error为多少?
温度误差系数
Error值
由上图可知,测量压力时与温度是分不开的(这个下一个讲18b20测温)。
有了这些数据,可以算出压力对应的输出电压,也可以看出,该模块的误差是出厂就带有的,无法消除。而电压值换算出压力值,根据公式反推就好。下面上代码:

	if ( TIM_GetITStatus( ADVANCE_TIM, TIM_IT_Update) != RESET ) 
	{	
		time++;
		num0++;

		

		if(num0 == 2)  ad0 = ADC_ConvertedValue[0];	
		if(num0 >= 3) num0 = 0;
		pressure = (double)((double)ad0/4096/5*5.1-0.04)/0.00369;

		pressure1 = (uint32_t)(pressure*1000);
		TIM_ClearITPendingBit(ADVANCE_TIM , TIM_FLAG_Update);  		 
	}
此为电压值的获取与换算ad值除以4096*5为电压值,乘以5.1(系数)后减去0.04,再除以0.00369就是压力值。
显示程序如下	
		OLED_ShowChar(0,0,'0'+pressure1/100000%10,10);
		OLED_ShowChar(16,0,'0'+pressure1/10000%10,10);
		OLED_ShowChar(32,0,'0'+pressure1/1000%10,10);
		OLED_ShowChar(64,0,'0'+pressure1/100%10,10);

这里单位为PA。
整体电路连接图如下
电路连接图

  • 18
    点赞
  • 74
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

(~ ̄▽ ̄)~凤凰涅槃

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值