Forum: Mikrocontroller und Digitale Elektronik Temperaturregelung Heizspule über Widerstand


von Lars N. (lars_n)


Angehängte Dateien:

Lesenswert?

Hallo,

Ich möchte die Temperatur eines kleinen Heizelements (~300W) über einen 
Microcontroller regulieren. Die Messung der Temperatur kann im Betrieb 
nicht über einen Temperatursensor erfolgen, sondern muss über die 
Abhänigkeit des Widerstands der Heizspule von der Temperatur berechnet 
werden. (Ähnlich wie bei einer E-Zigarette)
Während des Betriebs wollte ich den Widerstand über eine Spannungs- und 
Strommessung berechnen. Um darüber die Temperatur berechnen zu können, 
wäre es sinnvoll, den Referenzwiderstand (R0) der ausgeschalteten Spule 
genau zu kennen (R(T) = R0 + R0*k*((T-T0)/100);). Die Heizspule hat bei 
Umgebungstemperatur natürlich einen geringen Widerstand (~0.3 Ohm/m) - 
ich hatte überlegt, diesen über eine konstante Stromquelle (~100mA) mit 
einem LM317 auszumessen. Dafür müsste der Versorgungsstromkreis (15 V, 
versorgt auch den Microcontroller) aber für die Messung von der 
Heizspule getrennt werden.
Ließe sich das über einen P-Channel MOSFET vor und einen N-Channel 
MOSFET nach der Spule, die für die Messung beide im Sperrzustand sind, 
erreichen?
Oder gibt es dafür generell einen sinnvolleren Ansatz?
Im Anhang ist ein Screenshot des grundlegenden Schaltkreises (ohne LM317 
etc. für die Referenzwiderstandsmessung)(versehtnlich doppelt)

Ich bin in der ganzen Schaltungsthematik noch nicht so lange drin, 
deswegen wäre der Input von ein paar Erfahreneren bestimmt sinnvoll.

Freue mich über gute Ratschläge.

Grüße,
Lars

: Bearbeitet durch User
von HildeK (Gast)


Lesenswert?

Lars N. schrieb:
> Die Messung der Temperatur kann im Betrieb
> nicht über einen Temperatursensor erfolgen, sondern muss über die
> Abhänigkeit des Widerstands der Heizspule von der Temperatur berechnet
> werden.

Heizungen verwenden üblicherweise Konstantandraht. Die Besonderheit: die 
Temperaturabhängigkeit des Widerstands ist minimal.

Dir ist bewusst, dass 300W an 15V 20A Strom bedeuten? Mir ist nicht ganz 
klar, wo in deinem Plan die Heizspule angeschlossen ist, und wozu zwei 
BUZ71 drin sind. Aber der BUZ71 kann nur 17A (in manchen DB auch nur 
14A). Außerdem wirst du aus dem Arduino keine 10V für die Gatespannung 
liefern können - so viel will der nämlich zum kompletten Einschalten.
Also: falscher Transistor!

Aber auch wenn die Empfindlichkeit der Widerstandsänderung ausreichend 
sein sollte, warum reicht dir dann der gemessene Nennstrom (ACS712) 
nicht aus? Bei fester Versorgungsspannung bringt das doch die selbe Info 
wie die Spannungungsmessung bei einem Konstantstrom ...

von Lars N. (lars_n)


Lesenswert?

Aber bei einer sehr geringen Änderung des Widerstandes, muss ich umso 
genauer messen, um ein exaktes Ergebnis zu bekommen... Oder liege ich da 
falsch?
Ich wollte Nickel Draht verwenden, der einen Widerstand von 0.32 Ohm/m 
hat, und davon ein circa 0.7 m langes Stück.
Die Spule ist dann an PAD5 und PAD6 angeschlossen.

Bezügich des MOSFETs sind die Einwände berechtig, ich will eigentlich 
auch einen IRL 3705N, der MOSFET im Plan ist nur ein Platzhalter, da ich 
den IRl 3705N in der Liste nicht gefunden habe.

Ursprünglich hatte ich Sorge, dass der ACS712 die 60 Amps (15V/(0.32 
Ohm/m * 0.7m)) vielleicht nicht so gut verkraftet, aber wenn ich den 
MOSFET sowieso per PWM ansteuere, kann ich natürlich auch erstmal nur 5V 
durchschicken...

