Forum: Mikrocontroller und Digitale Elektronik Lötkolbenreglung mit Atmega 168


von Rene K. (Firma: krause) (rene34)


Angehängte Dateien:

Lesenswert?

Hallo,ich habe hier von einem Mitglied ein schönes Projekt zu einer 
Lötkolbenreglung für Lötkolben mit PTC Verhalten bekommen.Habe die 
Schaltung aufgebaut,funktioniert soweit auch alles.Nur die angezeigten 
Werte stimmen nicht,da ich ja einen anderen Lötkolben verwende.Ich komme 
mit dem Programm nicht weiter,sehr komplex und ganz so gut programieren 
kann ich noch nicht.Also mein Lötkolben hat bei ca 18-20 grad rund 7 ohm 
bei ca 400 19-20 ohm,auf dem display wird bei ist Tist,bzw cur 
temperatur im Kalten zustand der wert 152 angezeigt (18-20 grad)bis zum 
ereichen einer temperatur von 100-200-300-400 grad sind es ganz kleine 
Sprünge so circa 180-200(angezeigter wert) dann wäre schon die 
Temperatur erreicht,jetzt weiss ich nicht wo ich im Programm ansetzen 
muss.Die Werte der Wiederstände  der Konstantstromquelle sind zweimal 
150 ohm und am eingang des adc 22 kohm.Schaltung wurde 1 zu 1 
übernommen.Es wäre super wenn mir jemand helfen könnte damit ich hier 
weiter komme.
danke erstmal

von -.-.- (Gast)


Lesenswert?

Tausche deine 'Wiederstände' einmal gegen 'Widerstände' aus, dann könnte 
es funktionieren.

von Rene K. (Firma: krause) (rene34)


Lesenswert?

Was soll denn die Antwort?

von egberto (Gast)


Lesenswert?

Ich habe die Station von Travelrec auch aufgebaut, funktioniert recht 
gut (noch mal vielen Dank!!).

Ich glaube mich zu erinnern, das er keine Temperaturmessmittel hatte, um 
das richtig zu kalibrieren, deshalb entspricht der angezeigte Wert nicht 
der Temperatur in Grad Celsius.

Ich kann auch so gut damit leben - falls du aber solche Möglichkeiten 
hast, passt da bestimmt noch eine Umrechnungstabelle mit in den Code.

Du kannst Travelrec ja mal eine PM schreiben, eventuell findet er ja die 
Zeit, solch eine Dummy-Tabelle einzubauen (die du dann nur noch mit 
Werten füllen musst). Ich hätte dann auch Interesse (habe aber den 
"Original"-Lötkolben dran).

Viele Grüße,

egberto

von Rene K. (Firma: krause) (rene34)


Lesenswert?

Hatte ihn auch schon angeschrieben,er meinte ich sollte mich hierher 
wenden,er wartet das ganze nicht mehr weil er keine zeit hat,ich konnte 
mir das auch schon denken das keine Werte zu Umrechnung da sind,aber 
wenn ich schon was mit avr und lcd aubaue möchte das schon stimmen,mir 
nützt keine Regelung was,wenn sie im kalten zustand ne zahl 100 anzeigt 
und bei 300 120 zbsp,da müste ich ja in einer Schritten regeln,da könnte 
ich ja bei meiner analogen selbsgebauten bleiben ohne Anzeige,ich fand 
dieses Projekt sehr schön und hatte noch einen 80 Watt Kolben einer 
st-80 übrig und weil diese keinen fühler hat,baute ich mir mal die 
Reglung auf.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Das Problem ist halt immer, dass man irgendwann ein Projekt voller 
Idealismus beginnt und irgendwann Arbeit und Familie ihren Tribut 
fordern. Geht jedenfalls mir so. Ist auch kein böser Wille ;-). Das 
Umrechnen der Werte in sinnvolle Zahlen sollte mit einer Tabelle oder 
Berechnung nicht soo problematisch sein, zumal der PTC in dem 
interessanten Bereich fast linear ist. Die Auflösung des ADCs sollte 
sich mit Überabtastung auch noch erhöhen lassen, so dass man tatsächlich 
eine 1°C-Auflösung (wenn auch nicht exakte Genauigkeit) hinbekommt. 
Viellicht komme ich ja nochmal dazu, aber ich kann´s nicht versprechen.

