BMP280
SensorPraeziser Luftdruck- und Temperatursensor von Bosch. Kommuniziert ueber I2C. Aus dem Luftdruck kann man die Hoehe ueber dem Meeresspiegel berechnen!
Technische Daten
| Kategorie | Luftdruck/Temperatur |
|---|---|
| Schnittstelle | I2C (auch SPI moeglich) |
| Pinbelegung | VCC, GND, SCL, SDA |
| Anzahl Pins | 4 |
| Messgroesse | Luftdruck, Temperatur |
| Messbereich | Druck: 300–1100 hPa, Temperatur: -40 bis 85 °C |
| Genauigkeit | Druck: +-1 hPa, Temperatur: +-1 °C |
| Betriebsspannung | 1.8V – 3.6V |
| Stromverbrauch | 0.3 mA |
| Datenblatt | PDF oeffnen |
Anschluss
Arduino Uno R3
5V=VCC (Breakout hat Regler), A4=SDA, A5=SCL, GND=GND
Hinweise: I2C: SDA an A4, SCL an A5 (beim Uno fest). Adresse 0x76 oder 0x77.
Codebeispiele
Luftdruck und Temperatur messen (I2C) Mittel
Der BMP280 misst Luftdruck und Temperatur ueber die I2C-Schnittstelle. I2C braucht nur 2 Datenleitungen (SDA und SCL) und kann mehrere Geraete an denselben Pins betreiben. Aus dem Luftdruck kann man sogar die ungefaehre Hoehe berechnen!
Benoetigte Bibliotheken: Adafruit_BMP280.h, Adafruit_Sensor.h (im Library Manager suchen)
// ============================================
// BMP280: Luftdruck und Temperatur messen
// ============================================
// Anschluss (I2C): VCC=5V, GND=GND, SDA=A4, SCL=A5
#include <Wire.h> // I2C-Kommunikation
#include <Adafruit_BMP280.h> // BMP280-Bibliothek
Adafruit_BMP280 bmp; // Sensor-Objekt
void setup() {
Serial.begin(9600);
Serial.println("BMP280 Sensor wird gesucht...");
// Sensor initialisieren (0x76 ist die Standard-I2C-Adresse)
if (!bmp.begin(0x76)) {
Serial.println("FEHLER: BMP280 nicht gefunden!");
Serial.println("Pruefen: Verkabelung, I2C-Adresse (0x76 oder 0x77?)");
Serial.println("Tipp: I2C-Scanner-Sketch laufen lassen!");
while (1); // Programm anhalten
}
Serial.println("BMP280 gefunden und bereit!");
Serial.println("-------------------------");
}
void loop() {
// Temperatur auslesen
float temperatur = bmp.readTemperature();
Serial.print("Temperatur: ");
Serial.print(temperatur);
Serial.println(" °C");
// Luftdruck auslesen (in Pascal, wir rechnen in hPa um)
float druck = bmp.readPressure() / 100.0; // Pa -> hPa
Serial.print("Luftdruck: ");
Serial.print(druck);
Serial.println(" hPa");
// Ungefaehre Hoehe berechnen (Referenz: 1013.25 hPa auf Meereshoehe)
float hoehe = bmp.readAltitude(1013.25);
Serial.print("Hoehe: ");
Serial.print(hoehe);
Serial.println(" m (ungefaehr)");
Serial.println("-------------------------");
delay(2000);
}
Haeufige Probleme
BMP280 wird nicht erkannt (I2C)
Symptom: Fehlermeldung 'BMP280 nicht gefunden' beim Start
Ursache: Falsche I2C-Adresse, SDA/SCL vertauscht, oder Kabel locker
Loesung:
Vermeidung: Zuerst immer den I2C-Scanner laufen lassen wenn ein I2C-Bauteil nicht geht.
Projekte mit diesem Bauteil
Probleme mit BMP280?
KI-Lernhelfer fragen