: Bearbeitet durch User
von Falk B. (falk)


Lesenswert?

Lars N. (lars_n)

> Ich möchte die Temperatur eines kleinen Heizelements (~300W)

Klein? Sind eine Fähigkeiten so groß?


> über einen
> Microcontroller regulieren. Die Messung der Temperatur kann im Betrieb
> nicht über einen Temperatursensor erfolgen, sondern muss über die
> Abhänigkeit des Widerstands der Heizspule von der Temperatur berechnet
> werden. (Ähnlich wie bei einer E-Zigarette)

Dann sollte der Temperaturkoeffizient des Materials ausreichend groß 
sein. Konstantan wäre eher die schlechte Wahl, das sagt ja schon der 
Name!

> Während des Betriebs wollte ich den Widerstand über eine Spannungs- und
> Strommessung berechnen.

So in etwa.

> Um darüber die Temperatur berechnen zu können,
> wäre es sinnvoll, den Referenzwiderstand (R0) der ausgeschalteten Spule
> genau zu kennen (R(T) = R0 + R0*k*((T-T0)/100);).

Wenn es denn nur eine lineare Abhängigkeit gibt.

> Die Heizspule hat bei
> Umgebungstemperatur natürlich einen geringen Widerstand (~0.3 Ohm/m) -
> ich hatte überlegt, diesen über eine konstante Stromquelle (~100mA) mit
> einem LM317 auszumessen. Dafür müsste der Versorgungsstromkreis (15 V,
> versorgt auch den Microcontroller) aber für die Messung von der
> Heizspule getrennt werden.

Ja.

> Ließe sich das über einen P-Channel MOSFET vor und einen N-Channel
> MOSFET nach der Spule, die für die Messung beide im Sperrzustand sind,
> erreichen?

Nicht so, wie du dir das naiv vorstellst. Außerdem braucht man nur einen 
Schalter, wenn man es richtig macht.

> Oder gibt es dafür generell einen sinnvolleren Ansatz?
> Im Anhang ist ein Screenshot des grundlegenden Schaltkreises (ohne LM317
> etc. für die Referenzwiderstandsmessung)(versehtnlich doppelt)

Total chaotischer Schaltplan.

> Ich bin in der ganzen Schaltungsthematik noch nicht so lange drin,
> deswegen wäre der Input von ein paar Erfahreneren bestimmt sinnvoll.

> Aber bei einer sehr geringen Änderung des Widerstandes, muss ich umso
> genauer messen, um ein exaktes Ergebnis zu bekommen...

Ja klar. Darum nimmt man in DEM Fall lieber "schlechten" Kupferdraht, 
der hat 0,4%/K.

> Ich wollte Nickel Draht verwenden, der einen Widerstand von 0.32 Ohm/m
> hat, und davon ein circa 0.7 m langes Stück.

Und du glaubst, dort 300 Heizleistung umsetzen zu können? Dream on. Da 
glüht das Ding wie eine Glühwendel einer Glühbirne.

> Die Spule ist dann an PAD5 und PAD6 angeschlossen.

Jaja.

> Bezügich des MOSFETs sind die Einwände berechtig, ich will eigentlich
> auch einen IRL 3705N, der MOSFET im Plan ist nur ein Platzhalter, da ich
> den IRl 3705N in der Liste nicht gefunden habe.

Monster-MOSFETs mit dreistelligen Drainströmen lösen das Problem sicher 
nicht.

> Ursprünglich hatte ich Sorge, dass der ACS712 die 60 Amps (15V/(0.32
> Ohm/m * 0.7m)) vielleicht nicht so gut verkraftet, aber wenn ich den

Der ist vollkommen unsinnig, denn du brauchst keine galvanische Trennung 
und macht auch keine High Side Messung. Aber dein Plan ist sowieso 
unbrauchbar.

> MOSFET sowieso per PWM ansteuere, kann ich natürlich auch erstmal nur 5V
> durchschicken...

Spannung wird angelegt, nicht durchgeschickt.

von HildeK (Gast)


Lesenswert?

