zoukankan      html  css  js  c++  java
  • 如何将BMP280气压传感器模块与Arduino开发板进行连接

    如果您想要搭建属于自己的温度监控系统或测量无人机的飞行高度,或者只是想测量您所在区域的大气压力,那么BMP280气压传感器模块是您在项目中使用的最佳选择之一。 BMP280是绝对气压和温度传感器,是BMP085、BMP180、BMP183传感器的升级版。为什么称为升级版本?将在以下各节中进行讨论。

    BMP280传感器模块可与Arduino、PIC、AVR等微控制器一起使用。在本篇文章中,我们将使用Arduino Uno开发板连接BMP280传感器,并在LCD1602显示模块上显示温度和压力值。在将BMP280与Arduino连接之前,我们需要下载Adafruit开发的BMP280 Arduino库。单击此Adafruit BMP280库链接以打开相应的Github页面,然后将头文件添加到Arduino IDE。

    所需组件

    ● Arduino开发板

    ● BMP280传感器模块

    ● 连接线

    ● 面包板

    ● 液晶屏1602

    BMP280压力传感器模块

    BMP280传感器模块的最小电压(VDD)为1.71V,而早期版本的传感器模块的工作电压为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传感器模块包括三种电源模式:睡眠模式(Sleep Mode)、强制模式(Forced Mode)和正常模式(Normal Mode)。在睡眠模式下,不执行任何测量,并且功耗最小。在强制模式下,将根据所选的测量和过滤器选项执行一次测量。正常模式在测量和待机时间之间连续循环,循环时间将由Tstandby定义。待机模式下的电流略高于睡眠模式。

    Arduino与BMP280连接的电路图

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

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

    BMP280与Arduino连接的程序

    在本文的末尾处给出了完整的BMP280 Arduino代码,可以直接上传到Arduino开发板。

    包含这些库是为了启用特殊函数。 #include <Adafruit_BMP280.h>头文件,我们可以直接读取来自传感器的值。 #include <Wire.h>头文件我们可以使用I2C通信。 #include <LiquidCrystal.h>标头用于访问LCD的特殊函数,如lcd.print()Lcd.setCursor()等。可以使用上面提供的链接下载这些头文件。下载的文件将是zip格式。现在打开Arduino,选择Sketch>include library>Add.zip library,添加下载的文件。

    #include <Wire.h>
    #include <SPI.h>
    #include <Adafruit_BMP280.h>
    #include <LiquidCrystal.h>

    创建对象BMP上。创建一个目标文件以访问函数。

    Adafruit_BMP280 bmp; // I2C
    

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

    LiquidCrystal LCD(9, 8, 5, 4, 3, 2);
    

    初始化LCD和串口通讯。

    void setup() {
      lcd.begin(16,2);
      Serial.begin(9600);
      Serial.println(F("BMP280 test"));
      lcd.print("Welcome to ");
      lcd.setCursor(0,1);
      lcd.print("CIRCUIT DIGEST");
      delay(1000);
      lcd.clear();
      if (!bmp.begin()) {
        Serial.println(F("Could not find a valid BMP280 sensor, check the wiring!"));
        while (1);
      }
    

    当bmp对象的初始化失败时,调用以下函数。

     /* Default settings from datasheet. */
      bmp.setSampling(Adafruit_BMP280::MODE_NORMAL,     /* Operating Mode. */
                      Adafruit_BMP280::SAMPLING_X2,     /* Temp. oversampling */
                      Adafruit_BMP280::SAMPLING_X16,    /* Pressure oversampling */
                      Adafruit_BMP280::FILTER_X16,      /* Filtering. */
                      Adafruit_BMP280::STANDBY_MS_500); /* Standby time. */
    }
    

    以下代码在串口监视器上打印温度,用于调试目的。

    void loop() {
        Serial.print(F("Temperature = "));
        Serial.print(bmp.readTemperature());
        Serial.println(" *C");
    

    函数bmp.readPressurebmp.readTemprature用于调用特殊函数以及返回温度和压力值。

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

    Arduino BMP280压力传感器连接的工作过程

    函数bmp.readTemprature()和bmp.readPressure()用于返回温度和气压值。 lcd.setCursor将LCD的光标设置在液晶屏上所需的位置。 lcd.print命令从设置的位置打印数据。如果默认情况下没有为LCD设置位置,则它将(0,0)作为初始位置,并连续打印数据。下一个数据将占据下一个列的位置,并且过程将继续直到到达行末尾并移至下一行。

    BMP280可用于飞行玩具、手机、平板电脑、PC、GPS设备、便携式医疗设备、家庭气象站等。通过遵循此过程并使用头文件和某些特殊函数,我们可以轻松地将BMP280与Arduino进行连接。

    原文链接:

    如何将BMP280气压传感器模块与Arduino开发板进行连接 - Arduino专区 - 一板网电子技术论坛

    更多有关Arduino开发板的文章,请关注微信公众号“一板网电子技术论坛”。

    一板网论坛微信公众号

  • 相关阅读:
    go多平台编译打包
    正则表达式
    Java 线程安全问题的本质
    Thread interrupt() 线程中断的详细说明
    git -c diff.mnemonicprefix=false -c core.quotepath=false --no-optional-locks push -v --tags origin master:master Logon failed, use ctrl+c to cancel basic credential prompt.
    kafka 消费组功能验证以及消费者数据重复数据丢失问题说明 3
    kafka 副本机制和容错处理 -2
    Mat使用详解
    MySql Binlog 说明 & Canal 集成MySql的更新异常说明 & MySql Binlog 常用命令汇总
    ElasticSearch 集群基本概念及常用操作汇总(建议收藏)
  • 原文地址:https://www.cnblogs.com/woshiziyu/p/12121813.html
Copyright © 2011-2022 走看看