Forum: Mikrocontroller und Digitale Elektronik Schaltungs-Feedback erbeten Kaminsteuerung mit PT1000


von Michael W. (micha124)



Lesenswert?

Hallo zusammen,

ich hätte gerne Feedback zu einer Schaltung bevor ich hier mich um die 
PCB kümmere.

Zweck ist die Steuerung der Pumpe unserer Wassertasche im Holzkamin. Der 
Kamin erhitzt dort Wasser, welches dann ab einer gewissen Temperatur in 
den zentralen Wärmespeicher gepumpt wird und dann für die Nutzung im 
Haus zur Verfügung steht.

Die vorhandene Steuerung liefert mir leider keine von aussen 
auswertbaren Informationen (Temperaturanzeige im Wohnzimmer), weswegen 
ich diese nun ersetze.

Funktionsprinzip:
Es gibt 4 PT1000-Sensoren, welche die aktuelle Temperatur messen:
* Wassertasche
* Wärmespeicher
* Wasser-Leitung von und zur Wassertasche (rein informativ)

Messbereich der Sensoren damit ca. 0-100°

Bei erreichen der passenden Temperatur (z.B. Wassertasche > Speicher) 
wird ein 12V-Relais angesteuert, welches die Pumpe aktiviert. Die Pumpe 
bleibt solange an, bis das Relais wieder abfällt (d.h. wird die ganze 
Zeit angesteuert). Entweder weil die Minimaltemperatur unterschritten 
wird oder die Maximaltemperatur überschritten wird.

3 LEDs zeigen den aktuellen Zustand an. Die genauen Werte können via 
I2C-Schnittstelle abgefragt werden - dort nimmt ein Raspi die Daten 
entgegen und stellt sie für eine Anzeige z.B. im Wohnzimmer bereit.

Leitungslängen zu den Sensoren sind ca. 5m für die Sensoren im Keller, 
und 20m? zum Sensor in der Wassertasche (via NYM 1,5 realisiert - nicht 
tauschbar)

Ich freue mich auf Feedback und konstruktive Kritik

Grüße und Danke

Micha

PS: Bei den Sensoreingängen habe ich aus Platzgründen nur 2 eingestellt. 
Die beiden anderen sind identisch aufgebaut und nutzen die verbliebenen 
2 OP.

: Bearbeitet durch User
von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Die LED D1 wird im ausgeschalteten Zustand mit etwa -6V Sperrspannung 
belastet, was nicht jede LED schluckt. D2 ist normalerweise unnötig.
Da es an den Sensor-Opamps keine Abgleichpunkte gibt, würde ich an 
deiner Stelle diese Schaltung erstmal testen, falls noch nicht 
geschehen. Kalibrieren kann man sie ja per EEPROM.
Für gute ADC Ergebnisse kann man AREF mit einem 100nF gegen Masse 
versehen. Evtl. macht C1 am Resetanschluss Probleme beim programmieren.
Serienwiderstände im I²C Bus führen zusammen mit Pullups evtl. zu 
schlechten Pegeln.

: Bearbeitet durch User
von Michael W. (micha124)


Lesenswert?

Hi Matthias,

Matthias S. schrieb:
> Die LED D1 wird im ausgeschalteten Zustand mit etwa -6V Sperrspannung
> belastet, was nicht jede LED schluckt.

Was würdest Du da als Absicherung machen? 1N4148 in Reihe?

> Da es an den Sensor-Opamps keine Abgleichpunkte gibt, würde ich an
> deiner Stelle diese Schaltung erstmal testen, falls noch nicht
> geschehen. Kalibrieren kann man sie ja per EEPROM.

Grundlegend getestet habe ich die auf dem Steckbrett. Ja kalibrieren 
wollte ich sie dann via EEPROM (insb. auch Ausgleich für den Sensor im 
WZ). Ggf. würde ich dann den 22k-Widerstand noch im Wert korrigieren 
(das ist ja keine PCB-Änderung)

