如果您想构建自己的温度监控系统或测量无人机的高度,或者只是想测量您所在区域的大气压力,那么BMP280压力传感器模块就是您在项目中使用的最佳模块之一。BMP280是绝对压力和温度监控传感器,是BMP085,BMP180,BMP183传感器的升级版。为什么称为升级版本?将在以下各节中讨论。在先前的教程之一中,我们已经将旧版本的BMP180与Arduino一起使用。
BMP280传感器模块可与Arduino,PIC,AVR等微控制器一起使用。在此项目中,我们将结合使用带有BMP280的Arduino Uno和LCD 16x2显示模块,以显示温度和压力值。在将BMP280与Arduino接口之前,我们需要下载由Adafruit开发的BMP280 Arduino库。单击此Adafruit BMP280库链接以打开相应的Github页面,并将头文件添加到Arduino IDE。
所需组件
- Arduino的
- BMP280
- 连接线
- 面包板
- 液晶屏-16x2
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传感器模块包括三种电源模式:睡眠模式,强制模式和正常模式。在睡眠模式下,不执行任何测量,并且功耗最小。在强制模式下,将根据所选的测量和过滤器选项执行一次测量。正常模式在测量和待机时间之间连续循环,循环时间将由Tstandby定义。待机模式下的电流略高于睡眠模式。
连接BMP280和Arduino的电路图:
连接Arduino与BMP280传感器和LCD的电路图如下所示。如果您对Arduino和LCD完全陌生,则可以查看此Arduino LCD教程以了解如何将Arduino与LCD显示器一起使用。
传感器的VCC和GND引脚连接到Arduino的3v3和GND引脚。传感器的SCL和SDA引脚连接到Arduino板的A5和A4。LCD连接如下
LCD引脚名称 |
Arduino引脚 |
VSS和RW |
地线 |
RS |
D9 |
Ë |
D8 |
D4,D5,D6,D7 |
D5,D4,D3,D2 |
Arduino程序与Arduino接口BMP280:
完整的BMP280 Arduino代码位于页面底部,可以直接上传到Arduino开发板。相同的解释如下
包含这些库是为了启用特殊功能。#include头文件我们可以直接读取来自传感器的值。#include
#包括
在对象BMP上为Adafruit_BMP280创建。创建一个目标文件以访问特殊功能。
Adafruit_BMP280 bmp; // I2C
设置Arduino的引脚以与LCD通信。使用这些引脚将传输数据。
液晶液晶(9,8,5,4,3,2);
初始化LCD和串行通讯。
void setup(){lcd.begin(16,2); Serial.begin(9600); Serial.println(F(“ BMP280 test”)); 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_X.16 * / Adafruit_BMP280:: STANDBY_MS_500); /* 待机时间。* /}
这段代码在串行监视器上打印温度,用于调试目的。
void loop(){Serial.print(F(“ Temperature =”)); 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.print 命令从程序员设置的位置打印数据。如果默认情况下没有为LCD设置位置,则它将(0,0)作为初始位置,并连续打印数据。下一个数据将占据下一个列的位置,并且过程将继续直到到达行末尾并移至下一行。
BMP280可用于飞行玩具,手机,平板电脑,PC,GPS设备,便携式医疗设备,家庭气象站等。通过遵循此过程并使用头文件和某些特殊功能,我们可以轻松地将BMP280与Arduino。完整的工作原理也可以在下面的视频中找到,希望您喜欢BMP280 Arduino教程并学到了一些有用的知识。如果您有任何疑问,请将其留在下面的评论部分,或将论坛用于其他技术问题。