1wire Sensor zu 0-10V Konverter

1wire Sensor DS18B20 an analogen Eingang betreiben?
1wire Sensor DS18B20 an SPS anschließen?
1wire Sensor DS18B20 auf 0-10V Messumformer?

PT100 Sensoren sind zu teuer, die Auswertung zu aufwändig oder die Eingangsbaugruppe (Analogeingänge, Wandler ICs) wieder mal nicht lieferbar?
Na da nehmen wir doch schnell einen digitalen Temperaturfühler wie den DS18B20 und schliessen ihn an.

Doch so leicht ist es dann doch wieder nicht, den der DS18B20 benutzt einen digitalen 1wire Bus, welcher von den diversen Steuerungen nicht unterstützt wird.

Also, was wird benötigt?

Genau, ein Konverter, welcher einen 1wire Sensor wie den DS18B20 in eine analoge Spannung wandelt.

Überlegungen zu diesem Vorhaben:
Generell: Was wird benötigt ?
Generell: Was ist die Lösung ?
Hardware: Welche Hardware verwende ich?
Software: Welche Sprache, Library vorhanden?
Hardwareentwurf
Zusammenbau
Inbetriebnahme

Generell: Was wird benötigt ?

Die Temperatur wird von einem DS18B20 Sensor in einem µController eingelesen und vom µController ein analoges Ausgangsignal generiert.

Wie kommen die Daten des DS18B20 in den µController?
Diese Anwort ist noch ganz einfach zu beantworten, da der Sensor ja bereits bei der universellen PWM Regelung von Ventilatoren oder Motoren verwendet wurde.
Der DS18B20 wird mit 3 Adern mit dem Mikrocontroller verbunden.
Vdd und GND für die 5V Versorgung des Sensors und der übrigbleibende Anschluss für den 1wire Bus.
Der DQ Anschluss ist ein OpenCollector Ausgang, welcher ein Signal nur auf GND und NICHT auf Vdd ziehen kann.
Daher wird der 1wire Sensor mit einem 4k7 Pullup Widerstand an einem Portpin des µControllers angeschlossen.

Doch welches Ausgangssignal, mit welcher Spannung?
Dazu muss man sich die gängigen Eingangsspannungsbereich der am Markt erhältlichen Steuerungen ansehen.
Man wird schnell feststellen, das die Eingänge meist 0-10V, 1-10V, 0-5V und 1-5V sind.
Daher muss der Ausgangs Spannungspegel schon mal variabel sein.

Wie soll das analoge Ausgangssignal generiert werden?
So wie bei der universellen PWM Regelung von Ventilatoren oder Motoren schwebt mir da PWM vor.
Nur muss diese PWM Signal geglättet und danach noch auf den gewünschten Ausgangspegel gebracht werden.
Daher muss noch ein RC Glied und ein Operationsverstärker mit eingeplant werden.

Welchen maximalen PWM DutyCycle lege ich fest?
Am besten 1000 oder 10000, um den Eingangsbereich von 0-100% zu bearbeiten.
Für eine Genauigkeit von 0.1°C ist demnach ein DutyCycle von 1 nötig.
Also wir der maximale PWM DutyCacle auf 1000 festgelegt um Integer Überläufe zu vermeiden.

Welche Genauigkeit soll erziehlt werden?
Dies ergibt sich aus der Genauigkeit des DS18B20.
Im Temperaturbereich von -10°C bis +85°C ist der Sensor mit ±0.5°C am genauesten.
Daher eine Regelung der Ausgangsspannung auf 0.2°C genau.

Was machen, bei Fühlerbruch / Aderbruch / Sensorfehler?
Wir machen, das Gleiche, als wenn das Modul defekt wäre.
Der jeweilige Ausgang wird auf 0V gesetzt.

Generell: Was ist die Lösung?

Ein Mikrocontroller, der die Daten eines 1wire Sensors mittels eines Pullups an einem Portpin einliest und danach, umgerechnet auf das gewünschte Ausgangssignal via PWM und nachgeschaltenen RC Filter/OP Kombination wieder ausgibt. Montage des fertigen Moduls auf 35mm DIN Schiene.

Hardware: Welche Hardware verwende ich?

Als Mikrocontroller wird wieder der PIC12F1572 verwendet, da ich mich gut darin eingearbeitet habe und der µController über mehrere 16Bit PWM Ausgänge besitzt.
Daher habe ich mich entschlossen, den Konverter gleich zweikanalig auszulegen.
Als Operationsverstärker wird ein LM358 verwendet, weil er fast R2R kann, mit den benötigten 10V Ausgang klar kommt, Singlesupply betrieben werden kann und zwei Operationsverstärker (2 Kanäle!) enthält.
Um alle Bauteiltolleranzen in der Verstärkerstufe zu beseitigen, muss noch ein „Abgleichsmodus“ her, um die Ausgangsstufe zu kalibrieren.

Software: Welche Sprache, Library vorhanden?

Damit ich das Rad nicht neu erfinden muss, werden Teile der universellen PWM Regelung von Ventilatoren oder Motoren verwendet. Also Sprache: MikroBasic von Mikroe, da dieser bis 2k (PIC12F1572) gratis ist.
Die Software muss ich leider als Closed Source heraus geben.
Der Grund ist einfach: Wir haben einfach nicht die Manpower um Fehler zu suchen, die bei einer Erweiterung des SourceCode durch den Endbenutzer mit eingeflossen sind.

