如果您想构建自己的温度监测系统或测量无人机的高度,或者只是想测量您所在地区的大气压力,那么您在项目中使用的最佳模块之一就是bmp280 压力传感器模块。bmp280是绝对压力和温度监测传感器,是bmp085、bmp180、bmp183传感器的升级版。为什么叫升级版?它将在以下各节中讨论。
bmp280 传感器模块可以与 arduino、pic、avr 等微控制器一起使用。对于这个项目,我们将使用arduino uno 和 bmp280以及 lcd 16x2 显示模块来显示温度和压力值。在将 bmp280 与 arduino 连接之前,我们需要下载 adafruit 开发的bmp280 arduino 库。
所需组件
阿杜诺
bmp280
连接电线
面包板
液晶显示器- 16x2
bmp280 压力传感器模块:
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连接的电路图如下所示。
传感器的 vcc 和 gnd 引脚连接到 arduino 的 3v3 和 gnd 引脚。传感器的 scl 和 sda 引脚连接到 arduino 板的 a5 和 a4。lcd连接如下
将 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)为初始位置,连续打印数据。下一个数据占据下一列的位置,并且该过程继续进行,直到它到达行的末尾并移动到下一行。
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);
}
三星Galaxy S11将配备5倍光学变焦和108MP相机,预计2020年2月发布
美格智能5G模组SRM815助力新石器无人车火爆进博会
能否找到ABBA型号BRC15A0别的性价比高的品牌替换?
利用PLC自动控制原理解决控制中采集慢的问题
Silicon Labs荣获权威的Somfy供应商创新大奖
将BMP280压力传感器模块与Arduino连接的方法
【服务器数据恢复】XFS文件系统重装系统导致分区消失的数据恢复案例
微软智能云 Azure为落户企业发展壮大提供强有力的支持和保障
美国高通已准备好力推AllJoyn近距离通讯技术
UPS电源常用的两种计算方法分享
自耦变压器的优缺点
腾讯企鹅极光快投评测 148元的价格真心不贵
WaveSense推出自动驾驶汽车探地雷达,改善自动车辆导航
非隔离AC变DC 220V变5V芯片-WD5202
用比较器制作的双稳态开关,是如何工作的?
电容器隔开直流和通交流电路图
有猫腻,是谁动了移动电源的“芯”?
“区块链+文娱”将成为各大行业抢占市场先机的新风口
COB小间距显示技术解决了SMD分立器件LED小间距显示技术的痛点
畅行全球,美格智能SLM750模组锻造出海核心优势