Funktionen der Library MyBMP280
MyBMP280 MyBMP280(byte i2cAdd)
Funktion: Erzeugt eine neue Instanz mit der I2C-Schnittstelle
Parameter: i2cAdd: I2C-Adresse des Sensors
MyBMP280 MyBMP280(byte cs, byte interface)
Funktion: Erzeugt eine neue Instanz mit der Hardware-SPI-Schnittstelle (Uno-Pins: 11-13)
Parameter: cs: Chipselect-Pin (beim Uno: 1 <= cs <= 10)
interface: BMP280_SPI (nur zur Unterscheidung zur Instanz mit I2C-Schnittstelle)
bool isReady(void)
Funktion: Überprüft, ob der Sensor ansprechbar ist, indem die Chip-Identifikationsnummer (0x58) abgefragt wird
Parameter: keine
Rückgabe: TRUE, wenn Sensor ansprechbar ist, sonst FALSE
Bemerkung: Die Funktion prüft nur, ob in einem I2C-Bus der Bauteil ansprechbar bzw. vorhanden ist. Es wird vorausgesetzt, dass der I2C-Bus technisch prinzipiell funktioniert (keine offenen Busleitungen, Pullup-Widerstände richtig, kein Kurzschluss oder Masseschluss, etc.).
void init()
Funktion: Auslesen der Kalibrierungskoeffizienten aus dem Sensor und Setzen der in der Library voreingestellten Standardparameter oder der vor der init()-Funktion gesetzten Parameter oder Parametersätze
Parameter: keine
Rückgabe: keine
Bemerkung: Wenn vor der init()-Funktion keine Parameter oder Parametersätze gesetzt wurden, werden folgende Standardparameter beim Aufruf der Funktion gesetzt:
- NORMAL_MODE
- P_OVERSAMPLING_x8
- T_OVERSAMPLING_x2
- STANDBY_TIME_1000
- FILTER_COEFF_4
Bemerkung: Vor der init()_Funktion können einzelne Parameter geändert oder ein neuer Parametersatz gesetzt werden!
Beispiel:
//Aendern einzelner Parameter
bmp.setMode(BMP280_FORCED_MODE);
bmp.setPressOversampling(BMP280_P_OVERSAMPLING_x4);
//oder setzen eines Parametersatzes
bmp.setWeatherMonitoring();
bmp.init();
void startSingleMeas(void)
Funktion: Startet eine Einzelmessung und wechselt dann in den Sleep-Modus
Parameter: keine
Rückgabe: keine
float readTemp(void)
Funktion: Liest die gemessenen Rohwerte aus dem Sensor aus und berechnet mit Hilfe der Kalibrierungskoeffizienten die Temperatur
Parameter: keine
Rückgabe: Umgebungstemperatur [°C]
Achtung: Beim Aufruf der Funktion wird keine neue Messung durchgeführt, es werden nur die Rohwerte aus dem Speicherbereich des Sensors neu ausgelesen. Messungen selbst werden im Normal-Modus im Hintergrund zyklisch in Abhängigkeit der Einstellung der Parameter und im Forced-Modus bei Aufruf der Funktion startSingleMeas() ausgeführt!
float readPress(void)
Funktion: Liest die gemessenen Rohwerte aus dem Sensor aus und berechnet mit Hilfe der Kalibrierungskoeffizienten Temperatur und Druck (für die Berechnung des Drucks wird auch die Temperatur benötigt)
Parameter: keine
Rückgabe: Luftdruck [hPa] (Hektopascal) bzw. [mbar] (Millibar)
Achtung: Beim Aufruf der Funktion wird keine neue Messung durchgeführt, es werden nur die Rohwerte aus dem Speicherbereich des Sensors neu ausgelesen. Messungen selbst werden im Normal-Modus im Hintergrund zyklisch in Abhängigkeit der Einstellung der Parameter und im Forced-Modus bei Aufruf der Funktion startSingleMeas() ausgeführt!
float readReducedPress(int hoehe)
Funktion: Liest die gemessenen Rohwerte aus dem Sensor aus, berechnet mit Hilfe der Kalibrierungskoeffizienten Temperatur und Druck (für die Berechnung des Drucks wird auch die Temperaturberechnung benötigt) und berechnet anschließend daraus den - auf Meereshöhe - reduzierten Luftdruck
Parameter: hoehe: Höhe des Standortes über Meeresspiegel [m]
Rückgabe: Reduzierter Luftdruck [hPa] (Hektopascal) bzw. [mbar] (Millibar)
Achtung: Beim Aufruf der Funktion wird keine neue Messung durchgeführt, es werden nur die Rohwerte aus dem Speicherbereich des Sensors neu ausgelesen. Messungen selbst werden im Normal-Modus im Hintergrund zyklisch in Abhängigkeit der Einstellung der Parameter und im Forced-Modus bei Aufruf der Funktion startSingleMeas() ausgeführt!
void setMode(byte mode)
Funktion: Setzen des Betriebsmodus des Sensors
Parameter: mode: BMP280_NORMAL_MODE
BMP280_FORCED_MODE -> BMP280_SLEEP MODUS
BMP280_SLEEP_MODE
Rückgabe: keine
Bemerkung:
Wird der Sensor in den Forced-Modus gesetzt, vebleibt er für genau eine Messung in diesem Modus und wechselt dann in den Sleep-Modus!
Das Setzen von einzelnen Parametern muss vor der init()-Funktion erfolgen!
void setTempOversampling(byte osrs_t)
Funktion: Setzen des Wertes für Temperatur-Oversampling oder ausschalten der Temperaturmessung
Parameter: osrs_t: BMP280_T_OVERSAMPLING_x0 : Temperaturmessung ausgeschaltet
BMP280_T_OVERSAMPLING_x1 : Auflösung 16 Bit
BMP280_T_OVERSAMPLING_x2 : Auflösung 17 Bit
BMP280_T_OVERSAMPLING_x4 : Auflösung 18 Bit
BMP280_T_OVERSAMPLING_x8 : Auflösung 19 Bit
BMP280_T_OVERSAMPLING_x16 : Auflösung 20 Bit
Rückgabe: keine
Bemerkung: Das Setzen von einzelnen Parametern muss vor der init()-Funktion erfolgen!
void setPressOversampling(byte osrs_p)
Funktion: Setzen des Wertes für Druck-Oversampling oder ausschalten der Druckmessung
Parameter: osrs_p: BMP280_P_OVERSAMPLING_x0 : Druckmessung ausgeschaltet
BMP280_P_OVERSAMPLING_x1 : Auflösung 16 Bit -> Ultra geringe Stromaufn.
BMP280_P_OVERSAMPLING_x2 : Auflösung 17 Bit -> geringe Stromaufnahme
BMP280_P_OVERSAMPLING_x4 : Auflösung 18 Bit -> Standardauflösung
BMP280_P_OVERSAMPLING_x8 : Auflösung 19 Bit -> Hohe Auflösung
BMP280_P_OVERSAMPLING_x16 : Auflösung 20 Bit -> Ultra hohe Auflösung
Rückgabe: keine
Bemerkung: Das Setzen von einzelnen Parametern muss vor der init()-Funktion erfolgen!
void setStandbyTime(byte t_sb)
Funktion: Setzen des Wertes für die Standby-Zeit. Das ist jene Zeit, wo im Normal-Modus der Sensor nach einer Messung nicht aktiv ist, also keine Messungen durchführt werden:
Parameter: t_sb: BMP280_STANDBY_TIME_0p5 : Standby Zeit = 0,5 ms
BMP280_STANDBY_TIME_62p5 : Standby Zeit = 62,5 ms
BMP280_STANDBY_TIME_125 : Standby Zeit = 125 ms
BMP280_STANDBY_TIME_250 : Standby Zeit = 250 ms
BMP280_STANDBY_TIME_500 : Standby Zeit = 500 ms
BMP280_STANDBY_TIME_1000 : Standby Zeit = 1000 ms
BMP280_STANDBY_TIME_2000 : Standby Zeit = 2000 ms
BMP280_STANDBY_TIME_4000 : Standby Zeit = 4000 ms
Rückgabe: keine
Bemerkung: Das Setzen von einzelnen Parametern muss vor der init()-Funktion erfolgen!
void setFilterCoeff(byte filter)
Funktion: Setzen des Filter-Koeffizienten. Gibt an, wie viele Abtastungen (samples) erforderlich sind, bis - bei einer sprunghaften Änderung des Messwertes - die Datenausgabe mindestens 75 % der Änderung gefolgt ist:
Parameter: filter: BMP280_FILTER_COEFF_0 : 1 Abtastung (Filter ausgeschaltet)
BMP280_FILTER_COEFF_2 : 2 Abtastungen
BMP280_FILTER_COEFF_4 : 5 Abtastungen
BMP280_FILTER_COEFF_8 : 11 Abtastungen
BMP280_FILTER_COEFF_16 : 22 Abtastungen
Rückgabe: keine
Bemerkung: Das Setzen von einzelnen Parametern muss vor der init()-Funktion erfolgen!
void setWeatherMonitoring(void)
Funktion: Setzen des Parametersatzes für "Weather Monitoring"
Parameter: keine
Rückgabe: keine
Bemerkung: Wird ein Parametersatz gesetzt, muss danach immer die init()-Funktion ausgeführt werden!
Folgende Parameter werden gesetzt:
- FORCED_MODE
- P_OVERSAMPLING_x1
- T_OVERSAMPLING_x1
- FILTER_COEFF_0
- STANDBY_TIME_nnnn (Standby time im Forced Mode ohne Bedeutung)
Bemerkung:
Bei Aufruf der Funktion und Übernahme der Parameter mit init() im Forced-Modus, führt der Sensor eine Druck- und Temperatur-Messung aus und speichert die Ergebnisse als Rohwerte. Danach befindet sich der Sensor im Sleep-Modus. Im Anwenderprogramm muss dann mit der Funktion "startSingleMeas()" der Forced-Modus z.B. einmal pro Minute aktiviert werden, wobei dann wiederum jeweils genau eine Messung durchgeführt wird. Nach jeder Messung geht der Sensor wieder in den Sleep-Modus zurück.
Das Setzen eines Parametersatzes muss vor der init()-Funktion erfolgen!
void setHandheldLowPower(void)
Funktion: Setzen des Parametersatzes für "Handheld Low Power"
Parameter: keine
Rückgabe: keine
Bemerkung: Folgende Parameter werden gesetzt:
- NORMAL_MODE
- P_OVERSAMPLING_x16
- T_OVERSAMPLING_X2
- FILTER_COEFF_4
- STANDBY_TIME_62p5
Bemerkung: Das Setzen eines Parametersatzes muss vor der init()-Funktion erfolgen!
void setHandheldDynamic(void)
Funktion: Setzen des Parametersatzes für "Handheld Dynamic"
Parameter: keine
Rückgabe: keine
Bemerkung: Folgende Parameter werden gesetzt:
- NORMAL_MODE
- P_OVERSAMPLING_x4
- T_OVERSAMPLING_x1
- FILTER_COEFF_16
- STANDBY_TIME_0p5
Bemerkung: Das Setzen eines Parametersatzes muss vor der init()-Funktion erfolgen!
void reset(void)
Funktion: Durchführung des Software-Reset. Der Sensor führt die komplette Prozedur des "power-on-reset" aus.
Parameter: keine
Rückgabe: keine