Lars N. schrieb:
> Aber bei einer sehr geringen Änderung des Widerstandes, muss ich umso
> genauer messen, um ein exaktes Ergebnis zu bekommen... Oder liege ich da
> falsch?
Da liegst du schon richtig. Es ist die Frage, ob der ACS genauer ist 
oder du eine Konstantstromquelle genauer hinbekommst. Abgesehen davon: 
bei 100mA Strom gibt das ja nicht mal 30mV Spannungsabfall. Auch den 
musst du genau messen können.

> Die Spule ist dann an PAD5 und PAD6 angeschlossen.
Was hängt dann an PAD3 und PAD4?
>
> Bezügich des MOSFETs sind die Einwände berechtig, ich will eigentlich
> auch einen IRL 3705N, der MOSFET im Plan ist nur ein Platzhalter, da ich
> den IRl 3705N in der Liste nicht gefunden habe.
OK. Hätte man gleich dazu schreiben können, dann hätte ich mir den Check 
ersparen können.

> Ursprünglich hatte ich Sorge, dass der ACS712 die 60 Amps (15V/(0.32
> Ohm/m * 0.7m)
Das sind dann aber schon über 1000W (15V/(0.32 Ohm/m * 0.7m) und keine 
300W, wie eingangs genannt.

> vielleicht nicht so gut verkraftet, aber wenn ich den
> MOSFET sowieso per PWM ansteuere, kann ich natürlich auch erstmal nur 5V
> durchschicken...
Was meinst du mit 5V? Statt der 15V-Versorgung der Heizung oder die 
Gatespannung des MOSFET bzw. Versorgung des Arduino? Ich weiß leider 
nicht, welche Arduino-Varianten mit 5V und welche mit 3.3V arbeiten. Da 
aber an einem Pin '3.3V' steht, gehe ich von letzterem aus und da musst 
du schon genau nach dem richtigen MOSFET suchen. Auch der IRL3705 sollte 
5V am Gate bekommen, er ist erst ab 4V spezifiziert. Sonst kannst du den 
anstatt der Heizwendel verwenden .... :-).

von foobar (Gast)


Lesenswert?

Wenn du den Widerstand während des Heizens messen kannst, kannst du den 
doch auch messen, wenn das Heizelement noch kalt ist. Nen kurzer Impuls, 
reicht - Heizungen sind träge und die Temperaturmessung über den 
Widerstand ist eh nicht allzu genau, insbesondere nicht über ne Messung 
per Hallsensor. Warum kein Shunt?

@Hilde: man muß ja keinen Konstantandraht nehmen. Die Dampfer nutzen 
dazu SS316 (nur nen kleiner TCR) oder Ni200 (großer TCR, einfach zu 
regeln).

Aus dem Plan werd ich auch nicht schlau.

PS: Nen paar Beispielwerte aus meinen Coilrechner:
1
Material   AWG/   mm   °C    mm     Ω  Volt   Watt
2
Ni200       26/0.405   20  1000  0.75  15.0  301.8
3
                      220        1.63        137.9
4
SS316L      18/1.024   20   850  0.76  15.0  294.4
5
                      220        0.90        250.1

von Lars N. (lars_n)


Lesenswert?

> Heizungen sind träge und die Temperaturmessung über den
> Widerstand ist eh nicht allzu genau, insbesondere nicht über ne Messung
> per Hallsensor. Warum kein Shunt?

Das mit dem Shunt sollte ich mir vielleicht genauer anschauen :)
Bei meinen vorherigen Recherchen bin ich dann vor allem auf den Hall 
Sensor gestoßen, da für einen "normalen" Spannungsteiler der 
Messwiderstand zu groß gewesen wäre für den Strom...
Werden die Ergebnisse damit genauer?

> PS: Nen paar Beispielwerte aus meinen Coilrechner:Material   AWG/   mm
> °C    mm     Ω  Volt   Watt
> Ni200       26/0.405   20  1000  0.75  15.0  301.8
>                       220        1.63        137.9
> SS316L      18/1.024   20   850  0.76  15.0  294.4
>                       220        0.90        250.1

Danke für die Werte, du hast damit offensichtlich schon etwas Erfahrung 
:)

