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 }
本文来自博客园,作者:loadbxh,转载请注明原文链接:https://www.cnblogs.com/loadbxh/articles/12034907.html

浙公网安备 33010602011771号