> Für gute ADC Ergebnisse kann man AREF mit einem 100nF gegen Masse
> versehen.
Danke - hab ich aufgenommen

> Evtl. macht C1 am Resetanschluss Probleme beim programmieren.
Den hab ich da bisher immer drin. Was ist da besser geeignet?

> Serienwiderstände im I²C Bus führen zusammen mit Pullups evtl. zu
> schlechten Pegeln.
Eine ähnliche Schaltung habe ich auch zur Steuerung der Zisterne (wenn 
auch dort mit nem 4-20mA Sensor). Da habe ich zumindest bisher keine 
größeren I2C-Probleme gehabt (die I2C-Anbindung läuft da aber auch noch 
nicht so lange, auch wenn die Schaltung schon ein paar Jahre alt ist).
Die Serienwiderstände sind/hatte ich als Sicherung der Eingänge gedacht. 
Was würdest Du da machen? Einfach weglassen oder durch was anderes 
ersetzen?

Danke und Gruß
Micha

von Alt G. (altgr)


Lesenswert?

Wenn du garantieren kannst dass keiner der sensoren mahr als 125 deg C 
sieht ist das ein fall für DS18B20 sensoren. Da sparst du dir das ganze 
analog geraffel und kannst alles auf einen arduino nano auflöten.
Auch LED braucht der moderne bastler nicht mehr. Dazu nimmt man WS2812, 
davon kannst du beliebig viele mit einem pin ansteuern. Ich nehm die 
auch für 2-led rot/grün statusanzeigen.

Das einzige wofür du externe elkektronik brauchts ist die 
motorsteuerung.

von Helge (Gast)


Angehängte Dateien:

Lesenswert?

Beim Verstärker hast dich verrechnet.

Ich würde paar mehr LED spendieren, die kann der uC auch ohne Treiber.

von Klaus R. (klara)


Lesenswert?

Matthias S. schrieb:
> Serienwiderstände im I²C Bus führen zusammen mit Pullups evtl. zu
> schlechten Pegeln.

Ich verwende sogar 300 Ohm Widerstände.  Matthias hat Recht, D1 würde 
ich besser über 12 V versorgen.
mfg klaus

von Alt G. (altgr)


Lesenswert?

Helge schrieb:
> Ich würde paar mehr LED spendieren

z.b. 10 WS2812.
Damit die temperatur in 10 schritten anzeigen.
rot = motor aus, grün = motor ein.

von Carsten-Peter C. (carsten-p)


Lesenswert?

Hallo, wir haben auch vor ein paar Jahren so einen wasserführenden Kamin 
bekommen, der einen  800L Pufferspeicher speist. Da war eine fertige 
Luftklappensteuerung dabei. Interessant fand ich die Temperaturen der 
verschiedenen Schichten im Pufferspeicher und natürlich die Vor und 
Rücklauftemperaturen, die ich mit DS18B20 gemessen und in einem NetIO 
von Pollin ausgewertet habe. Für den DS18B20 brauchst Du nur 3(2) Drähte 
und Du kannst viele daran parallel schalten. Das NetIO baut die Daten in 
eine Webseite ein. Der Pufferspeicher erwärmt den Rücklauf. Das 
funktioniert ziemlich gut. In Deiner Zeichnung finde ich „JTAG“, 
sicherlich meinst Du „ISP“.
Gruß Carsten

von Helge (Gast)


Lesenswert?

Alt G. schrieb:
> z.b. 10 WS2812.
Ja geht auch. Allerdings hat der uC 8 pins frei, und die WS sind mir 
schon welche gestorben.

von Alt G. (altgr)


Lesenswert?

Helge schrieb:
> Allerdings hat der uC 8 pins frei, und die WS sind mir
> schon welche gestorben.

Hatte null probleme mit den WS. Ich betreib die auch nicht mit max 
helligkeit, nur mit etwa 10%. Das reicht völlig. Kann mir vorstellen bei 
100% wird das heiss und geht kaputt.

