前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Arduino驱动MPX5700AP气压传感器(压力传感器)

Arduino驱动MPX5700AP气压传感器(压力传感器)

作者头像
不脱发的程序猿
发布2023-12-11 10:24:37
3460
发布2023-12-11 10:24:37
举报
文章被收录于专栏:AIoT技术交流、分享

目录

1、传感器特性

2、硬件原理图

3、控制器和传感器连线图

4、驱动程序

4.1、采集数据

4.2、校准传感器


MPX5700AP测量范围15~700kPa,支持I2C数字输出,可以根据已知气压值进行标定,可以快速、准确的测量管路或其他环境中的气压值。适用于管路气压检测,自然科学实验等场景。

1、传感器特性

传感器特性如下所示:

  • 检测物理量: 气压
  • 工作电压: 3.3~5.5V DC
  • 功耗:0.06W(5V)
  • 输出信号: I2C输出(0~3V)
  • 测量范围: 15-700kPa
  • 误差:<2.5%
  • 分辨率: ≤1kPa
  • 工作温度: 0~85℃

2、硬件原理图

传感器原理图如下所示:

3、控制器和传感器连线图

控制器和传感器连线图如下所示:

4、驱动程序

4.1、采集数据

驱动程序如下所示:

代码语言:javascript
复制
/*!
  * @file  getPressureValue.ino
    @n i2c 地址选择,默认i2c地址为0x16,A1、A0组合成4种IIC地址
                | A1 | A0 |
                | 0  | 0  |    0x16
                | 0  | 1  |    0x17
                | 1  | 0  |    0x18
                | 1  | 1  |    0x19   default i2c address  
  * @n 实验现象: 串口打印全部数据
*/
#include "DFRobot_MPX5700.h"
#define I2C_ADDRESS 0x16
DFRobot_MPX5700 mpx5700(&Wire, I2C_ADDRESS);
void setup()
{
  Serial.begin(115200);
  while (false == mpx5700.begin())
  {
    Serial.println("i2c begin fail,please chack connect!");
    delay(1000);
  }
  Serial.println("i2c begin success");

/*
 *为了平滑数据,需要设置取xx数量的adc数据取平均值
 *如果不进行设置,系统会自动获取5个样本数量的平均值
 */
  mpx5700.setMeanSampleSize(/*样本总数*/5);
}

void loop()
{
  Serial.print("Pressure Value: ");
/*
 *获取此时环境气压,可以设置是否启用校准
 *1:需要校准
 *0:不需要校准
 */
  Serial.print(mpx5700.getPressureValue_kpa(1));
  Serial.println(" kpa");
  delay(1000);
}

运行效果如下所示:

4.2、校准传感器

驱动程序如下所示:

代码语言:javascript
复制
/*!
  * @file  calibration.ino
    @n i2c 地址选择,默认i2c地址为0x16,A1、A0组合成4种IIC地址
                | A1 | A0 |
                | 0  | 0  |    0x16
                | 0  | 1  |    0x17
                | 1  | 0  |    0x18
                | 1  | 1  |    0x19   default i2c address  
  * @n 实验现象: 串口打印全部数据
*/
#include "DFRobot_MPX5700.h"
#define I2C_ADDRESS    0x16
DFRobot_MPX5700 mpx5700(&Wire ,I2C_ADDRESS);
void setup() {
  Serial.begin(115200);
  while(false==mpx5700.begin())
  {
    Serial.println("i2c begin fail,please chack connect!");
    delay(1000);
  }
  Serial.println("i2c begin success");

/*
 *添加现在环境中的标准气压值用以校准
 */  
  mpx5700.calibration_kpa(110.0);
  Serial.println("Calibration_kpa success");
}

void loop() {
}

运行效果如下所示:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-12-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、传感器特性
  • 2、硬件原理图
  • 3、控制器和传感器连线图
  • 4、驱动程序
    • 4.1、采集数据
      • 4.2、校准传感器
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档