PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Schaltplan AD595 Thermocouple HEATER FAN - prüfen



DjEKI
26.04.2015, 15:59
Moin,

Ich wollte mal von euch prüfen lassen, bevor ich etwas kaputt mache. Bitte seid so nett :)

30095

AD595 soll Temperatur messen.
Heater und Fan sollen durch IRLZ34N vom Arduino angesteuert werden.
Die Dioden wollte ich erst weg lassen, aber irgendwie kommt mir die Schaltung ohne so nackig vor. Müssen die dabei sein?

mfg EKI

021aet04
26.04.2015, 17:29
Die Schaltung vom AD... passt. Nur die Schaltung der Mosfet ist falsch. Ich würde da einfach +12V auf die Heizung (Lüfter) und auf Drain des nfet, source auf GND. Zwischen gate und source noch einen widerstand (über 10k) und fertig.

Wenn du highside schalten willst einfach einen PFet oder nfet mit highsidetreiber.

MfG hannes

DjEKI
26.04.2015, 18:09
30096

So ungefair? Ich habe nur ein Bruchteil von dir verstanden, sorry ^^
Meinst du, die Dioden sind wichtig?
Was ist highside?

021aet04
26.04.2015, 19:18
Genau so.

Diode ist eigentlich nur wichtig wenn man eine Induktivität hat, ansonsten entsteht eine hohe Induktionsspannung (beim abschalten) die den fet und vielleicht noch weitere Bauteile zerstört. Also beim Lüfter zum Beispiel. Diese kommt antiparallel zur Last. Also parallel zur Last aber in umgekehrter Richtung (= Anode an J1-2 und Kathode an J1-2). Bei der Heizung ist das nicht nötig weil das nur eine ohmsche Last ist und es keine Induktionsspannung gibt.

Highside bedeutet "über der last" also zwischen Versorgung + und Last. Das Gegenteil wäre lowside, also das was du jetzt hast.

MfG Hannes

DjEKI
26.04.2015, 20:00
die Schaltung vorher, hätte gar nicht funktioniert? Die Verbraucher sind jetzt nur vor dem mosfets, also umgekehrt.

021aet04
26.04.2015, 20:48
Sie hätte funktioniert, aber nicht so wie du es willst.
1) was hätten die Dioden für einen sinn?
2) wie schaut die Spannungsversorgung aus? Wie erzeugst du die 5V? Stammen die aus den 12V? Wenn ja dann sind die Massen gleich und dann würdest du einen PFet oder einen highside Treiber benötigen, weil sonst der fet nicht richtig durch schaltet und heiß wird und die last nicht die volle Spannung erhält.


MfG Hannes

i_make_it
27.04.2015, 08:37
Bei der Heizung ist das nicht nötig weil das nur eine ohmsche Last ist und es keine Induktionsspannung gibt.

Die Heizung ist zwar eine Wiederstandsheizung, aber bei der Baugröße, und PWM Ansteuerung zur Temperaturregelung, könnte sein, das der Heizwendel schon einen bemerkbaren induktiven Anteil hat.
Da eine Freilaufdiode nicht die Welt ist, könnte es Sinn machen sie einzubauen, Gibt es keine nennenswerte Selbstinduktion hat man nur eine Diode zuviel. Gibte es eine, spart man sich das vorzeitige Ableben des FETs.

Eventuell hat der Anbieter da zur Ansteuerung noch Informationen/Empfehlungen.

DjEKI
27.04.2015, 16:09
Die 5v werden komplett vom arduino kommen, genauer gesehen vom usb. Die 12v ist ein extra netzteil. Stimmt der plan denn noch?
Wohin sollte ich die dioden am besten anschließen?

Mfg

021aet04
27.04.2015, 18:18
Der Plan stimmt trotzdem. Du darfst nur nicht vergessen die beiden GND (5V und 12V) zu verbinden. Wo die Dioden hingehören habe ich bereits oben geschrieben, antiparallel zur Last.

MfG Hannes

