【BMP280 Arduino求助】 I²C 方式读取 bmp280-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11607|回复: 21

[未解决] 【BMP280 Arduino求助】 I²C 方式读取 bmp280

[复制链接]
发表于 2019-7-9 12:34 | 显示全部楼层 |阅读模式
BME280同时支持两种连接方式: I²C 和 SPI

其中SPI已做过实验,现求助 I²C 的实验程序,谢谢师傅

04 (12).jpg




发表于 2020-3-14 18:33 | 显示全部楼层
不知道大佬问题解决了没,小弟我今天也遇到了类似的问题,查手册,找到了解决方案,希望能帮到大佬。
在手册28页的5.1里写了IIC/SPI模式选择引脚CSB的具体用法:在模块上电时CSB引脚接到VDDIO上就可以将模式选择到IIC输出上,否则就是SPI模式,因为芯片的VDDIO引脚在模块上是直接连接到VCC上的,所以把CSB引脚和VCC一起连到3.3V上就行。还有一个引脚是SDD,在IIC模式下的作用是地址选择(见手册35页6.1),模块原理图里,该引脚接10K下拉电阻,BMP280地址被选到0x76上(若外接高电平就选到0x77上,见手册28页5.2)。最后把程序改一下,(我用的是BMP280_DEV的库)把bmp280.begin()改成bmp280.begin(BMP280_I2C_ALT_ADDR)或者bmp280.begin(0x76)选好对应地址,然后上传到板子上就成功啦。
总结一下:在之前的接线基础上将CSB接到3.3V上,然后把程序里模块初始化的地址改到0x76,问题应该就能解决了。
小弟第一次在社区回复帖子,如有不当,还请大佬多多见谅
发表于 2020-3-14 18:40 | 显示全部楼层
不连CSB也行,忘了CBS上还有个上拉电阻呢
 楼主| 发表于 2020-3-14 19:23 | 显示全部楼层
陌羽小Z 发表于 2020-3-14 18:33
不知道大佬问题解决了没,小弟我今天也遇到了类似的问题,查手册,找到了解决方案,希望能帮到大佬。
在手 ...

谢谢,这是去年做过的一个实验,后来忙着其他系列实验,都忘了,呵呵

【Arduino】108种传感器模块系列实验(27)-BMP280气压传感器

https://www.arduino.cn/thread-89010-1-1.html
 楼主| 发表于 2020-3-14 19:24 | 显示全部楼层
陌羽小Z 发表于 2020-3-14 18:33
不知道大佬问题解决了没,小弟我今天也遇到了类似的问题,查手册,找到了解决方案,希望能帮到大佬。
在手 ...

有代码吗,发来学习一下
发表于 2020-3-14 22:02 | 显示全部楼层
用到了BMP280_DEV的库,可以在管理库里下载到,如果不方便下载,就把附件 BMP280_DEV.zip (29.58 KB, 下载次数: 30) 解压到Arduino库文件夹里。代码其实就是把示例改了一下啦,如下:
[mw_shl_code=arduino,true]/* 实验:IIC通信 Forced模式读取BMP280
*   Arduino  BMP280
*    3.3V - VCC
*    GND - GND
*      A5  - SCL
*      A4  - SDA
*/
#include <BMP280_DEV.h>

float temperature, pressure, altitude;
BMP280_DEV bmp280;

void setup()
{
  Serial.begin(115200);
  //程序默认的地址是0x77,需要将SDD引脚上拉,但模块中SDD引脚带了下拉电阻,需要在这里设置地址为0x76,即 BMP280_I2C_ALT_ADDR
  bmp280.begin(BMP280_I2C_ALT_ADDR);
}

void loop()
{
  //唤醒BMP280,提出测量要求
  bmp280.startForcedConversion();
  //获取结果并输出
  if (bmp280.getMeasurements(temperature, pressure, altitude))
  {
    Serial.print(temperature);
    Serial.print(F("*C   "));
    Serial.print(pressure);
    Serial.print(F("hPa   "));
    Serial.print(altitude);
    Serial.println(F("m"));
  }
}[/mw_shl_code]
发表于 2020-3-14 22:08 | 显示全部楼层
eagler8 发表于 2020-3-14 19:23
谢谢,这是去年做过的一个实验,后来忙着其他系列实验,都忘了,呵呵

【Arduino】108种传感器模块系列实 ...

顺便感谢一下大佬,好多模块都是从您的贴子里学的
 楼主| 发表于 2020-3-15 05:46 | 显示全部楼层
陌羽小Z 发表于 2020-3-14 22:02
用到了BMP280_DEV的库,可以在管理库里下载到,如果不方便下载,就把附件解压到Arduino库文件夹里。代码其 ...

谢谢,我今天试试.......
 楼主| 发表于 2020-3-15 05:47 | 显示全部楼层
陌羽小Z 发表于 2020-3-14 22:08
顺便感谢一下大佬,好多模块都是从您的贴子里学的

早上好,谢谢鼓励,多交流
 楼主| 发表于 2020-3-15 11:21 | 显示全部楼层
本帖最后由 eagler8 于 2020-3-15 11:28 编辑
陌羽小Z 发表于 2020-3-14 22:02
用到了BMP280_DEV的库,可以在管理库里下载到,如果不方便下载,就把附件解压到Arduino库文件夹里。代码其 ...

这个库不错,可以用了

11.jpg
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 18:41 , Processed in 0.086610 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表