ESP8266-Arduino编程实例-LPS25H压阻式压力传感器驱动

LPS25H压阻式压力传感器驱动

1、LPS25H介绍

LPS25H 是一款超紧凑型绝对压阻式压力传感器。它包括一个单片传感元件和一个能够从传感元件获取信息并向外部世界提供数字信号的 I2C 接口。

传感元件由在单个单硅衬底内实现的悬浮膜组成。它能够检测压力,并使用 ST 开发的专用工艺制造。与传统制造的硅微加工膜相比,该膜非常小。内在的机械塞子可防止膜破裂。I2C 接口采用标准 CMOS 工艺制造,允许高集成度设计专用电路,该电路经过修整以更好地匹配传感元件特性。

LPS25H 采用腔孔 LGA 封装 (HLGA)。它保证在 -30 °C 至 +105 °C 的温度范围内工作。封装有孔以允许外部压力到达传感元件。

在这里插入图片描述

LPS25H具有如下特性:

  • 260 至 1260 mbar 绝对压力范围
  • 高分辨率模式:1 Pa RMS
  • 低功耗
  • 低分辨率模式:4 μA
  • 高分辨率模式:25 μA
  • 高超压能力:20x 满量程
  • 嵌入式温度补偿
  • 嵌入式 24 位 ADC
  • 从 1 Hz 到 25 Hz 的可选 ODR
  • SPI 和 I²C 接口
  • 电源电压:1.7 至 3.6 V
  • 高抗冲击能力:10,000 g

2、硬件准备

  • ESP8266 NodeMCU开发板一块
  • LPS25H传感器模块一个
  • 面板板一个
  • 杜邦线若干
  • 数据线一条

硬件接线如下:

传感器引脚 ESP8266开发板引脚
Vin 5v
Gnd Gnd
SCL D1
SDA D2

3、软件准备

  • Arduino IDE或VSCode + PlatformIO

在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:

ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:

4、代码实现

本次使用的驱动库如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#include <Wire.h>
#include <LPS.h>

LPS ps;

void setup()
{
Serial.begin(9600);
Wire.begin();

if (!ps.init())
{
Serial.println("Failed to autodetect pressure sensor!");
while (1);
}

ps.enableDefault();
}

void loop()
{
float pressure = ps.readPressureMillibars();
float altitude = ps.pressureToAltitudeMeters(pressure);
float temperature = ps.readTemperatureC();

Serial.print("p: ");
Serial.print(pressure);
Serial.print(" mbar\ta: ");
Serial.print(altitude);
Serial.print(" m\tt: ");
Serial.print(temperature);
Serial.println(" deg C");

delay(100);
}

文章来源: https://iotsmart.blog.csdn.net/article/details/126845390