DjEKI
27.04.2015, 18:41
Ich hoffe, ich habe das richtig umgesetzt:
30100
Mhm, sehe gerade, dass es nicht zur Last ist, sondern nach der Last, ist das nicht egal? ^^

5V und 12V sind wie auf dem Schaltplan mit GND versehen. Also auch verbunden.
Also, J4-1 ist -5V.

021aet04
27.04.2015, 19:12
Also das ist falsch. Die Diode muss antiparallel zur Last sein, diese baut die hohe Spannung ab. Wenn man es so macht wie du es gezeichnet hast, hast du nichts gewonnen. Die Spannung wird nur etwas niedriger, aber trotzdem zu hoch. http://www.mikrocontroller.net/attachment/226854/Motor_PWM_1.gif

Wenn du GND verbindest hast du von dort einmal 5 V und 12V, nicht -5V. Woher sollten die plötzlich kommen? GND ist meistens der Bezugspunkt.

MfG Hannes

DjEKI
27.04.2015, 19:35
Das mit dem GND habe ich meist sowieso nicht verstanden. Für mich ist das -V. Ich wollte mit -5V genau beschreiben, dass es der Arduino ist und eine seperate Stromversorgung hat. Also 12V und 5V sind 2 verschiedene Netzteile. Naja, teilen sich eine Haussteckdose, weis nicht, ob es da auch eine Rolle spielt ^^

Sonst sieht der Schaltplan jetzt so aus:
30102

021aet04
27.04.2015, 20:07
So ist der Plan richtig.

Bei -V muss man immer aufpassen. Es gibt auch bipolare Versorgung. Dort hat man 0V als Bezugspunkt und dann noch + bzw - Versorgung (z.b +/- 12V). Das wird häufig bei analogen schaltungen verwendet. GND ist immer der Bezugspunkt, das muss aber nicht 0V sein. Das kann z.b. Auch +12V sein. Bei dir ist GND gleichzeitig 0V.

MfG Hannes

DjEKI
27.04.2015, 20:19
Ok, ich danke dir :)

DjEKI
29.04.2015, 18:51
Alles aufgebaut und funktioniert auch gut(Lüfter, Heizer steuern sich getrennt), der Heizer wurde auf 230C hochgeheizt (Mosfet kühl) und sollte sich dort oben auch halten. Leider heizte es immer weiter. Ich habe alles zur Sicherheit mit Strom gemessen (Multimeter) und beim heizen kam es auf 1.8A. Als die Endtemperatur 230C erreicht hatte, konnte ich 1.38A messen und das schwankend mit 1.8A. Leider darf das nicht so sein und die Temperatur stieg immer weiter an. Als ich das mal mit dem vorherigen Schaltplan aufgebaut hatte, da konnte man gut beobachten, dass die Temperatur gehalten wurde und das mit 0-1.8A schwankend. Nur sind immer Lüfter und Heizung gleichzeitig angesprungen. Jetzt kann ich beides getrennt steuern, was ich auch wollte, aber die Heizung geht nicht mehr aus. Wenn ich J4-5 trenne, dann müsste die Heizung ausgehen, aber powert mit 1.38A weiter. Das Mosfet wird auch richtig doll heiß. Denn als die Endtemperatur erreicht wurde, konnte ich plötzlich fühlen, wie schnell es heiß wurde.
Also, da ist irgendwo ein Fehler. Das Mosfet ist sicherlich jetzt kaputt.
Oder kommt das alles mit pwm nicht klar? Ich könnte es ausschalten, aber ich wollte das gerne mit pwm.

mfg EKI

021aet04
29.04.2015, 19:53
Dann passt vermutlich etwas mit dem Programm nicht. Wenn der Mosfet nicht richtig angesteuert wird, wird er heiß. Woher kommt das Signal? Direkt vom Controller oder von einem Mosfettreiber? Wenn es direkt vom Controller kommt, könnte es sein das du nur zwischen Eingang und Ausgang umschaltest oder das generell der Pin als Eingang geschaltet ist und du nur den internen Pullup ein und ausschaltest.