von Karl H. (kbuchegg)


Lesenswert?

Ich ersuche um Hilfe, ob ich das richtig sehe:

Das Messprinzip lautet:
in den PWM Pausen wird eine Spannung gemessen, die sich durch den 
Spannungsteiler  ( R1||R2 ) + Lötkolben einstellt.

D.h. in der Theorie müsste es reichen, R1 und R2 soweit anzupassen, dass 
sich zusammen mit den Kolbenwerten wieder ein vernünftiger Spannungshub 
ergibt.


Stimmt das soweit?


(Genau solche Programme sind für mich ein Grund in C zu schreiben. Die 
Umrechnung ADC-Wert in eine Temperatur ist dort ein Klacks, sofern die 
Umrechnungskonstanten bekannt sind.)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Karl Heinz Buchegger schrieb:
> Das Messprinzip lautet:
> in den PWM Pausen wird eine Spannung gemessen, die sich durch den
> Spannungsteiler  ( R1||R2 ) + Lötkolben einstellt.

Der Regler stellt einen konstanten Strom ein, der durch R1/R2 vorgegeben 
wird. Hier sollte man nicht übertreiben, da man sonst den Regler kocht. 
Oder es wird halt ein Kühlkörper fällig :-). 100...200mA sollten 
ausreichen. Ansonsten wird der Kolben selbst bei 0% PWM nicht mehr 
richtig kalt.

Karl Heinz Buchegger schrieb:
> Genau solche Programme sind für mich ein Grund in C zu schreiben.

Nanana... Das Programm ist hingeschustert, zugegeben. Aber es 
funktioniert. Und eine Umrechnung ist in ASM nicht schwieriger als in C. 
Man muss allerdings ein bisschen experimentieren. Selbst bei den 
Originalkolben gibt es Schwankungen im Absolutwert des PTC Widerstandes, 
wodurch eine Eichung auf den Kolben notwendig wäre.

BTW:
Der Widerstand des Originalkolbens beträgt etwa 10 Ohm bei 20°, 
Heißwiderstand habe ich jetzt nicht gemessen, könnte so gegen 2 Ohm bei 
300° gehen.

von Karl H. (kbuchegg)


Lesenswert?

Knut Ballhause schrieb:
> Karl Heinz Buchegger schrieb:
>> Das Messprinzip lautet:
>> in den PWM Pausen wird eine Spannung gemessen, die sich durch den
>> Spannungsteiler  ( R1||R2 ) + Lötkolben einstellt.
>
> Der Regler stellt einen konstanten Strom ein, der durch R1/R2 vorgegeben
> wird. Hier sollte man nicht übertreiben, da man sonst den Regler kocht.
> Oder es wird halt ein Kühlkörper fällig :-). 100...200mA sollten
> ausreichen. Ansonsten wird der Kolben selbst bei 0% PWM nicht mehr
> richtig kalt.

Das heißt:
bei kleinerem Kolbenwiderstand müsste man den Strom erhöhen um wieder 
den Spannungshub zu kriegen.


Ansonsten denke ich, hab ich im Code die Zutaten soweit beisammen.

Timer 1 mit einer Fast-PWM, Top Wert über ICR1.
  Top = 0x07FF
  PWM wird hardwaremassig erzeugt, wobei vom Programm der Tastgrad
  in OCR1A auf 0x0465 limitiert wird

