0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

将BMP280压力传感器模块与Arduino连接的方法

科技观察员 来源:circuitdigest 作者:Manoj Kumar 2022-08-19 15:45 次阅读

如果您想构建自己的温度监测系统或测量无人机的高度,或者只是想测量您所在地区的大气压力,那么您在项目中使用的最佳模块之一就是BMP280 压力传感器模块。BMP280是绝对压力和温度监测传感器,是BMP085、BMP180、BMP183传感器的升级版。为什么叫升级版?它将在以下各节中讨论。

BMP280 传感器模块可以与 ArduinoPIC、AVR 等微控制器一起使用。对于这个项目,我们将使用Arduino Uno 和 BMP280以及 LCD 16x2 显示模块来显示温度和压力值。在将 BMP280 与 Arduino 连接之前,我们需要下载 Adafruit 开发的BMP280 Arduino 库。

所需组件

阿杜诺

BMP280

连接电线

面包板

液晶显示器- 16x2

poYBAGL_P1uAc7UBAAXMYZ2QMtc639.png

BMP280 压力传感器模块:

poYBAGL_P1aARo0xAARiQoC3bK0742.png

BMP280 传感器模块在 1.71V 的最小电压 (VDD) 下工作,而之前版本的传感器模块在 1.8V (VDD) 下工作。就电流消耗而言,BMP280 消耗 2.7uA,而 BMP180 消耗 12uA,BMP183 和 BMP085 各消耗 5uA。BMP280 还支持新的过滤模式。BMP280 传感器模块支持 I2c 和 SPI 协议,而其余传感器支持 I2c 或 SPI。BMP280 传感器模块的精度为 ±0.12 hPa,相当于海拔高度差±1 m。由于这些关键特性,它主要用于各种应用。BMP传感器由压力传感元件、湿度传感元件和温度传感元件组成,它们进一步连接到压力前端、湿度前端和温度前端。这些前端 IC 是用于放大小信号的灵敏度模拟放大器。该模拟前端 IC 的输出作为输入信号馈送到 ADC。在这种情况下,模拟值被转换为数字电压,并且该电压被馈送到逻辑电路以进一步与外界连接。

BMP280 传感器模块由三种功耗模式组成,睡眠模式、强制模式和正常模式。在睡眠模式下,不执行任何测量,并且功耗最低。在强制模式下,根据选定的测量和过滤选项执行单次测量。正常模式在测量和待机周期之间连续循环,周期时间段将由 Tstandby 定义。待机模式下的电流略高于睡眠模式。

将 BMP280 与 Arduino 连接的电路图:

将Arduino 与 BMP280传感器和 LCD连接的电路图如下所示。

pYYBAGL_P1KAaXNPAAEt85U6_6U215.png

传感器的 VCC 和 GND 引脚连接到 Arduino 的 3v3 和 GND 引脚。传感器的 SCL 和 SDA 引脚连接到 Arduino 板的 A5 和 A4。LCD连接如下

pYYBAGL_P06ABkxcAAAMbm9DsEI909.png

将 BMP280 与 Arduino 连接的 Arduino 程序:

完整的BMP280 Arduino 代码可以在本页底部找到,可以直接上传到您的 Arduino 板。下面给出相同的解释

包含这些库以启用特殊功能。#include 头文件我们可以直接读取来自传感器的值。#include 标头有助于使用 I2C 通信。#include 头文件用于访问 LCD 的特殊功能,如 lcd.print()、Lcd.setCursor() 等。可以使用上面给出的链接下载这些头文件。下载的文件将采用 zip 格式。现在打开 Arduino 选择 Sketch>include library>Add.zip library。现在添加下载的文件。

#include 
#include 
#include 
#include 

为 Adafruit_BMP280 创建对象 BMP。创建目标文件以访问特殊功能。

Adafruit_BMP280 bmp;// I2C

设置 Arduino 的引脚以与 LCD 通信。使用这些引脚数据将被传输。

液晶液晶屏(9、8、5、4、3、2);

初始化 LCD 和串行通信。

