Arduino大气压强传感器BMP280实验

170 阅读2分钟

硬件准备

Arduino Uno 在这里插入图片描述(Arduino不限同时适用于Mege2560,nano等) BMP280大气压强传感器 在这里插入图片描述

接线部分

BMP280引脚展示 在这里插入图片描述

ArduinoBMP280
3.3VVCC
GNDGND
13SCL
12SDA
11CSB
10SDO

注意!!! 不要接入5V电压,以免烧坏BMP280

代码部分

BMP280库文件配置

在Arduino管理库中下载BMP280库文件 在这里插入图片描述

代码部分

定义引脚使用(不同型号,或者有需要可以修改引脚的定义)

/*定义BMP280引脚*/
#define BMP_SCK 13   //SCL引脚 
#define BMP_MISO 10   //SDO引脚
#define BMP_MOSI 12   //SDA引脚
#define BMP_CS 11     //CSB引脚

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

BMP280大气压强传感器有一个初始化检测SPI通讯步骤

void setup() {
  Serial.begin(9600);     //设置波特率
  Serial.println(F("BMP280传感器初始化检测"));
  Serial.println(F("BMP280传感器检测成功"));
  /*检测SPI总线通讯*/
  if (!bmp.begin()) {  
    Serial.println(F("BMP280传感器初始化失败"));
    while (1);
  }
}

大气压强串口读取计算

Serial.print(F("当前海拔高度 = "));
    Serial.print(bmp.readAltitude(1013.25));
    Serial.println(" M");   

完整代码

#include <Wire.h>     
#include <SPI.h>      //SPI总线库

#include <Adafruit_Sensor.h>  
#include <Adafruit_BMP280.h>      //BMP280库

/*定义BMP280引脚*/
#define BMP_SCK 13   //SCL引脚 
#define BMP_MISO 10   //SDO引脚
#define BMP_MOSI 12   //SDA引脚
#define BMP_CS 11     //CSB引脚

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

/*传感器初始化检测*/
void setup() {
  Serial.begin(9600);     //设置波特率
  Serial.println(F("BMP280传感器初始化检测"));
  Serial.println(F("BMP280传感器检测成功"));
  /*检测SPI总线通讯*/
  if (!bmp.begin()) {  
    Serial.println(F("BMP280传感器初始化失败"));
    while (1);
  }
}

void loop() {
    Serial.print(F("当前温度:"));
    Serial.print(bmp.readTemperature());
    Serial.println(" *C");    
    Serial.print(F("当前气压值 = "));
    Serial.print(bmp.readPressure());
    Serial.println(" Pa");
    Serial.print(F("当前海拔高度 = "));
    Serial.print(bmp.readAltitude(1013.25));
    Serial.println(" M");   
    delay(800);     //延时检测
}

打开串口监视器。设置波特率9600,可以查看当前检测数据 在这里插入图片描述以上数据根据当前百度地图查询,接近符合,我本人住的地方就是高原地区

祝你顺利!!!