zusätzlich gibt es noch einen Compare B Interrupt, wobei der OCR1B Wert 
immer um 250 größer als der PWM Wert ist. Vom Compare B Interrupt wird 
der ADC angestossen. Der somit immer in den PWM Pausen misst (daher auch 
die Limitierung von OCR1A auf einen kleineren Wert als ICR1)

Die Regelung ist eine einfache 2-Punkt Regelung:
  Ist kleiner Soll  -> PWM um 1 erhöhen (bis zum Maximum)
  Ist größer Soll   -> PWM um 1 verringern (bis auf 0)

Die Zykluszeit des Timers hab ich noch nicht, das ist aber reine 
Formsache.

LCD und Drehgeber sind ohnehin klar.

von Rene K. (Firma: krause) (rene34)


Lesenswert?

Also 2 ohm bei 300 Grad geht nicht sondern müste bei ptc viel grösser 
werden.Bei mir hat der Kolben im kalten Zustand 8 ohm und im Heissen ca 
400 Grad 20-21 Ohm.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Richtig, Null vergessen... :-(

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

@Karl-Heinz: Danke für die Übersetzung des Codes ;-)

von Rene K. (Firma: krause) (rene34)


Lesenswert?

Also mit den werten von R1 und R2 spiele ich auch gerade rum,der 
Angezeigte Wert wird nur höher.Aber das Problem,ein bsp Angezeigter Wert 
120 bei 121 angezeigten Wert,hätte ich schon einen Temperatursprung von 
25 Grad ich bin hier noch am messen.

von Karl H. (kbuchegg)


Lesenswert?

@TravelRec
Wenn du einverstanden bist, versuch ich heut abend mal, da codemässig 
was auf die Reihe zu kriegen (allerdings in C).
(Ich liebe es, Code für eine Hardware zu schreiben, die nicht vor mir 
liegt :-)

Um die Sache mit der Konstantstromquelle müsste sich Rene allerdings 
selbst kümmern.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Karl Heinz Buchegger schrieb:
> Wenn du einverstanden bist, versuch ich heut abend mal, da codemässig
> was auf die Reihe zu kriegen (allerdings in C).

Keine Frage, wenn Du magst.

Karl Heinz Buchegger schrieb:
> Um die Sache mit der Konstantstromquelle müsste sich Rene allerdings
> selbst kümmern.

Ja klar. Bei einem Spannungshub von 1V bei 100mA zwischen heiß und kalt 
sollte aber einiges gehen. Wie gesagt, könnte man den ADC noch etwas 
"pimpen".

von stinke (Gast)


Lesenswert?

Hier nochmal der link zu den Eagle-Files, der sollte nicht fehlen:

Beitrag "Re: Ratgeber Lötstation"

von Rene K. (Firma: krause) (rene34)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Wenn du einverstanden bist, versuch ich heut abend mal, da codemässig
> was auf die Reihe zu kriegen (allerdings in C).

Das wäre Klasse!

von Rene K. (Firma: krause) (rene34)


Lesenswert?

Habs ganz vergessen,hält der IRF7416 einen 80Watt Kolben aus,mein 
irf5305 schaltet bei 8MHz leider nicht richtig und verursacht 
störungen,deswegen hab ich das ganze nur auf 1mhz laufen

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Rene Krause schrieb:
> hält der IRF7416 einen 80Watt Kolben aus

Wird knapp. Bei -10V VGS ist er auf 10A spezifiziert. Du solltest auf 
jeden Fall die Temperatur von dem Ding kontollieren und auf gute 
Wärmeleitfähigkeit der umliegenden Platine achten (Pins an großzügige 
Kupferfläche anbinden).

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Rene Krause schrieb:
> ,mein
> irf5305 schaltet bei 8MHz leider nicht richtig

Die Schaltfrequenz der PWM liegt nur bei rund 30 Hz laut Programmcode, 
daran sollte es eigentlich nicht liegen...

Flashe doch mal sicherheitshalber die HEX aus dem o.g. Beitrag.