Mit einem WS kann man farbe und helligkeit in 3 mal 256 schritten 
anpassen, das ist wesentlich mehr informationsgehalt als eine led kann. 
Eine WS ersetzt 3 konventionelle led.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Alt G. schrieb:
> ist das ein fall für DS18B20 sensoren

Soweit ich das verstanden habe, sind die PT1000 schon im System verbaut 
(Originalausstattung).

Michael W. schrieb:
>> Evtl. macht C1 am Resetanschluss Probleme beim programmieren.
> Den hab ich da bisher immer drin. Was ist da besser geeignet?

Wenn dein Programmer kräftig genug ist, um den C1 schnell genug zu 
entladen, ist alles gut.

Klaus R. schrieb:
> Matthias hat Recht, D1 würde
> ich besser über 12 V versorgen.

Einfach parallel zum Relais - dann hat man auch gleich ein Feedback für 
die 12V. Vorwiderstand muss natürlich angepasst werden.

Alt G. schrieb:
> Dazu nimmt man WS2812,
> davon kannst du beliebig viele mit einem pin ansteuern.

In Verbindung mit I²C halte ich das für die WS2812 notwendige beinharte 
Timing für unnötig fehlerträchtig. Es sind doch wirklich nur ein paar 
einfache LED.
Da I2C schon da ist, würde ich mir evtl. den Spass machen, so ein 
kleines Display anzudocken:
https://www.pollin.de/p/lcd-modul-densitron-pc-6749-aaw-120818

Ist recht nett, habe damit auch schon mal eine Heizungssteuerung gebaut.

: Bearbeitet durch User
von Jester (Gast)


Lesenswert?

Michael W. schrieb:
> ich hätte gerne Feedback zu einer Schaltung bevor ich hier mich um die
> PCB kümmere.

Du solltest auf jeden Fall einen Prototypen erstellen - sonst wird das 
ein frustiger Sprung in‘s kalte Wasser. Selbst im professionellen 
Bereich, und trotz Prototyp, funktioniert die erste Platine ohne 
Änderungen.

Ich habe hier den Prototyp einer Waage laufen: Elektronik ist auf einem 
Steckbrett, gesteuert wird das von einem Arduino UNO, Mechanik und 
Sensorik entstanden so nach und nach.

Vermutlich spendier ich nicht mal eine Platine. Falls doch, bleibt 
entweder der UNO drin, wie er ist - oder ich werde die komplette 
Arduino-Schaltung, incl. Bootloader, 1:1 auf mein PCB übernehmen.

Wenn Platine, würde ich auf jeden Fall ein (ansteckbares) LCD vorsehen 
und unbenutzte Ausgänge auf eine Steckerleiste legen, heartbeat LED und 
eine Jumperleiste schaden auch nicht -- und vielleicht sogar ein kleines 
Lochraster-Feld und einen Alarm-Piepser spendieren. Den Zusatzkram 
braucht man ja nicht zu bestücken, wenn man nicht will.

PS: Auch bei OpAmps schaden Stützkondensatoren nicht.

von m.n. (Gast)


Lesenswert?

Die OPV braucht man nicht und kann zudem ratiometrisch messen: 
Beitrag "Temperatursensor KTY81 am ATmega328 (Arduino UNO), 1-6 Kanäle"
Bei längeren Leitungen bleibt es bei der Zweidrahtmessung, da man den 
Leitungswiderstand herausrechnen kann.

von Chris (Gast)


Angehängte Dateien:

Lesenswert?

Moin, ich habe zwar keinen Schaltungs-Feedback, aber Erfahrungswerte zur 
Steuerung bzw. einen konkreten Beispiel-Temperaturverlauf.

Bei mir ist es ein Ofeneinsatz und Abbrandsteuerung von Brunner und eine 
Heizungsanlage mit 800L Speicher von Vaillant. Die Abbrandsteuerung 
kümmert sich nur um die Zuluftklappe.