Versuche einmal ein eigenes Programm zu schreiben indem du nur diese beiden Ausgänge ansteuerst (Lüfter und Heizung). Zuerst nur mit ein/aus, wenn das funktioniert mit PWM.

MfG Hannes

DjEKI
29.04.2015, 20:46
Das ist eine gute Idee, Mosfet muss ich erstmal austauschen. Zum Glück habe ich etwas mehr bestellt ^^
PWM hat ja etwas mit Puls zu tun. Ich kann mir darunter nicht so viel vorstellen. Wird es sowas sein, dass der in mikroschritten von 0 auf 5V Springt und das schnell abwechselnd? Oder geht der auch mal auf 3V.
Also, ich nutze Teacup als Firmware und der Controller wird direkt an das MOsfet angeschlossen.
Was mir immer noch auffällt, die temperatur schwangt sehr stark, wenn sie auf 230C ist. Dann zeigt das Programm 220-250C stark schwanked.

021aet04
29.04.2015, 23:50
PWM heißt Puls weiten Modulation, dabei schaltest du zwischen 0 und 5V (zumindest hier) hin und her. Wenn du z.b. 50% 5V und 50% 0V hast ergibt das einen tastgrad von 50%. Google hilft hier weiter.

Wenn die Temparatur sehr stark schwankt kann es auch sein das der Temperaturfühler nicht richtig montiert ist (schlechte warmeubertragung).

Ich würde einmal ein einfaches Programm schreiben, beachte aber das du den Controller dann nicht mehr vom Computer aus bedienen kannst und du auch keine Temperaturen siehst. Wenn dann musst du das selbst schreiben. Achte auch darauf das du nicht zu lange eingeschaltet lässt.

MfG Hannes

Peter(TOO)
30.04.2015, 01:20
Hallo,

PWM hat ja etwas mit Puls zu tun. Ich kann mir darunter nicht so viel vorstellen. Wird es sowas sein, dass der in mikroschritten von 0 auf 5V Springt und das schnell abwechselnd? Oder geht der auch mal auf 3V.

Nun nehmen wir mal an du hast eine Heizung mit 100W, willst aber nur mit 50W heizen.

- Die analoge Methode ist es nun, Strom und Spannung so einzustellen, dass die Heizung nur die 50W abgibt. Das Problem bei analog ist, dass man dazu an einem anderen Ort die überschüssigen 50W verheizt ...

- PWM funktioniert digital. Um die 50W zu erreichen wird die Heizung z.B. 0.5s Eingeschaltet und dann 0.5s ausgeschaltet. Als Mittelwert ergeben sich dann auch 50W. Der Vorteil dabei ist, dass kaum Verluste entstehen. Praktisch kennst du vielleicht den Energieregler am Kochherd, da wird mit einer Periodendauer im Bereich von 10s gearbeitet, hört man bei manchen Geräten an einem entsprechenden klicken.
Wichtig bei der Geschichte sind die Zeitkonstanten. Das System braucht Zeit um sich aufzuheizen, gerade bei normalen Heizungen liegen die Zeiten meistens im Bereich von Minuten bis Stunden. Wenn die PWM-Frequenz kleiner als diese Zeitkonstante ist, merkt man gar nicht, dass eigentlich immer stossweise geheizt wird, das System nimmt dann den Mittelwert an.
Im Prinzip funktioniert auch die Öl- oder Gasheizung in deinem Haus so. Der Brenner läuft eine Weile, bis das Wasser wieder aufgeheizt ist, dann wird er abgeschaltet, bis das Wasser wieder zu kühl ist (OK, stimmt heute nicht mehr so ganz, da aktuelle Brenner auch noch die Heizleistung modulieren können).



Was mir immer noch auffällt, die temperatur schwangt sehr stark, wenn sie auf 230C ist. Dann zeigt das Programm 220-250C stark schwanked.

OK, da stimmt etwas mit der Regelung nicht, möglicherweise nur ein paar Parameter!

