- Erforderliche Komponenten
- Drucksensormodul BMP280:
- Schaltplan zur Schnittstelle BMP280 mit Arduino:
- Arduino-Programm zur Schnittstelle von BMP280 mit Arduino:
- Arbeiten des Arduino BMP280 Drucksensor-Schnittstellenprojekts
Wenn Sie ein eigenes Temperaturüberwachungssystem bauen oder die Höhe Ihrer Drohne messen oder einfach nur den atmosphärischen Druck in Ihrer Region messen möchten, ist das Drucksensormodul BMP280 eines der besten Module für Ihr Projekt. BMP280 ist ein absoluter Druck- und Temperaturüberwachungssensor, bei dem es sich um die aktualisierte Version der Sensoren BMP085, BMP180 und BMP183 handelt. Warum heißt es eine aktualisierte Version? Es wird in den folgenden Abschnitten erläutert. Wir haben die ältere Version BMP180 mit Arduino bereits in einem unserer vorherigen Tutorials verwendet.
Das BMP280-Sensormodul kann zusammen mit Mikrocontrollern wie Arduino, PIC, AVR usw. verwendet werden. Für dieses Projekt verwenden wir Arduino Uno mit BMP280 zusammen mit einem LCD 16x2-Anzeigemodul, um Temperatur- und Druckwerte anzuzeigen. Bevor wir den BMP280 mit Arduino verbinden, müssen wir die von Adafruit entwickelte BMP280 Arduino-Bibliothek herunterladen. Klicken Sie auf diesen Link zur Adafruit BMP280-Bibliothek, um die entsprechende Github-Seite zu öffnen und die Header-Datei zu Ihrer Arduino-IDE hinzuzufügen.
Erforderliche Komponenten
- Arduino
- BMP280
- Kabel anschließen
- Brotbrett
- LCD-16x2
Drucksensormodul BMP280:
Das BMP280-Sensormodul arbeitet mit einer Mindestspannung (VDD) von 1,71 V, während die Sensormodule der Vorgängerversion mit 1,8 V (VDD) arbeiten. Wenn es um den Stromverbrauch geht, verbraucht BMP280 2,7 uA, während der BMP180 12 uA verbraucht und BMP183 und BMP085 jeweils 5 uA verbrauchen. Der BMP280 unterstützt auch neue Filtermodi. Das BMP280-Sensormodul unterstützt die Protokolle I2c und SPI, während der verbleibende Sensor entweder I2c oder SPI unterstützt. Das BMP280-Sensormodul hat eine Genauigkeit von ± 0,12 hPaDies entspricht einem Höhenunterschied von ± 1 m. Aufgrund dieser Hauptmerkmale wird es hauptsächlich in verschiedenen Anwendungen verwendet. Der BMP-Sensor besteht aus einem Drucksensorelement, einem Feuchtigkeitssensorelement und einem Temperatursensorelement, die ferner mit dem Druckfrontend, dem Feuchtigkeitsfrontend und dem Temperaturfrontend verbunden sind. Diese Front-End-ICs sind analoge Empfindlichkeitsverstärker, die zur Verstärkung kleiner Signale verwendet werden. Der Ausgang dieser analogen Front-End-ICs wird als Eingangssignal dem ADC zugeführt. Dabei werden die Analogwerte in digitale Spannung umgewandelt und diese Spannung den Logikschaltungen zur weiteren Schnittstelle mit der Außenwelt zugeführt.
Das BMP280-Sensormodul besteht aus drei Leistungsmodi: Schlafmodus, Zwangsmodus und Normalmodus. Im Schlafmodus werden keine Messungen durchgeführt und der Stromverbrauch ist minimal. Im erzwungenen Modus wird eine einzelne Messung gemäß den ausgewählten Mess- und Filteroptionen durchgeführt. Der Normalmodus wechselt kontinuierlich zwischen Messung und Standby-Zeit, und die Zykluszeit wird von Tstandby definiert. Der Strom im Standby-Modus ist etwas höher als im Ruhemodus.
Schaltplan zur Schnittstelle BMP280 mit Arduino:
Das Schaltbild zur Verbindung des Arduino mit dem BMP280- Sensor und dem LCD ist unten dargestellt. Wenn Sie mit Arduino und LCD noch nicht vertraut sind, können Sie in diesem Arduino LCD-Tutorial nachlesen, wie Sie Arduino mit LCD-Displays verwenden.
Die VCC- und GND-Pins des Sensors sind mit den 3v3- und GND-Pins des Arduino verbunden. Die SCL- und SDA-Pins des Sensors sind mit A5 und A4 der Arduino-Karte verbunden. Die LCD-Anschlüsse sind wie folgt
LCD-Pin-Name |
Arduino Pin |
VSS und RW |
GND |
RS |
D9 |
E. |
D8 |
D4, D5, D6, D7 |
D5, D4, D3, D2 |
Arduino-Programm zur Schnittstelle von BMP280 mit Arduino:
Den vollständigen BMP280-Arduino-Code finden Sie unten auf dieser Seite, der direkt auf Ihr Arduino-Board hochgeladen werden kann. Die Erklärung dafür ist unten angegeben
Diese Bibliotheken sind enthalten, um die Sonderfunktionen zu aktivieren. In den # include-Header-Dateien können wir die vom Sensor kommenden Werte direkt lesen. Das #include
#einschließen
Erstellen eines Objekt-BMP für Adafruit_BMP280. Für den Zugriff auf Sonderfunktionen wird eine Objektdatei erstellt.
Adafruit_BMP280 bmp; // I2C
Einstellen der Pins des Arduino für die Kommunikation mit dem LCD. Mit diesen Pins werden Daten übertragen.
LiquidCrystal LCD (9, 8, 5, 4, 3, 2);
Initialisierung des LCD und der seriellen Kommunikation.
void setup () {lcd.begin (16,2); Serial.begin (9600); Serial.println (F ("BMP280-Test")); lcd.print ("Willkommen bei"); lcd.setCursor (0,1); lcd.print ("CIRCUIT DIGEST"); Verzögerung (1000); lcd.clear (); if (! bmp.begin ()) {Serial.println (F ("Es konnte kein gültiger BMP280-Sensor gefunden werden, überprüfen Sie die Verkabelung!")); während (1); }}
Diese Funktion funktioniert, wenn die Initialisierung des bmp-Objekts fehlschlägt.
/ * Standardeinstellungen aus dem Datenblatt. * / bmp.setSampling (Adafruit_BMP280:: MODE_NORMAL, / * Betriebsmodus. * / Adafruit_BMP280:: SAMPLING_X2, / * Temp. Überabtastung * / Adafruit_BMP280:: SAMPLING_X16, / * Drucküberabtastung * / Adafruit_BMP280:: /. * / Adafruit_BMP280:: STANDBY_MS_500); / * Standby-Zeit. * /}
Dieser Teil des Codes druckt die Temperatur auf dem seriellen Monitor und dient zu Debugging-Zwecken.
void loop () {Serial.print (F ("Temperature =")); Serial.print (bmp.readTemperature ()); Serial.println ("* C");
Mit den Funktionen bmp.readPressure und bmp.readTemprature werden Sonderfunktionen aufgerufen und die Temperatur- und Druckwerte zurückgegeben.
lcd.print (bmp.readTemperature ()); lcd.print (bmp.readPressure ());
Arbeiten des Arduino BMP280 Drucksensor-Schnittstellenprojekts
Die Funktionen bmp.readTemprature () und bmp.readPressure () werden verwendet, um die Temperatur- und Druckwerte zurückzugeben. Diese Funktionen sind eine Gruppe von Anweisungen, die eine spezielle Aufgabe ausführen, in unserem Fall die Rückgabe von Temperatur- und Druckdateien. Diese Funktionen werden mit den Funktionen bmp.readTemprature () und bmp.readPressure () aufgerufen. Der lcd.setCursor setzt den Cursor des LCD auf die gewünschte Position auf dem Bildschirm. Der lcd.print Befehl druckt die Daten von der vom Programmierer festgelegten Position. Wenn für das LCD standardmäßig keine Position festgelegt ist, wird (0,0) als Anfangsposition verwendet und die Daten werden kontinuierlich gedruckt. Die nächsten Daten nehmen die Position der nächsten Spalte ein, und die Prozedur wird fortgesetzt, bis sie das Ende der Zeile erreicht und zur nächsten Zeile wechselt.
Der BMP280 kann in fliegenden Spielzeugen, Mobiltelefonen, Tablets, PCs, GPS-Geräten, tragbaren Gesundheitsgeräten, Wetterstationen zu Hause usw. verwendet werden. Durch Befolgen dieses Verfahrens und Verwenden von Header-Dateien und einigen speziellen Funktionen können wir BMP280 problemlos mit BMP280 verbinden der Arduino. Die vollständige Arbeit finden Sie auch in dem unten angegebenen Video. Ich hoffe, Ihnen hat dieses BMP280 Arduino-Tutorial gefallen und Sie haben etwas Nützliches gelernt. Wenn Sie Fragen haben, lassen Sie diese im Kommentarbereich unten oder nutzen Sie die Foren für andere technische Fragen.