Arduino UNO 之 BMP280

连接协议:SPI IIC

连接方式:

1.BME280

VCC---3.3v
GND---gnd
SCL---13
SDA---11
CSB---10
SDO---12

2.SSD1306

SDA---A1

SCL---A2

VCC---5V

GND---GND

注意事项:

模块为3.3V供电.

连接选择Arduino默认SPI引脚

需要Adafruit_Sensor.h库和 Adafruit_BMP280.h库以及Serial支持

代码:

 1 /*
 2 需要 Adafruit_Sensor.h & Adafruit_BMP280.h
 3 VCC---3.3v
 4 GND---gnd
 5 SCL---13
 6 SDA---11
 7 CSB---10
 8 SDO---12
 9 */
10 
11 #include <Arduino.h>
12 #include <U8g2lib.h>
13 #ifdef U8X8_HAVE_HW_SPI
14 #include <SPI.h>
15 #endif
16 #ifdef U8X8_HAVE_HW_I2C
17 #include <Wire.h>
18 #endif
19 U8G2_SSD1306_128X64_NONAME_F_HW_I2C u8g2(U8G2_R2, /* reset=*/ U8X8_PIN_NONE);
20 #include <Wire.h>
21 #include <SPI.h>
22 #include <Adafruit_Sensor.h>  //需要导入两个Adafruit的库,可以在github上搜索
23 #include <Adafruit_BMP280.h>
24 #define BMP_SCK 13  //硬件连接,不需要改动
25 #define BMP_MISO 12
26 #define BMP_MOSI 11 
27 #define BMP_CS 10
28 
29 //Adafruit_BMP280 bmp; // I2C
30 //Adafruit_BMP280 bmp(BMP_CS); // hardware SPI
31 Adafruit_BMP280 bmp(BMP_CS, BMP_MOSI, BMP_MISO,  BMP_SCK);  //选择此模式
32 
33 void setup() {
34   Serial.begin(115200);
35   u8g2.begin();
36   u8g2.setFont(u8g2_font_shylock_nbp_t_all);
37   u8g2.clearBuffer();
38   u8g2.setCursor(0, 20);
39   u8g2.print("Initialization...");
40   u8g2.sendBuffer();
41   delay(1000);
42   if (!bmp.begin()) {  
43     u8g2.setFont(u8g2_font_shylock_nbp_t_all);
44     u8g2.clearBuffer();
45     u8g2.setCursor(0, 20);
46     u8g2.print("Error:The BMP280 sensor could not be found");
47     u8g2.setCursor(0, 30);
48     u8g2.print("The BMP280 sensor could not be found");
49     u8g2.sendBuffer();
50     while (1);
51   }
52 }
53 
54 void loop() {
55     u8g2.setFont(u8g2_font_missingplanet_t_all);
56     u8g2.clearBuffer();
57     u8g2.setCursor(0, 10);
58     u8g2.print("TEM:");
59     u8g2.setCursor(40, 10);
60     u8g2.print(bmp.readTemperature());
61     u8g2.setCursor(90, 10);
62     u8g2.print("C");
63 
64     u8g2.setCursor(0, 25);
65     u8g2.print("PRE:");
66     u8g2.setCursor(40, 25);
67     u8g2.print(bmp.readPressure()/1000);
68     u8g2.setCursor(90, 25);
69     u8g2.print("KPa");
70 
71     u8g2.setCursor(0, 40);
72     u8g2.print("ALT:");
73     u8g2.setCursor(40, 40);
74     u8g2.print(bmp.readAltitude(1013.25)); // this should be adjusted to your local forcase
75     u8g2.setCursor(90, 40);
76     u8g2.print("M");
77     u8g2.sendBuffer();
78     Serial.println(bmp.readAltitude(1013.25));
79     delay(1000);
80 }
posted @ 2019-12-13 14:27  loadbxh  阅读(730)  评论(3)    收藏  举报