Der Speicher ist als Schichtspeicher ausgelegt, oben für Warmwasser, 
unten für Heizung. Der Temperaturfühler "Speicher unten" ist auf Höhe 
des Abgangs zu den Heizkreis-Mischern - das ist also die jeweils 
maximale Vorlauftemperatur der Kreise. Der Brenner kann wahlweise 
ebenfalls in diesem Bereich einspeisen (sieht man im Diagramm gestern 
kurz nach 20 Uhr), oder im oberen Bereich fürs Warmwasser. Die Ofenpumpe 
speist ausschließlich oben ein.

Man sieht zwei Abbrände, angefeuert um ca. 20:40 Uhr, nochmal nachgelegt 
kurz nach 22:00 Uhr.

Wie man sieht ist es mitunter sinnvoll, die Ofenpumpe auch dann laufen 
zu lassen, wenn die Kesseltemperatur geringer als an der Spitze des 
Speichers.

Etwa gegen 21 und 22 Uhr sieht man ein "flattern" der Ofenpumpe. Die 
Jungs von Vaillant haben leider die Hysterese beim Einschaltpunkt 
(Ofenkessel = 55°C) vergessen.

Außerdem ganz gut zu sehen: die Rücklaufanhebung im Ofenkreislauf. Der 
Wärmetauscher im Ofen sollte nicht mit dem ganz kalten Wasser aus dem 
unteren Speicher beschickt werden.

von Wolfgang (Gast)


Lesenswert?

Matthias S. schrieb:
> Serienwiderstände im I²C Bus führen zusammen mit Pullups evtl. zu
> schlechten Pegeln.

Das kommt drauf an, wie klein die Pullups sind, wie groß die Kapazität 
des Busses ist und wie schnell die Daten übertragen werden. Die Werte 
müssen ja nicht unbedingt mit 1MHz Clock übertragen werden.

Michael W. schrieb:
> Die genauen Werte können via I2C-Schnittstelle abgefragt werden - dort nimmt
> ein Raspi die Daten entgegen und stellt sie für eine Anzeige
> z.B. im Wohnzimmer bereit.

Bevor du den Raspi an den Bus anschließt, musst du dir noch Gedanken 
über Pegelwandler für den I2C machen. So direkt vertragen sich die 5V 
vom ATmega und die 3.3V des Raspi jedenfalls nicht.

von Petra (Gast)


Lesenswert?

Prüfe ob es nicht ein fertiger, programmierbarer Regler besser kann.
z.B.: https://www.ta.co.at/x2-frei-programmierbare-regler/

von Lothar J. (black-bird)


Lesenswert?

Eine DeltaSol BS von Resol tut hier mit einem wasserführenden Kamin in 
Verbindung mit einem 600l-Pufferspeicher ihren Dienst seit ca. 8 Jahren. 
Mit 2 Pt1000 (wahlweise auch 3) und einem 230V-PWM-Ausgang.

Vor die Pumpe, die das Kaltwasser in den Kamin pumpt, kommt noch ein 
Magnetventil, damit das warme Wasser nicht rückwärts aus dem Kamin 
gedrückt wird. Das Magnetventil muss mit der PWM-Spannung zurecht 
kommen, das können nicht alle Magnetventile.

Die Steuerung kann mehr, als man selbst in der nächsten Zeit 
programmieren kann und hat eine sichere Hardware.

Selbermachen ist schön, aber diesen Aufwand würde ich nur für das 
Datensammelnen, höchstens noch in die Überwachung stecken. Aber nicht in 
die Steuerung selbst, das können die käuflichen Steuerung besser, 
flexibler in den Einstellungen sind sie auch noch.


Blackbird

von Michael W. (micha124)


Lesenswert?

Hi,

danke für das weitere wertvolle Feedback. Ich versuch mal der Reihe nach 
zu antworten:

> Wenn du garantieren kannst dass keiner der sensoren mahr als 125 deg C
sieht ist das ein fall für DS18B20 sensoren.

Sensoren sind PT1000 und bleiben es auch - die sind in der Anlage 
verbaut und ich kann/will die nicht tauschen.