Beitrag "Re: Ratgeber Lötstation"

von Simon K. (simon) Benutzerseite


Lesenswert?

Karl Heinz Buchegger schrieb:
> Die Regelung ist eine einfache 2-Punkt Regelung:
>   Ist kleiner Soll  -> PWM um 1 erhöhen (bis zum Maximum)
>   Ist größer Soll   -> PWM um 1 verringern (bis auf 0)

Das ist keine Zweipunktregelung, sondern ein I-Verhalten!

Zweipunktregelung wäre:
Ist kleiner Soll -> PWM auf Wert X setzen
Ist größer Soll  -> PWM auf Wert Y setzen

Fuzzyregelung wäre:
Differenz größer A -> PWM auf Wert X setzen
Differenz größer B -> PWM auf Wert Y setzen
Differenz größer C -> PWM auf Wert Z setzen
... etc
(Das ganze natürlich in beide "Richtungen")

von Rene K. (Firma: krause) (rene34)


Lesenswert?

Habe ich auch schon gemacht der ir5305 will bei den 8mhz des avr 
nicht,den gate widerstand habe ich auf 1kohm veringert(zur positivern 
versorgungsspannung den npn kollektor widerstand zum gat 80 ohm damit 
läuft er mit 1mhz ohne probleme nur nicht mit 8mhz.sobald ich an die 
platine Strom gebe sinken zwei balken bis auf null vorher werden keine 
werte des kolben angezeigt,danach wenn auf null kommen zappelnde werte 
aber es wird nicht mehr geheitzt.

von Rene K. (Firma: krause) (rene34)


Lesenswert?

so jetzt habe ich doch nochmal die hex aus dem alten beitrag 
genommen,siehe da er heitzt auch mit den 8mhz,nützt mir nur nichts da 
ich ja einen kalten wert von 112 und die anzeige erst bei 240 
anfängt,somit habe ich eigendlich bei 150 schon maximaltemperatur 
erreicht,und wenn ich das ganze nicht in 1schritten mache geht die 
temperatur nicht zuregeln.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Rene Krause schrieb:
> so jetzt habe ich doch nochmal die hex aus dem alten beitrag
> genommen,siehe da er heitzt auch mit den 8mhz,

Hmm, dann scheint es Inkonsistenzen zwischen den Firmwares zu geben. Was 
mir zu Deinem FET-Problem noch einfällt ist, dass die Gate-Kapazität 
Deines FETs mitunter recht hoch ist, so dass der FET zu langsam sperrt. 
Wenn dann der ADC sampled, ist die Spannung noch nicht über dem 
Lötkolben abgesunken und der ADC bekommt Mist (sprich: eine zu hohe 
Spannung) zu lesen. Vielleicht sollte man den ADC dann später starten, 
so dass es wieder sauber läuft. Ich muss mal gucken, dass ich die 
aktuelle Firmware finde, die könnte u.U. auf einem anderen (älteren) 
Rechner zu finden sein...

von Leo H. (Gast)


Lesenswert?

Moin,

weiß eigentlich jemand, ob die Heizelemente an Gleichspannung schneller 
altern?

Irgendwo habe ich mal sowas aufgeschnappt, es hörte sich zumindest 
sinnvoll an. Außerdem hatten bis jetzt alle Lötstationen die ich mal 
offen hatte das Heizelemente direkt über einen Optokoppler + Triac an 
den Trafo geschaltet.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Angehängte Dateien:

Lesenswert?

Ich werfe mal die hier in´s Rennen, hier ist die "Measuring offset time" 
in der Regulate Subroutine verlängert. Probiere mal, getestet habe ich 
es nicht.

Einfach die alte asm-Datei gegen diese hier ersetzen und neu 
assemblieren und flashen.

Bei Problemen wäre ich morgen wieder online.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Leo-andres H. schrieb:
> Außerdem hatten bis jetzt alle Lötstationen die ich mal
> offen hatte das Heizelemente direkt über einen Optokoppler + Triac an
> den Trafo geschaltet.

Dann kann man aber nicht den Innenwiderstand des PTC-Heizelementes 
messen ;-)