Ein einfacher Thermostat schaltet bei einer bestimmten Temperatur Ein oder Aus. Damit er nicht flattert hat er eine Hysterese, d.h. er schaltet bei einer bestimmten Temperatur Aus und bei einer etwas kleineren wieder ein. Nun braucht es aber etwas Zeit, zwischen Heizung einschalten und erhöhen der Temperatur direkt am Sensor des Thermostaten. Wenn der Thermostat ausschaltet, ist die Heizung selbst eigentlich schon viel heisser geworden als gewünscht. Eine Zeit lang verteilt sich die Wärme dann noch, die Heizung wird also Wärmer als der Schaltpunkt des Thermostaten.
Praktisch bekommt man also immer eine Solltemperatur, welche +/- um den Sollwert schwankt.

Besser ist ein P-Regler (P = Proportional). Hier berechnet man zuerst die Differenz zwischen Soll- und Istwert.

Jetzt muss ich noch etwas Theorie einschieben:
Um eine bestimmet Masse auf eine bestimmte Temperatur aufzuheizen, muss man auch eine bestimmte Menge an Energie da rein stecken. Wie viel das ist, hängt vom Material ab und ist eine Konstante. Wie schnell man die Energie rein bekommt, hängt, hauptsächlich, von der Temperaturdifferenz zwischen Material und Heizung ab. Praktisch erfolgt also das Aufheizen immer langsamer, je höher die erreichte Temperatur gerade ist.
Hier kommt dann die berühmte e-Funktion ins Spiel. Eine Heizung verhält sich genau gleich wie ein Kondensator, welcher über einen Widerstand aufgeladen oder entladen wird. Die Formeln für die Heizung sind die selben.
Dummerweise gibt es nun auch noch Verluste :-(
Diese sind proportional zur Differenz zwischen der Temperatur des Materials und der Umgebungstemperatur. Diesen Parameter nennt man Wärmewiderstand und es gelten im Prinzip die selben Formeln wie für Widerstände. Der Wärmewiderstand hängt dann von der Geometrie und der Isolation ab.
Um nun eine erreichte Temperatur zu halten, muss man genau so viel Heizleistung aufbringen, wie über die Verluste verloren gehen.
Irgendwo gibt es dann eine Temperatur, bei welcher die Verluste genau der maximalen Heizleistung entsprechen. Auf eine höhere Temperatur bekommt man dises System dann nicht )Ohne die Isolation zu verbessern oder die Umgebungstemperatur anzuheben).


Zurück zum P-Regler!
Diesen Parametrisiert man so, dass die Differenz zwischen Soll und Ist ein Mass für die Heizleistung ist. z.B. wird die Heizung bei >20K Differenz immer 100%, bei 10K sind es dann noch 50% und bei 0K 0%. Da wir aber Verluste haben, erreicht man mit einem P-Regler nie die Soll-Temperatur, sondern liegt immer etwas darunter.

Der nächste Schritt wäre dann der PI-Regler ( P = Proportional, I = Integral)
Hierbei wird die Abweichung, welche der P-Regler hinterlässt einfach über die Zeit Addiert und ergibt eine zusätzlich Stellgrösse für die Heizleistung.

Noch etwas weiter geht dann der PID-Regler ( P = Proportional, I = Integral, Differential)
Hierbei wird noch berücksichtigt, wie schnell sich die Temperatur ändert. Ändert sic die Temperatur schnell, dann wird die Heizleistung stärker korrigiert, als wenn sich die Temperatur nur gemütlich ändert, dann ist dafür im wesentlichen der I-Regler zuständig.