@Hilde danke dir, das Board hat 5V VCC, laut den Datenblättern des 
MOSFETs sollte das ausreichen...

von foobar (Gast)


Lesenswert?

Btw, die Dampfer benutzen gerne den IRLB3034.

von HildeK (Gast)


Lesenswert?

Lars N. schrieb:
> @Hilde danke dir, das Board hat 5V VCC, laut den Datenblättern des
> MOSFETs sollte das ausreichen...

HildeK!

Sind die 5V die Versorgung des Prozessors auf dem Board? Wenn ja, warum 
gibt es einen Pin, der mit 3V3 beschriftet ist? Einfach nochmals prüfen.
Daher meine Zweifel und mein Hinweis ...

foobar schrieb:
> @Hilde: man muß ja keinen Konstantandraht nehmen. Die Dampfer nutzen
> dazu SS316 (nur nen kleiner TCR) oder Ni200 (großer TCR, einfach zu
> regeln).

HildeK!

Klar, es gibt Materialien mit großem TK und mit denen wird so was besser 
oder sogar gut gehen. Der TO hat jedoch nichts dazu verlauten lassen, 
weder das Material noch den TK genannt. Auch nicht die Temperatur, auf 
die er regeln will (oder habe ich das übersehen?). Und nicht die 
Genauigkeit, die benötigt wird.
Wenn dann noch bei 100mA nur einige 10mV abfallen, dann wird eine gute 
Auflösung schwierig zu realisieren.
Bei Draht mit einem großen TK regelt sich das ja fast von selbst: deine 
Beispielmaterialien zeigen es ja fast: Ni200, bei 20° 300W, bei 220° nur 
noch 140W an einer festen Spannung.

von Lars N. (lars_n)


Lesenswert?

> Btw, die Dampfer benutzen gerne den IRLB3034.

Danke für den Hinweis! Da kann man ja einiges an strom durchschicken...

Hättest du auch ein konkretes Beispiel für einen passenden SMD Shunt?

von Lars N. (lars_n)


Lesenswert?

> Sind die 5V die Versorgung des Prozessors auf dem Board? Wenn ja, warum
> gibt es einen Pin, der mit 3V3 beschriftet ist? Einfach nochmals prüfen.
> Daher meine Zweifel und mein Hinweis ...

Beim Arduino ist das anscheinend so geregelt, dass VCC der digitalen 
output Pins gleich der Prozessor-Versorgungspannung ist...

von Thomas (Gast)


Lesenswert?

Es sollte sowieso zu denken geben, warum nicht dieser etwas Mehraufwand 
an Sensorkabel gemacht wird. Ein 2. Messkabel mit dem Lastkabel zu 
verlegen, sollte doch nicht das Problem sein. Und dann könnte man sehr 
genau measen, und bei zu großer Temp reagieren. Aber so? Über den Shunt 
was messen? den Strom? und was weiß ich dann?

Schalten könnte man sowas auch besser über Solid-State Relais. Die 
machen bis 90 Amp. Und sind vom Arduino oder Ähnlichen direkt 
ansteuerbar.

Meine Angaben, wie immer beim Lotto, ohne Gewähr

von Michael B. (laberkopp)


Lesenswert?

Lars N. schrieb:
> Oder gibt es dafür generell einen sinnvolleren Ansatz?

Gewisse Lötkolben machen das, heizen per Phasenanschnitt und Heizwendel, 
und messen den Widerstand der Heizwendel mit ihrer positiven 
Temperaturabhängigkeit um die Temperatur zu erfahren.

Aber WIE sie das machen, weiss ich nicht, irgendwie in den Pausen des 
Heizstromes. Man sollte aber einen Schaltplan auftreiben können.

: Bearbeitet durch User
von Thomas (Gast)


Lesenswert?

Gewiss doch.

> Gewisse Lötkolben machen das, heizen per Phasenanschnitt und Heizwendel,
> und messen den Widerstand der Heizwendel mit ihrer positiven
> Temperaturabhängigkeit um die Temperatur zu erfahren.

Meine Weller WECP20 hat dafür aber eineb Fühler an Pin 3 und 4
-- um die Temperatur zu erfahren.

Deshalb ist sie auch so genau.

von Ralph B. (rberres)


Lesenswert?


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.