LPS25H是ST生产的MEMS数字气压传感器。主要特性有:

  • 测量范围:260 ~ 1260 hPa绝对气压
  • 分辨率:均方根1 Pa
  • 工作电压:1.7 ~ 3.6 V
  • 功耗:4μA(低分辨率模式)~25μA(高分辨率模式)
  • 数据刷新频率:1 ~ 25 Hz可选择
  • 接口:I2C,三线制/四线制SPI
  • 内置温度补偿
  • 内置24位ADC
  • 内置先入先出(FIFO)存储器
  • 封装:2.5 x 2.5 x 1.0 mm HCLGA-10L

管脚定义

  • VDD:电源,1.7~3.6V
  • GND:地
  • VDD_IO:IO口供电脚,电压小于等于VDD
  • GND_IO:IO口接地脚,需与GND相连
  • Reserved:与GND相连
  • CS:I2C接口(CS=1)选择,或SPI接口片选脚(CS=0)
  • SCL/SPC:I2C接口或SPI接口的时钟线,通过CS脚选择
  • SDA/SDI/SDIO:I2C接口或SPI接口的数据线
  • SA0/SDO:I2C接口地址选择脚,或者SPI接口的数据线
  • INT1:中断输出脚,可编程其触发条件,参见CTRL_REG4寄存器设置

与Arduino的连接

因为传感器IC大多工作在3.3V附近,因此干脆用工作于3.3V/8MHz版本的Arduino Pro Mini进行调试,避免了用UNO时接口电平转换的麻烦。采用I2C接口进行通讯。未利用INT1和FIFO的功能。

LPS25H  Pro Mini 3.3V/8MHz

VDD <------> 3.3V

GND <------> GND

SCL <------>  A5 (SCL)

SDA <------> A4 (SDA)

测试代码

 /*
Barometer based on LPS25H sensor and Arduino Pro Mini(3.3V)
*/ #include <Wire.h> #define ADDRESS_LPS25H 0x5D
#define CTRL_REG1 0x20
#define CTRL_REG2 0x21
#define PRESS_OUT_XL 0x28 byte buffer[]; boolean ready = false;
int tempOut;
long presOut;
float tempVal;
float presVal; void setup()
{
Wire.begin();
Serial.begin(); //power down the device (clean start)
Wire.beginTransmission(ADDRESS_LPS25H);
Wire.write(CTRL_REG1);
Wire.write(0x00);
Wire.endTransmission(); //turn on the sensor, set the one-shot mode, and set the BDU bit
Wire.beginTransmission(ADDRESS_LPS25H);
Wire.write(CTRL_REG1);
Wire.write(0x84);
Wire.endTransmission();
} void loop()
{
//run one-shot measurement
Wire.beginTransmission(ADDRESS_LPS25H);
Wire.write(CTRL_REG2);
Wire.write(0x01);
Wire.endTransmission(); //wait until the measurement is completed
while (ready == false)
{
delay(); //conversion time: ~37ms
Wire.beginTransmission(ADDRESS_LPS25H);
Wire.write(CTRL_REG2);
Wire.endTransmission();
Wire.requestFrom(ADDRESS_LPS25H, );
if (Wire.read() == 0x00)
{
ready = true;
}
// Serial.println("waiting...");
} //read the result
Wire.beginTransmission(ADDRESS_LPS25H);
Wire.write(PRESS_OUT_XL | 0x80); //read multiple bytes
Wire.endTransmission(); Wire.requestFrom(ADDRESS_LPS25H, );
if (Wire.available() >= )
{
for (int i = ; i < ; i++)
{
buffer[i] = Wire.read();
}
}
ready = false; //calculation
presOut = (long(buffer[]) << ) | (long(buffer[]) << ) | long(buffer[]);
presOut = (presOut << ) >> ; //PRESS_OUT_H/_L/_XL and is represented as 2’s complement
presVal = presOut/4096.0; tempOut = (buffer[] << ) | buffer[];
tempVal = 42.5 + tempOut/480.0; Serial.print(presVal); Serial.print(" hPa\t");
Serial.print(tempVal); Serial.println(" `C"); delay();
}

MCU每隔两秒测量一次气压和温度数据,并通过串口打印结果。

参考资料

LPS25H - STMicroelectronics