无效设置(){
  lcd.开始(16,2);
  序列号.开始(9600);
  Serial.println(F("BMP280 测试"));
  lcd.print("欢迎来到");
  lcd.setCursor(0,1);
  lcd.print("电路文摘");
  延迟(1000);
  lcd.clear();
  如果(!bmp.begin()){
    Serial.println(F("找不到有效的 BMP280 传感器,检查接线!"));
    而(1);
  }

该函数在 bmp 对象初始化失败时起作用。

  /* 数据表中的默认设置。*/
  bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* 操作模式。*/
                  Adafruit_BMP280::SAMPLING_X2,/* 温度。过采样 */
                  Adafruit_BMP280::SAMPLING_X16, /* 压力过采样 */
                  Adafruit_BMP280::FILTER_X16, /* 过滤。*/
                  Adafruit_BMP280::STANDBY_MS_500); /* 待机时间。*/
}

这部分代码在串行监视器上打印温度,用于调试目的。

无效循环(){
    Serial.print(F("温度 = "));
    Serial.print(bmp.readTemperature());
    Serial.println("*C");

函数bmp.readPressure和bmp.readTemprature用于调用特殊函数并返回温度和压力值。

    lcd.print(bmp.readTemperature());
    lcd.print(bmp.readPressure());

Arduino BMP280压力传感器接口项目的工作

函数bmp.readTemprature()和bmp.readPressure()用于返回温度和压力值。这些函数是一组执行特殊任务的语句,在我们的例子中是返回温度和压力文件。使用bmp.readTemprature()和bmp.readPressure()函数调用这些函数。lcd.setCursor将 LCD 的光标设置到屏幕上所需的位置。液晶打印命令从程序员设置的位置打印数据。如果 LCD 没有设置位置,默认以(0,0)为初始位置,连续打印数据。下一个数据占据下一列的位置,并且该过程继续进行,直到它到达行的末尾并移动到下一行。

poYBAGL_P0iAcSW3AAfxf2I-DL8097.png

BMP280 可用于飞行玩具、手机、平板电脑、PC、GPS 设备、便携式保健设备、家庭气象站等。按照此程序并使用头文件和一些特殊功能,我们可以轻松地将 BMP280 与阿杜诺。完整的工作也可以在下面给出的视频中找到,希望您喜欢这个BMP280 Arduino 教程并学到一些有用的东西。

#include

#include

#include

#include

Adafruit_BMP280 bmp; // I2C

//Adafruit_BMP280 bmp(BMP_CS); //硬件SPI

//Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO, BMP_SCK);

液晶液晶(9、8、5、4、3、2);

无效设置() {

lcd.begin(16,2);

序列号.开始(9600);

Serial.println(F("BMP280 测试"));

lcd.print("欢迎来到");

lcd.setCursor(0,1);

lcd.print("电路文摘");

延迟(1000);

lcd.clear();

if (!bmp.begin()) {

Serial.println(F("找不到有效的 BMP280 传感器,检查接线!"));

而(1);

}

/* 数据表中的默认设置。*/

bmp.setSampling(Adafruit_BMP280::MODE_NORMAL, /* 操作模式。*/

Adafruit_BMP280::SAMPLING_X2, /* 温度过采样 */

Adafruit_BMP280::SAMPLING_X16, /* 压力过采样 */

Adafruit_BMP280::FILTER_X16, /* 过滤。 */

Adafruit_BMP280::STANDBY_MS_500); /* 待机时间。*/

}

void loop() {

Serial.print(F("Temperature = "));

Serial.print(bmp.readTemperature());

Serial.println("*C");

lcd.setCursor(0,0);

lcd.print("温度= ");

lcd.print(bmp.readTemperature());


Serial.print(F("压力 = "));

Serial.print(bmp.readPressure());

Serial.println("Pa");

lcd.setCursor(0,1);

lcd.print("按=");

lcd.print(bmp.readPressure());

Serial.print(F("大约高度 = "));

Serial.print(bmp.readAltitude(1018)); /* 调整为当地预测!*/

Serial.println("m");

序列号.println();

延迟(2000);

}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 压力传感器
    +关注

    关注

    34

    文章

    2058

    浏览量

    162581
  • Arduino
    +关注

    关注

    184

    文章

    6428

    浏览量

    184843
  • BMP280
    +关注

    关注

    1

    文章

    20

    浏览量

    5571
收藏 人收藏

    评论

    相关推荐

    BMP280压力温度传感器的驱动设计与实现

    压力和温度监测在嵌入式系统开发中是非常常见的需求,特别是对环境大气压力和温度的检测需求就更常见了。我们一般都会选择一些封装较小操作比较方便的压力传感器BMP280就是满足这一要求的器
    发表于 12-09 14:32 1939次阅读
    <b class='flag-5'>BMP280</b><b class='flag-5'>压力</b>温度<b class='flag-5'>传感器</b>的驱动设计与实现

    【Ti SimpleLink SensorTag试用体验】+ SensorTag BMP280气压传感器服务加入

    是0x077。加入服务:建立任务: 过程和之前是一致,我就简单的说一下。加入服务,下图就是bmp280的所有服务。 sensorBmp280Read读取传感器值。 读出温度和压力传感器
    发表于 05-17 12:47

    【TI SimpleLink SensorTag试用体验】+BMP280压力传感器

    压力传感器具有IIC和SPI两种数字接口,开发时可根据所需挑选。采样速率可以独立地选择1,2,4,8倍和16倍的采样率。使传感器可以非常灵活的编程以适应应用和电源管理要求。具体参数及应用可以参考datasheet。
    发表于 06-12 23:07

    测量BMP280大气压传感器有什么用呢

    测量BMP280大气压传感器有什么用呢?如何去编写BMP280大气压传感器的编程代码呢?
    发表于 12-01 06:32

    通过BMP280气压/温度传感器模块测量大气压和温度

    ()函数在电脑串口调试终端打印输出。气压:气压是作用在单位面积上的大气压力。气压的国际制单位是帕斯卡,简称帕,符号是Pa。气象学中,人们一般用千帕(kPa)、或使用百帕(hpa)作为单位。二、 传感器参数配置概述Core提供的库函数默认
    发表于 01-07 06:40

    【RVBoards-哪吒】Lab4:大气压强传感器BMP280

    projects for Allwinner D1 SBC (github.com)编译:make测试:./runtest.sh大气压强传感器BMP280模块连接图如下,具体请查看原
    发表于 01-15 09:50

    GY-BMP280-3.3的相关资料推荐

    器件可用在如移动电话、GPS 模块或手表等电池供电型设备中。与上代产品相同,BMP180、BMP280 也基于Bosch 成熟的压阻式压力传感器技术,具有高确度和线性度,以及长期稳定性
    发表于 01-26 07:34

    如何Esp-01连接BMP280传感器

    如何 BMP280 传感器连接到 ESP-01?
    发表于 05-25 08:28

    BMP280温度和压力传感器在NodeMCU ESP8266板上工作,无法从BMP280获得任何输出是怎么回事?

    大家好 试图让 BMP280 温度和压力传感器在我的 NodeMCU ESP8266 板上工作,但我似乎遇到了问题! 昨天设法让它在 Arduino 上正常工作,但是当我在 ESP8266 上运行
    发表于 05-30 07:15

    BOSCH气压传感器BMP280数据手册

    BOSCH气压传感器BMP280数据手册
    发表于 01-19 10:38 0次下载

    BMP280气压传感器的特点性能及应用

    产品相同,BMP180、BMP280 也基于Bosch 成熟的压阻式压力传感器技术,具有高确度和线性度,以及长期稳定性和很高的 EMC 稳健性。
    的头像 发表于 05-13 15:12 1.8w次阅读

    BMP280数字压力传感器的用户手册免费下载

    罗伯特博世是汽车和消费者应用压力传感器的世界市场领导者。博世专有的APSM(高级多孔硅膜)MEMS制造工艺完全兼容CMOS,允许在全硅工艺中密封空腔。BMP280基于博世成熟的压阻式压力传感器技术,具有高电磁兼容性、高精度、线性
    发表于 05-28 17:07 181次下载
    <b class='flag-5'>BMP280</b>数字<b class='flag-5'>压力传感器</b>的用户手册免费下载

    BMP280气压传感器的制作

    在此示例中,将以下BMP280引脚分别连接Arduino,VCC到3.3V,GND到GND,SCL到A5,SDA到A4。
    的头像 发表于 10-31 17:32 6612次阅读

    BMP280气压传感器使用指南

    博主最近在调试 bmp280 气压传感器
    的头像 发表于 04-17 18:02 8718次阅读
    <b class='flag-5'>BMP280</b>气压<b class='flag-5'>传感器</b>使用指南

    bmp280气压传感器模块例程

    BMP280 气压传感器是一种高精度的数字气压传感器,可以用于测量大气压力、温度和高度。它具有低功耗、高线性度和高分辨率的特点,适用于各种应用场景,如天气站、室内气压监测、气象预报和高
    的头像 发表于 12-18 13:51 756次阅读