2-Wire-Python
Um an die Druck- und Temperaturwerte zu gelangen, müssen wir verstehen, wie der BMP180-Sensor funktioniert.
Register
Am besten stellt man sich ADAM als eine Wand mit etlichen Schubladen vor. Die Schubladen heißen Register.
Jedes Register hat einen Namen, die Adresse des Registers. In manche Register kann man Werte schreiben, das ist so,
als würde man die Schublade öffnen und etwas (den Wert) hineinlegen. Andere Register lesen wir, um darin bereit gestellte Werte
zu lesen; wir öffnen also die Schublade und holen etwas heraus.
Um ADAM dazu zu bringen, entweder den Druck- oder Temperaturwert herauszurücken, schreiben wir bestimmte Werte in ein festgelegtes Register.
ADAM stellt dann in anderen Registern den gewünschten Wert bereit; wir müssen also diese Register auslesen.
Weil die Werte, die uns interessieren, zu groß für eine Schublade sind (in ein Register passt ein Byte), werden die Werte auf mehrere Schubladen verteilt.
Wir müssen also mehrere Register - zwei für den Temperatur-, drei für den Druckwert - auslesen und die erhaltenen Stücke zusammensetzen.
Rohdaten und Kalibrierungswerte
Die Werte, die wir im ersten Schritt für Temperatur und Druck erhalten, sind zunächst wenig aussagekräftig. Wir müssen beide Werte noch mit einer ganzen Anzahl
von Korrekturdaten, den Kalibrierungswerten, in einer Reihe mathematischer Operationen weiter verwursten. Die Kalibrierungswerte sind von Sensor zu Sensor unterschiedlich
und stehen - Ihr ahnt es - wiederum in Registern des jeweiligen Sensors.
Die Adressen der notwendigen Register, die Werte, die Ihr Schreiben müsst, um an die Rohdaten zu gelangen, die Register der Kalibirerungswerte
und die Kalibrierungsvorschriften findet Ihr im Datenblatt des Sensors.
Übersetzt in Python
Unten seht Ihr den Python-Code, den der TNA zusammengestöpselt hat. Das Ergebnis ist eine Liste, die als ersten Wert die Temperatur und als zweiten Wert den Druck enthält.