Tja, die Theorie tönt jetzt schön, aber die Praxis hat jede Menge Fallstricke :-(
Dadurch, dass bei I und D die Zeit ins Spiel kommt, kann man auch Oszillatoren bauen, die Regelung schwingt dann ;-(
Neben der richtigen Berechnung der Regelparameter, hat man in der Praxis noch das Problem, dass nichts konstant ist!
z.B. ist Zimmertemperatur eine Variable, manchmal hat man sogar im Winter höhere Temperaturen als im Sommer (z.B. direkt über einer Heizung)!

Praktisch erhältlich sind heute fast nur noch Thermostaten, P-Regler und PID-Regler. Beim PID-Regler kann man durch die Parameter die einzelnen Anteile ganz abschalten, weshalb dieser dann z.B. auch als P-Regler oder D-Regler verwendbar ist. (Der P-Anteil beträgt "k * (Soll-Ist)", setzt man k=0 ist der P-Anteil abgeschaltet.)
Früher war die Hardware für einen PID-Regler wesentlich aufwändiger als für einen P-Regler, heute liegt der Unterschied nur in der Software und dem etwas höheren Speicherbedarf für das Programm und die Parameter.

MfG Peter(TOO)

DjEKI
30.04.2015, 08:59
Danke euch beiden,
Ein programm für den ad595 ist zum glück sehr simpel zu schreiben und von daher werde ich das testen ohne teacup firmware.

021aet04
30.04.2015, 10:21
Welchen widerstand hast du bei r1 bzw r2 verbaut? Zum testen brauchst du vorerst nur ein Messgerät und dann die Ausgänge ansteuern. Der ad ist nicht zwingend notwendig.

MfG Hannes

DjEKI
30.04.2015, 12:05
Es sind 100k verbaut. Kannst du evtl erkennen, was für ein pulsintervall teacup verwendet?

021aet04
30.04.2015, 14:06
Ich kenne mich mit der teacup Firmware nicht aus. Das kann man aber einstellen, ich weiß aber nicht ob es da bestimmte befehle gibt (von der Software) oder in man das im Controller Programm ändern muss.

Der pulsintervall nennt sich PWM Frequenz.

MfG Hannes

DjEKI
30.04.2015, 17:52
Leider ist Teacup in eine Arduino Sprache geschrieben, die mit C++ geschrieben wurde. Das ist für mich eine neue Welt.
Egal, es funktioniert jetzt. Kann ja sein, dass das Mosfet einfach schon vorher kaputt war. Idiotischerweise hatte ich pwm auscgeschaltet, wo das Mosfet kaputt gegangen ist. Nun habe ich es angeschaltet, den Sensor von ungefiltert auf smoothy gestellt und jetzt funktioniert alles super. Jedenfals "noch" super ^^
Kurze Stromstöße kann ich mit dem Multimeter erkennen, wenn die Temperatur gehalten wird und die Temperatur schwankt von 225 bis 235. Eigentlich super. Der Lüfter ist währenddessen auch anzusteuern.

Vielen Dank.

Kleines Nebenbei:
Teacup ist sowieso eine merkwürdige Firmware.
Max6675 sollte unterstützt werden, was aber überhaubt nicht funktioniert. Bestimmte Pins werden einfach nicht richtig geschalten. Somit habe ich ein Verstärker umsonst gekauft...
AD595 ist ein verdammt simpler aufbau und simple programmierung für den Controller. Leider hat auch dies nicht funktioniert. Somit musste ich ein paar Einträge löschen und neu schreiben. Was eigentlich nur funktionierte, ist der Thermistor. Der eine komplizierte Berechnung hat. Da ich aber ein Thermoelement habe, habe ich den Bereich für Termistor umgeschrieben und siehe da, es funktioniert. Denn beim Termistor darf ich den Pin angeben, wo es abgelesen werden soll. Bei den anderen nicht. Und genau da war anschein das Problem. Komischerweise musste ich den Wert x4 nehmen, weil am Ende, was ich nicht erkennen konnte, durch 4 geteilt wurde. Nur durch ausprobieren habe ich es erfahren. Ich werde aber alles nochmal mit ein Temperatursensor prüfen, ob das wirklich die Temperatur ist. Hab ja noch den Max ^^

021aet04
30.04.2015, 21:10
Ist schön zu hören das es jetzt funktioniert. Viel Spaß weiterhin mit deinem Projekt.

MfG Hannes