Die Standardskalierung ist in der „Setter“ Software jeweils der Sensortyp 13.
Dies entspricht jeweils einen Eingangsbereich von -20°C bis +80°C und einen Ausgangsspannungsbereich von 0V – 10V.
Bei einem Fühlerfehler oder Aderbruch zum Sensor, wird der Ausagng automatisch auf 0V gesetzt.
Als DutyCyle, wurde als Maximum, 1000 festgelegt, was einer theoretischen PWM Frequenz von 16kHz entspricht.

Hardwareentwurf

Ein Bild sagt mehr als tausend Worte.

1wire2voltage Revision1_Schematic - Ramser Elektrotechnik Webshop

Zusammenbau

Der Bausatz wurde wieder so dimensioniert, das ein Zusammenbau für Anfänger genauso möglich ist, wie für den Vollprofi.

Also lasst uns beginnen.

Zuerst sollten alle Bauteile aufgelegt werden.

1wire2voltage - 1 wire DS18B20 auf 0-10V Konverter Wandler 01 - Ramser Elektrotechnik Webshop

Danach wird mit den zwei 1k Widerstanden R4 und R8 begonnen.
Diese schützen den Ausgang des OP vor Kürzschlüssen.

1wire2voltage - 1 wire DS18B20 auf 0-10V Konverter Wandler 02 - Ramser Elektrotechnik Webshop

Danach kommen die 4k7 Widerstände zum Zug.
Hier im Bild wurden die zwei RC Filter noch nicht bestückt.

1wire2voltage - 1 wire DS18B20 auf 0-10V Konverter Wandler 03 - Ramser Elektrotechnik Webshop

In diesem Bild wurden die zwei RC Kombinationen bestückt:

1wire2voltage - 1 wire DS18B20 auf 0-10V Konverter Wandler 04 - Ramser Elektrotechnik Webshop

Nun kann auch schon der Spannungsregler und die 100nF Kerkos rauf

1wire2voltage - 1 wire DS18B20 auf 0-10V Konverter Wandler 05 - Ramser Elektrotechnik Webshop

Danach die Potis, Elkos und der Jumper für die Justage.

1wire2voltage - 1 wire DS18B20 auf 0-10V Konverter Wandler 06 - Ramser Elektrotechnik Webshop

Nach Bestückung der Klemmen, ICs und der ICSP Schnittstelle ist der Bausatz fertig zur Inbetriebnahme:

1wire2voltage - 1 wire DS18B20 auf 0-10V Konverter Wandler 07 - Ramser Elektrotechnik Webshop

Bei Bedarf kann noch gleich der DIN Schienen Halter mitmontiert werden.

1wire2voltage - 1 wire DS18B20 auf 0-10V Konverter Wandler 09 - Ramser Elektrotechnik Webshop

Inbetriebnahme

Die Inbetriebnahme erfolgt in zwei Teilen.
Justage / Kalibrierung
Messung

Justage/Kalibrierung:
Steckt den Jumper „ADJ“ neben dem ICSP Sockel.
Durch drehen des jeweiligen Potis, wird nun am Ausgang 7.5V eingestellt (messen!).
Out 1 = R3, Out 2 = R7

Für den richtigen Betrieb ist es wichtig, das der Jumper „ADJ“ wieder entfernt wird.

Messung:
Hierfür wird Out 1 und GND mit meinem neuen Handhelp Oszi verbunden, um zu kontrollieren, wie die Signale aussehen.

Messung 1: PIN5 = PWM3 Ausgang des PICs
Hier ist das PWM Signal sehr schön zu erkennen.

1wire2voltage - 1 wire DS18B20 auf 0-10V Konverter Wandler 12 - Ramser Elektrotechnik Webshop
1wire2voltage - 1 wire DS18B20 auf 0-10V Konverter Wandler 13 - Ramser Elektrotechnik Webshop

Messung 2: Out1 Ausgang des Moduls
Hier ist noch die Restwelligkeit des PWM Signal zu erkennen.
Da diese unter 0.2V (=0.2°C) liegt ist mein Auftrag geglückt!

1wire2voltage - 1 wire DS18B20 auf 0-10V Konverter Wandler 15 - Ramser Elektrotechnik Webshop
1wire2voltage - 1 wire DS18B20 auf 0-10V Konverter Wandler 16 - Ramser Elektrotechnik Webshop

EDIT: Wollt ihr das Schwingen im Ausgangssignal verkleinern, so kann dies durch Ergänzung eines externen 10µF Kondensator von Out1 (oder Out2) gegen GND erfolgen.

Die Firmware ist Open Source und in der Downloadabteilung verfügbar.
Es gibt eine Version in MikroC und MikroBasic.
Wenn Ihr die Software weiterverbreitet, bitte einen Link auf meine Seite setzen 😉

Der Bausatz des „1wire2Voltage Konverters“ kann in unserem Shop bezogen werden.

Bei Wünschen und Anregungen könnt Ihr euren Kommentar absetzen.

Wenn Ihr die Skalierung des Moduls anpassen wollt, so kann dafür die „Setter“ Software verwendet werden. Eine Anleitung dazu findet ihr hier.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert