Der PiezoPressure ist ein Piezo-Drucksensor. Sein internes Sensormodell bestimmt, worauf der Referenzdruck bezogen wird:
| Sensor-Modus | Kürzel | Referenz | Beschreibung |
|---|---|---|---|
| PR | Relativ | Atmosphärendruck | Kapillare im Kabel lässt Atmosphärendruck ans Sensorelement |
| PA / PAA | Absolut | Vakuum | Versiegeltes Referenzvolumen, misst Gesamtdruck |
Der Rohwert beider Typen wird intern in Bar geliefert.
Hinweis – Sensoranschluss: Der Drucksensor kann im SDI-12-Modus oder im I2C-Modus betrieben werden. In beiden Fällen ist die interne Verarbeitung der Messwerte identisch. Im SDI-12-Modus wird der Sensor von einer externen Elektronik gemessen, die den Absolutdruck liefert. Im I2C-Modus ist der Sensor direkt an den LTX Logger angeschlossen, und die Firmware liest den Druckwert über den I2C-Bus aus.
1 Bar = 10,197 m Wassersäule (Süßwasser)
Grundlage: g = 9,806 m/s², ρ = 1000 kg/m³
Problem: Der Sensor misst den vollen Absolutdruck:
p_absolut = p_Wasser + p_Atmosphäre
Der Atmosphärendruck muss daher abgezogen werden.
Das erledigt die Firmware automatisch, wenn der Parameter
src_index entsprechend gesetzt wird.
// src_index >= 100: Barometrische Kompensation aktiv
chan_value.floatval = cache_value[0].floatval // Absolutdruck in Bar
- (baro_vals.pressure / 1000.0); // Luftdruck mBar → Bar
// Ergebnis: reiner Wasserdruck in Bar
fval *= pchan->factor; // Bar → Meter Wassersäule
fval -= pchan->offset; // Ggf. Nullpunkt-KorrekturDer interne Barometrische Sensor (MS5607) liefert
baro_vals.pressure in mBar; die Division
durch 1000,0 ergibt Bar.
Nebeneffekt: Wird src_index >= 100
erkannt, setzt die Firmware intern ein Flag. Der Baro-Sensor wird dann
bei jeder Messung abgefragt – auch wenn er keinen
eigenen Logging-Kanal hat.
| Parameter | Wert | Erläuterung |
|---|---|---|
physkan |
PK_MULTI_SDI12 (SDI12) oder
PK_MULTI_KELLERLD (I2C) |
Bustyp |
src_index |
100 | 100 + Cache-Index 0 (Druck) → aktiviert Baro-Kompensation |
factor |
10.197 | Umrechnung Bar → Meter Wassersäule |
offset |
0.0 | Nur setzen, wenn ein fixer Nullpunkt-Offset gewünscht ist |
unit |
mH2O |
Anzeigeeinheit |
Voraussetzung: Das Gerät muss mit einem Barometrischen Sensor (MS5607) bestückt sein (Hardware-Flag
HK_FLAGS & 16). Fällt der Baro-Sensor aus, gibt der Kanal einen Fehler zurück anstelle eines Messwerts.
Kein Kompensationsbedarf: Die Kapillare im Sensorkabel verbindet die Rückseite des Sensorelements mit der Außenluft. Der Sensor misst damit automatisch nur den Überdruck des Wassers gegenüber der Atmosphäre:
p_relativ = p_absolut − p_Atmosphäre
Der Messwert in Bar entspricht direkt dem Wasserdruck.
// src_index < 100: direkter Wert aus Cache, keine Kompensation
chan_value.floatval = cache_value[0].floatval; // Relativdruck in Bar
fval *= pchan->factor; // Bar → Meter Wassersäule
fval -= pchan->offset; // Ggf. Nullpunkt-Korrektur| Parameter | Wert | Erläuterung |
|---|---|---|
physkan |
PK_MULTI_SDI12 (SDI12) oder
PK_MULTI_KELLERLD (I2C) |
Bustyp |
src_index |
0 | Cache-Index 0 (Druck), direkt – keine Kompensation |
factor |
10.197 | Umrechnung Bar → Meter Wassersäule |
offset |
0.0 | Nur bei gewünschter Nullpunkt-Korrektur |
unit |
mH2O |
Anzeigeeinheit |
Hinweis: Bei einem relativen Sensor ist keine Baro-Hardware erforderlich. Der Sensor muss jedoch physisch korrekt angeschlossen sein (Kapillare frei, nicht abgeknickt oder verstopft).
src_index-Wert |
Bedeutung |
|---|---|
| 0 … (MAX_CACHE − 1) | Direkter Rohwert aus der Messung – keine Baro-Kompensation |
| 100 … (100 + MAX_CACHE − 1) | Baro-kompensierter Wert: Rohwert − Luftdruck [Bar] |
Der Offset von 100 zeigt dabei auf denselben SDI12/I2C Cache-Slot wie
der direkte Wert: src_index = 100 entspricht
cache_value[0] (Druck), src_index = 101
entspricht cache_value[1] usw.