Als Ergänzung zum A/D-Wandler - und weil unser Funk-Außenthermometer gerade mal wieder nicht
funktioniert - ist hier Platine und Schaltplan für einen Thermometer. Als Fühler wird ein
PT1000 verwendet.
1-Kanal 12-Bit A/D-Modul
Es gibt eine Menge brauchbare analoge Sensoren, aber wie bekommt man diese an den EIB ? Als erstes Projekt ist dies hier ein 1-kanaliges Modul - wird aber demnächst auf 4 Kanäle erweitert.
Download:
- Analog-1: Platine und Schaltplan
- Software: BCU mit 12 Bit A/D-Wandler
Hardware
Als EIB-Basis verwende ich meinen EIB-Adapter: das ist nichts weiter als eine Platine mit
einem BIM111 Modul und damit baugleich zu einem Busankoppler. Die Platine (links im Foto)
erweitert die BIM um einen Taster und die LED, es gibt einen EIB-Anschluss und eine 10-polige
Pfostenleiste, deren Pinbelegung zum PEI kompatibel ist. Demnach kann man auch einen Busankoppler
verwenden.
![]() |
Als Sensor verwende ich einen PT1000 Platin-Sensor. Dessen Widerstand beträgt bei 0° = 1000 Ohm und verändert sich linear um 3.85 Ohm pro °C, als Spannungsteiler mit 1 kOhm ergibt sich die maximale Aussteuerung. Der Thermometer ist auf einen Bereich von ca. -30°C bis +70°C ausgelegt, also einen Spannungshub von ca. 0.5 V.
Der EIB-Adapter liefert 5 V und versorgt damit sowohl den A/D-Wandler (Microchip MCP 3201) und auch den OpAmp - dafür ist ein LM 324 gut geeignet. Der LM 324 kann einen Ausgangsbereich von etwa 1-4 V liefern und daher muß die Meßspannung vom PT1000 abgesenkt und verstärkt werden. Wer einen Tietze/Schenk sein eigen nennt, findet die Grundlagen im Kap.25 (Meßschaltungen).
Die beiden OpAmps am Eingang dienen als Impedanzwandler, weil der nachfolgende Subtrahierer einen recht niedrigen Eingangswiderstand hat. Der Spannungsteiler stellt den zweiten OpAmp auf 2 V ein, dies wird von der Meßspannung subtrahiert und mit A = 10 / 2.2 = 4.545 verstärkt.
Der A/D-Wandler wird durch die BIM getaktet und wandelt das Eingangssignal auf 12 Bit, diese werden seriell eingelesen. Die BIM wird über Widerstände (TYPE) = 190 kOhm auf PEI-Typ 4 eingestellt (eigentlich 187 kOhm).
Software
Für die BIM verwende ich mein TEST16.ASM - die Gruppenadressen sind im Code hinterlegt weil keine ETS verwendet wird (ist auch nicht nötig).
Der A/D-Wandler liefert nun einen Spannungsäquivalent, das noch in eine Temperatur umgerechnet werden muß und - weil ich den Wert auf meinen EIB-Display anzeigen möchte - auch in EIS5 konvertiert werden muß. Weil mir das Umrechnen in der BIM zu kompliziert war, habe ich einen anderen Weg gewählt.
Das Modul sendet seine Wert nicht automatisch, aber mein LEIBnix sendet alle 30 sec einen Request und erhält dann einen 16-Bit Wert, der den A/D-Wandlercode enthält - damit kann man problemlos auch andere Sensoren anschliessen und die Verarbeitung der Meßwerte verlagern.
Die Umrechnung der Meßwerte in °C geht nach folgender Methode:
float CalcTemp(WORD wValue)
{
//-- Eingangswert auf Temperatur umrechnen
//-- Konstanten
float Uref = 1.970; // Referenzspannung
float A = 4.545; // OpAmp Verstärkung
float R1 = 1000; // Widerstand R1
//-- rückrechnen auf Spannung Ua
float Ua = 5.00f * (wValue / 4096.0f);
//-- Spannung vor dem OpAmp
float Upt = (Ua / A) + Uref;
//-- Widerstandswert vom PT1000
float Rpt = (Upt * R1) / (5 - Upt);
float fTemp = (Rpt - 1000.0) / 3.85;
return (fTemp);
}
Ich verwende inzwischen noch einen Filter und bilde den Mittelwert über die letzten 10 Werte. Außerdem noch den Minimal- und Maximalwert der letzten 24 Stunden.
Schließlich kann man den Wert noch nach EIS5 umrechnen und diesen als Gruppen-Telegramm wieder über den Bus verteilen. Das geht dann so:
short EIS5toShort(float value)
{
int nSign = (value < 0 ? 0x8000 : 0);
int nExpo = 0;
int nMant = 0;
nMant = int(value * 100.0);
while (abs(nMant) > 2047)
{
nMant = nMant >> 1;
nExpo++;
}
short sValue = nSign | (nExpo << 11) | (nMant & 0x07FF);
return sValue;
}
Aufbau
Das fertige Modul besteht aus zwei Teilen: der EIB-Adapter (=Busankoppler) und die Platine mit dem Meßwandler. Auf dem Foto ist das Modul fertig eingebaut in einen Baumarkt-Aufputz-Verteiler für 1 Euro, die ganze Hardware inkl. BIM kostet ca. 40 Euro.