Arduino I2C + 气压传感器LPS25H的更多相关文章

  1. Arduino I2C + 三轴加速度计LIS3DH

    LIS3DH是ST公司生产的MEMS三轴加速度计芯片,实现运动传感的功能.主要特性有: 宽工作电压范围:1.71 ~ 3.6V 功耗:低功耗模式2μA:正常工作模式.ODR = 50Hz时功耗11μA ...

  2. Arduino I2C + 温湿度传感器Si7021

      Si7021是Silicon Labs生产的温湿度传感器芯片.其主要特性: 湿度精度:误差典型值+/-2%RH,最大值+/-3%RH(0~80%RH),出厂已校正 温度精度:误差典型值+/-0.3 ...

  3. Arduino I2C + 温湿度传感器AM2321

    (2015.5.17:本日志的内容有所更新,参见<使用Arduino Wire Library读取温湿度传感器AM2321>.) AM2321是广州奥松电子生产的数字式温湿度传感器.虽是国 ...

  4. Arduino I2C + 三轴加速度计ADXL345

    ADXL345是ADI公司生产的三轴数字加速度计芯片,与ST的LIS3DH功能接近.主要特性有: 工作电压:2.0 ~ 3.6V 功耗:待机功耗0.1μA:工作时与数据输出频率(ODR)有关,如ODR ...

  5. Arduino I2C + 温湿度传感器HTS221

    主要特性 HTS221是意法半导体(STMicroelectronics)生产的小体积.数字式温湿度传感器IC.该IC目前在官网仍处在“评估”状态.其主要特性: 工作电压:1.7~3.6V 数据输出频 ...

  6. Arduino I2C + AC24C32 EEPROM

    主要特性 AC24C32是Atmel的两线制串行EEPROM芯片,根据工作电压的不同,有-2.7.-1.8两种类型.主要特性有: 工作范围:-2.7类型范围4.5~5.5V,-1.8类型1.8~5.5 ...

  7. Arduino I2C + DS1307实时时钟

    主要特性 DS1307是Maxim的串行.I2C实时时钟芯片.主要特性有: 工作电压:主电源电压4.5~5.5V,电池电压2.0~3.5V 功耗:电池供电.备份模式时<500nA 接口:I2C, ...

  8. Arduino I2C + 数字式环境光传感器BH1750FVI

    BH1750FVI是日本罗姆(ROHM)半导体生产的数字式环境光传感IC.其主要特性有: I2C数字接口,支持速率最大400Kbps 输出量为光照度(Illuminance) 测量范围1~65535 ...

  9. Arduino通过I2C(SSD1306)驱动0.96寸12864OLED

    I2C驱动的128x64 OLED I2C (Inter-Integrated Circuit) 集成电路总线是I2CBus的简称, 是一种串行通信总线, 使用多主从架构. 飞利浦公司在1980年代为 ...

随机推荐

  1. Django 的分页器

    from  不能发json格式   只能发四种格式 view from django.shortcuts import render,HttpResponse # Create your views ...

  2. Java--神奇的hashcode

    一.Object的HashCode定义 public native int hashCode(); Object类的hashCode方式使用了native修饰也就意味着真正的实现调用的其他语言编写的方 ...

  3. Balls(poj 3783)

    The classic Two Glass Balls brain-teaser is often posed as: “Given two identical glass spheres, you ...

  4. 安装mule-standalone说明

    1,将mule-standalone-3.4.0.zip 放到 /usr/local/ 下 2,unzip mule-standalone-3.4.0.zip 3, cd /usr/local/mul ...

  5. Linux ALSA声卡驱动之一:ALSA架构简介

    声明:本博内容均由http://blog.csdn.net/droidphone原创,转载请注明出处,谢谢! 一.  概述 ALSA是Advanced Linux Sound Architecture ...

  6. sqlserver中xml查询

    DECLARE @DOC XML =' <books> <book category="C#">    <title language="e ...

  7. web前端整套面试题(一)--js相关

    一.单选 1.以下哪条语句会产生运行:(A) A.var obj = ( ); B.var obj = [ ]; C.var obj = { }; D.var obj = / /; B代表数组,C代表 ...

  8. chrome浏览器控制台创建js脚本并执行

    Chrome的snippets是小脚本,还可以创作并在Chrome DevTools的来源面板中执行.您可以访问和从任何页面运行它们.当你运行一个片段,它从当前打开的页面的上下文中执行.本文主要讲如何 ...

  9. vuejs 2.0 键盘事件

    <!DOCTYPE html> <html> <head> <title></title> <meta charset="u ...

  10. Professional C# 6 and .NET Core 1.0 - Chapter 43 WebHooks and SignalR

    本文内容为转载,重新排版以供学习研究.如有侵权,请联系作者删除. 转载请注明本文出处:Professional C# 6 and .NET Core 1.0 - Chapter 43 WebHooks ...