> Beim Verstärker hast dich verrechnet.

Zum Verstärkungsfaktor: So ganz verstehe ich die Korrektur von Helge 
hier nicht.

R8 ist bei mir 1k = PT1000 bei 0° und damit die untere Messgrenze. Mit 
1k1 wird diese nach oben verschoben (wirklich kaltes Wasser wird da 
vermutlich nie vorhanden sein). Grob überschlagen habe ich bei 100° eine 
Spannungsdiffernz von ca. 0,15V. Die Verstärkung von Helge liegt so etwa 
bei 10 und damit dann bei 1,5V. Den Atmega betreibe ich mit 5V. Nach 
meiner Rechnung habe ich eine Verstärkung von 22 und damit dann schonmal 
3,3V - was auch noch nach oben Luft hat. Besser wäre vermutlich so 
Richtung 30. Effektiv betrifft dies aber ja auch nur die 
Widerstandswerte. Da werde ich nochmal ein bisschen tiefer reingehen und 
meine aktuelle Testschaltung mal grob kalibrieren. Dann sehe ich ja, ob 
meine Theorie korrekt ist oder nicht.

> diverse Hinweise zu LEDs
Nette Idee mit dem WS2812, das ist aber bei mir denke ich etwas Overkill 
(wenns auch in den Fingern juckt - :-)), da die Anzeige direkt am Gerät 
eher zu Debugzwecken dient. Der Coolness-Faktor und Stromverbrauch ist 
da sinnvoller im WZ-Display aufgehoben.

Was auf jeden Fall Sinn ergibt, ist die freien Ports "verfügbar" zu 
machen.
Ggf. sehe ich auch noch die eine oder andere Status-LED vor.

Danke auch für das Real-Einsatz-Feedback. System sieht bei mir ähnlich 
aus (wenn auch von Viessmann). Ist ebenfalls ein Schichtspeicher, der 
neben Kamin mit Solar und nem Gas-Brenner bestückt wird und für WW und 
Heizung genutzt wird mit 2 Kreisläufen. Hyterese etc. habe ich schon 
eingeplant, das konkrete Feintuning steht aber noch aus. Im ersten 
Schritt will ich das mal so in etwa wie die bisherige aufbauen und dann 
mal Erfahrungswerte sammeln. Im System vorhanden ist auch ein 
60°-3-Wege-Ventil, welches die Wassertasche vor kaltem Wasser schützt.

Die Pegelwandlung für I2C ist ebenfalls bereits vorhanden, wenn auch 
diese eigentlich nicht notwendig wäre, solange die Pullups im Atmega aus 
bleiben. Habe dennoch bereits einen Pegelwandler zwischen Raspi und Rest 
eingefügt für den Fall eines sonst teuren Programmierfehlers (v.a. da 
Raspis gerade Mangelware sind).

I2C-Bus-Geschwindigkeit ist bei mir übrigens 40kHz. Das reicht für im 
Normalbetrieb einmal die Minute die Daten abfragen.

Grüße und Danke
Micha

von Jester (Gast)


Lesenswert?

Jester schrieb im Beitrag #7222102 Stuss ...

Sorry, da ging mir doch glatt eine Negation verloren. Gemeint war 
natürlich:

"Selbst im professionellen Bereich, und trotz Prototyp, funktioniert die 
erste Platine SELTEN ohne Änderungen."

von Carsten-Peter C. (carsten-p)


Angehängte Dateien:

Lesenswert?

Hallo, der Pufferspeicher lässt sich auf unterschiedliche Weise 
anschließen. Ich wollte, das meine Gastherme Vitodens 200 nur das 
nachheizt, was der Pufferspeicher nicht mehr schafft. Irgendwo, ich 
glaube bei Vissmann, habe ich mal so was ähnliches gesehen, aber nie 
wiedergefunden. Anbei eine alte Zeichnung, die das Prinzip zeigen soll. 
Das funktioniert sehr gut. Nur der Mischer ist Quatsch.
Gruß Carsten

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.