von Rene K. (Firma: krause) (rene34)


Lesenswert?

Auch mit der anderen asm geht es nicht mit dem schalten des irf5305 mit 
der hex aus dem alten Beitrag schon,bei 8mhz,leider bräuchte ich dann 
natürlich noch die anderen Daten.ich befürchte schon das wenn ich den 
7416 bekomme und einlöte es auch mit 8mhz nicht läuft es muss ja am code 
bzw an der hex liegen,denn mit der alten läuft er.

von Rene K. (Firma: krause) (rene34)


Lesenswert?

was für einen Wert muss ich denn eintragen wenn der Start bei 100 und 
nicht bei 300 beginnen soll?bei mir kommt nichts vernünftiges raus unter 
257 komme ich nicht.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Ferndiagnose ist immer schwer...

Ich habe nochmal die Datenblätter der Transistoren durchgesehen und 
festgestellt, dass die Gate-Kapazität nicht wirklich voneinander 
abweicht. Daran sollte es also nicht liegen. Dann muss ich nochmal die 
alten Daten durchsehen, aber wenn Du ohnehin keine vernünftigen 
Spannungswerte für den ADC bekommst, ist vielleicht noch etwas anderes 
faul... Wie gesagt, funktionieren hier 2 Stationen und die von egberto 
scheint auch zu gehen... Hmm. Hast Du von Deinem Aufbau vielleicht ein 
paar Fotos?

von Karl H. (kbuchegg)


Lesenswert?

Rene Krause schrieb:
> Karl Heinz Buchegger schrieb:
>> Wenn du einverstanden bist, versuch ich heut abend mal, da codemässig
>> was auf die Reihe zu kriegen (allerdings in C).
>
> Das wäre Klasse!

Sorry. Bin gestern nicht dazu gekommen.
Aber wie ich sehe, gibts sowieso noch Änderungen.

von Karl H. (kbuchegg)


Lesenswert?

Simon K. schrieb:
> Karl Heinz Buchegger schrieb:
>> Die Regelung ist eine einfache 2-Punkt Regelung:
>>   Ist kleiner Soll  -> PWM um 1 erhöhen (bis zum Maximum)
>>   Ist größer Soll   -> PWM um 1 verringern (bis auf 0)
>
> Das ist keine Zweipunktregelung, sondern ein I-Verhalten!

Stimmt natürlich.
Danke für die Korrektur.

(Irgendwann werd ich mir diese Begriffe auch noch merken)

von Rene K. (Firma: krause) (rene34)


Lesenswert?

Wie schon gesagt die hex datei aus dem alten beitrag funktioniert auf 
anhieb,bei der neuen halt nicht,das heist ich kann nur mit 1mhz 
arbeiten,dann läuft die Reglung aber zulangsam.Also bei einem 8 Ohm 
Kolben bekomme ich die zahl 112-117 im kalten zustand.Dann ist es aber 
so das ich bei 130 bis 140 schon Schluss ist wegen der Temperatur,also 
nützt mir Einstellungen von 240-350 nichts.Das ganze läuft natürlich nur 
mit 1mhz,mit der alten hex die funktioniert habe ich auch bei 8mhz nur 
ganz kleine Sprünge bis die Temperatur erreicht ist.Da ihr ja nur einen 
Kolben mit 20-30 watt benutzt ich aber 80 Watt glaube ich das die 
reglung viel zuviel Power gibt damit steigen die ohmwerte sehr schnell 
oder der Kolben ist sehr schnell heiss deswegen regelt das ganze dann 
nicht vernünftig,schade.Ohne die alten dateien die zu der 
funktionierenden hex gehören kann ich nicht viel machen.Auch an den 
beiden Wiederständen des LM reglers habe ich mal werte von zweimal 120 
Ohm das scheint mir bei meinem 8 ohm gegenüber den 10 ohm bei ihnen am 
sinvollsten.Leiterplatte ist genausogut aufgebaut wie bei ihnen ist 
eigendlich kein fehler Adc bekommt schon mit den von mir genanten Werten 
richtige Werte

