示例二、气压传感器

通过以下几个示例来具体展开学习,了解常用的集成温度传感器基本原理、性能与应用:

示例二、气压传感器

一、基本原理:
大气具有重量,并且向人们施加压力,气压已经成为人们生活中的一部分,时刻都在影响着人们的日常生活。人们常把作用于单位面积上的空气重量称为大气压力,简称气压。气象学研究表明,在空间垂直方向上气压随高度的增加而降低,这种变化的幅度在近地表面和高空时又有所不同,近地表面时气压随高度增加而降低的幅度最大,越到高空这种变化越缓慢。气压还会受空气中的气流影响,若空气中有下降气流,气压会增加:若空气中有上升气流,气压会减小。检测、掌握气压变化,有利于改善人们的生活质量。
1、数字气压计的系统结构
这里介绍的数字气压计通过气压传感器MPX4115获得与大气压相对应的模拟电压值,经过ADC0832将模拟电信号转换为数字信号,并送给单片机处理,然后将气压值输出显示在LED数码管上,如图所示。
在这里插入图片描述

2、数字气压计的硬件设计
1)气压传感器MPX4115
系统选用Moa公司生产的新型MEMS器件MPX4115单片集成硅压力传感器
集成度高,质量小(有4g、1.5g两种型号),尺寸小,具有测量准确度高,预热时间短,响应速度快,长期稳定,可靠性高,过载能力强等优点。MPX4115的量程为15115kPa,在40~125℃范围内具有温度补偿功能:输出模拟信号,电压输出为0.2~4.8V高度测量范围为海拔-1100~13000m,可以满足小型无人机的测控需要。国内外商品化飞行控制器用MPX4115作为气压高度传感器均取得不错效果。
MPX4115的工作温度适应条件很宽,工作电压为5v直流电源,工作功率为35mW,它把压感单元、温度补偿单元、电压放大电路、模拟信号输出单元等集成在一个芯片上,使用非常方便。它的外观及内部结构如图所示。
在这里插入图片描述

MPX4115的引脚功能描述见表
在这里插入图片描述

MPX4115的输出电压与压强变化具有良好的线性关系:
在这里插入图片描述

2)双通道AD转换器 ADC0832
ADC0832是美国国家半导体公司生产的一种8位分辨率、双通道AD转换芯片。由于它体积小,兼容性好,性价比高,而深受单片机爱好者及企业的欢迎,目前已经有很高的普及率。ADC0832为8位分辨率A-D转换芯片,最高可达256级,可以适应一般的模拟量转换要求。
ADC0832是8引脚双列直插式封装,5V电源供电,输入电压为0~5V,工作频率为250kHz,转换时间为32us,一般功耗仅为15mW。引脚排列如图3-40所示。它能分别对两路模拟信号实现模一数转换,可以在单端输入方式和差分输入方式下工作。
在这里插入图片描述

ADCO832引脚功能如下。
CS:片选使能,低电平有效。
CHO:模拟输入通道0,或作为IN+/使用。
CHl:模拟输入通道1,或作为IN+/使用。
GND:芯片参考0电位(地)。
DI:数据信号输入,选择通道控制。
DO:数据信号输出,转换数据输出。
在这里插入图片描述

作为单通道模拟信号输入时,ADC0832的输入电压的范围是0~5V,当输入电压=0时,转換后的输出值VAL=Ox00:而当U=5y时,转换后的输出值VAL=Oxff,即十进制数的255所以,转换输出值(数字量D)为D=(255/5)Ui式中:D一转换后的数字量:Ui一输入的模拟电压。
3)显示模块
本设计采用四位七段共阳LED显示模块,以简化程序设计。
3、系统硬件电路
气压传感器MPX4115将气压值转换成电压值输出,经ADC0832转换成数字量,并送单片机处理,然后在数码管上显示。其电路如图所示。
在这里插入图片描述

4、数字气压计的软件设计
1)主程序
系统启动后,首先进行系统初始化,然后启动ADC032对传感器的输出电压进行转换,再将数字电压信号进行处理,最后将气压值显示在数码管上。其流程如图所示。
在这里插入图片描述

2)LED数码管的显示控制
在这里插入图片描述

在这里插入图片描述

3)读ADC0832AD转换器的函数