von Rene K. (Firma: krause) (rene34)


Lesenswert?

So ich habe gestern Abend mal einpaar Messungen gemacht,in meinem 
Bsp,bei einem 80 watt kolben mit 8 ohm Kaltwiderstand,Anzeige bei 20 
grad 137,bei 149 geht das Heizen los,bei 165 wäre dann schluss,dann 
hätte ich schon die maximal Temperatur erreicht,dass heist ich kann nur 
in Einer Schritten regeln und das wäre pro Schritt,20-25 grad,das ganze 
ist dann natürlich überhaupt nicht sinnvoll,da der Bereich ja 
eingestellt war von 240-350,in zehner Schritten,die ich erst mal in 
einer Schritten umgewandelt habe aber unter 256 Starttemperatur komme 
ich nicht,kann ich eintragen was ich will,somit müste ich immer erst 
ziemlich weit runterdrehen,bei mir habe ich lowest eingestelt 145,da der 
AVR viel mehr kann,ist es schade ihn nicht richtig zunutzen,

Herr Karl Heinz Buchegger,haben sie schon Codemässig was geschaft?

Herr Knut Ballhause,Haben sie nochmal geschaut nach den alten Dateien?da 
nur die alte Hex mit 8Mhz läuft,ich aber die restlichen Daten für AVR 
Studio brauche,dort meldet er auch fehler,beim compilieren,die asm datei 
habe ich mal mit Waveasm versucht zu compilieren,dort meldet er auch 
fehler,glaube code 14 und wandelt sie nicht um.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Angehängte Dateien:

Lesenswert?

Rene Krause schrieb:
> ich aber die restlichen Daten für AVR
> Studio brauche,dort meldet er auch fehler,beim compilieren,die asm datei
> habe ich mal mit Waveasm versucht zu compilieren,dort meldet er auch
> fehler,glaube code 14 und wandelt sie nicht um.

Siehe Anhang, darin ist das gesamte Projekt für 8Mhz mit der gemoddeten 
Offset-Zeit. Das Ganze ließ sich mit AVR-Studio 4.19 wunderbar 
assemblieren. Die alten Daten habe ich noch nicht gefunden, vielleicht 
hat Egberto die Dateien noch?!

von Rene K. (Firma: krause) (rene34)


Lesenswert?

Leider auch kein erfolg,Fehlermeldung bei 
avrSolderStation_mod\SolderStation.asm(779): warning: .cseg .db 
misalignment - padding zero byte,wavasm wandelt auch nichts um,da muss 
ein fehler sein.
Geht auch nicht mit 8mhz,heut kommen meine 7416 mossfet,falls die dann 
auch nicht laufen wird das projekt zur Seite gelegt,so ist für mich 
keine vernüftige Reglung möglich,vielleicht schreibt jemand das ganze 
doch noch um.naja meine Platine auf analogbasis ist fast fertig,und 
macht das selbe.

von spess53 (Gast)


Lesenswert?

Hi

>Leider auch kein erfolg,Fehlermeldung bei
>avrSolderStation_mod\SolderStation.asm(779): warning: .cseg .db
>misalignment - padding zero byte,wavasm wandelt auch nichts um,da muss
>ein fehler sein.

Da steht 'warning:'. Der Assembler vom AVR-Studio hängt in dem Fall noch 
eine Null an. Wenn deiner das nicht macht, dann ergänze die betreffende 
Zeile mit einem ',0'.

MfG Spess

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.