/************
读ADC0832函数
************/
//采集并返回
unsigned int Adc0832(unsigned char channel)     //AD转换,返回结果
{
    uchar i=0;
    uchar j;
    uint dat=0;
    uchar ndat=0;

    if(channel==0)channel=2;
    if(channel==1)channel=3;
    ADDI=1;
    _nop_();
    _nop_();
    ADCS=0;//拉低CS端
    _nop_();
    _nop_();
    ADCLK=1;//拉高CLK端
    _nop_();
    _nop_();
    ADCLK=0;//拉低CLK端,形成下降沿1
    _nop_();
    _nop_();
    ADCLK=1;//拉高CLK端
    ADDI=channel&0x1;
    _nop_();
    _nop_();
    ADCLK=0;//拉低CLK端,形成下降沿2
    _nop_();
    _nop_();
    ADCLK=1;//拉高CLK端
    ADDI=(channel>>1)&0x1;
    _nop_();
    _nop_();
    ADCLK=0;//拉低CLK端,形成下降沿3
    ADDI=1;//控制命令结束 
    _nop_();
    _nop_();
    dat=0;
    for(i=0;i<8;i++)
    {
        dat|=ADDO;//收数据
        ADCLK=1;
        _nop_();
        _nop_();
        ADCLK=0;//形成一次时钟脉冲
        _nop_();
        _nop_();
        dat<<=1;
        if(i==7)dat|=ADDO;
    }  
    for(i=0;i<8;i++)
    {
        j=0;
        j=j|ADDO;//收数据
        ADCLK=1;
        _nop_();
        _nop_();
        ADCLK=0;//形成一次时钟脉冲
        _nop_();
        _nop_();
        j=j<<7;
        ndat=ndat|j;
        if(i<7)ndat>>=1;
    }
    ADCS=1;//拉低CS端
    ADCLK=0;//拉低CLK端
    ADDO=1;//拉高数据端,回到初始状态
    dat<<=8;
    dat|=ndat;
    return(dat);            //return ad k

二、电路设计及仿真:
在这里插入图片描述

三、数据记录及及分析:
气压传感器实验数据记录
在这里插入图片描述

1、绘制MPX4115输出电压与气压的关系曲线

在这里插入图片描述

2、绘制ADCO832模数转换器时序图(CLK、CS、D0三个信号的时序图)

在这里插入图片描述

六、思考题:
1、共阳极LED和共阴极LED编码和控制的区别?
答:共阴极:当某个发光二极管的阳极为高电平时,发光二极管点亮,相应的段被显示。
共阳极:将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。
2、模数转换器ADC0832的原理和波形?
答: 正常情况下ADC0832 与单片机的接口应为4条数据线,分别是CS、CLK、DO、DI。但由于DO端与DI端在通信时并未同时使用并与单片机的接口是双向的,所以在I/O口资源紧张时可以将DO和DI并联在一根数据线上使用。当ADC0832未工作时其CS输入端应为高电平,此时芯片禁用,CLK 和DO/DI 的电平可任意。当要进行A/D转换时,须先将CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟(CLK)输入端输入时钟脉冲,DO/DI端则使用DI端输入通道功能选择的数据信号。在第一个时钟脉冲的下沉之前DI端必须是高电平,表示启始信号。在第二、三个脉冲下沉之前DI端应输入两位数据用于选择通道功能。

  • 22
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
HP303B是一款高精度数字气压传感器,主要用于测量大气压力和温度。为了正常使用HP303B传感器,我们需要安装相应的驱动程序。 首先,我们可以从HP303B传感器的官方网站或者元器件供应商的网站上下载驱动程序。驱动程序通常包括API库和示例代码,以帮助我们在不同的硬件平台上使用该传感器。 安装驱动程序后,我们需要将传感器连接到目标硬件平台。HP303B传感器采用标准的I2C接口进行通信,因此我们需要确保目标硬件平台上具有I2C总线功能。 接下来,我们可以使用驱动程序提供的API库来编写程序。首先,我们需要初始化传感器并设置其工作模式。HP303B传感器可以选择不同的工作模式,包括气压和温度测量、高分辨率模式等。 一旦传感器初始化完成,我们可以使用API库提供的函数来读取气压和温度值。这些函数可以返回数字化的气压值和温度值。 根据应用需求,我们可以使用这些测量值进行进一步的处理和分析。例如,我们可以将测得的气压转换为海平面气压,或者使用温度值进行温度补偿等。 最后,我们可以根据需要定期读取传感器的数据,以保持气压和温度的实时更新。根据应用场景的不同,我们可以使用定时器中断或轮询等方法来实现数据的定期采集。 总之,驱动HP303B数字气压传感器需要安装驱动程序,并使用API库和示例代码来控制传感器的初始化、读取和处理,以实现高精度气压和温度测量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

听风者i

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

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

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

打赏作者

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

抵扣说明:

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

余额充值