Steg14 (Diskussion | Beiträge) (→Steuerung der Heizleistung) |
Steg14 (Diskussion | Beiträge) (→Netzteil) |
||
Zeile 47: | Zeile 47: | ||
[[Bild:Lötstation-Netzteil.jpg]] | [[Bild:Lötstation-Netzteil.jpg]] | ||
+ | |||
+ | |||
+ | ==== Software ==== | ||
+ | Das Programm ist in C geschrieben. | ||
+ | |||
+ | Im Hauptprogramm läuft der Prozessor nach Initialisierung der Komponenten in eine Endlosschleife | ||
+ | |||
+ | ---- | ||
+ | int main(){ | ||
+ | port_init(); // Ports initialisieren | ||
+ | lcd_init(LCD_DISP_ON); // initialisiere display, cursor off | ||
+ | ad_init(); // AD-Wandler initialisieren | ||
+ | ac_init(); // initialisiere analog-Komparator | ||
+ | timer_init(); // Timer initialisieren | ||
+ | Tsoll=Lese_Starttemp(); // Starttemperatur lesen, Vorgabe vom letzten mal | ||
+ | Schreibe_Startemp(Tsoll); // Starttemperatur schreiben | ||
+ | lcd_puts("Start... "); // Startmeldung auf LCD | ||
+ | sei(); // enable interrupts | ||
+ | |||
+ | for(;;){ // tue nix Schleife | ||
+ | } | ||
+ | } | ||
+ | ---- |
Version vom 1. März 2007, 22:10 Uhr
Inhaltsverzeichnis
Selbstbau einer digitalen Lötstation
Beschreibung und Verwendung
Die Lötstation ist geeignet für WELLER oder ERSA oder andere Lötkolben mit einer 24V Heizung und Temperaturfühler. Die Solltemperatur lässt sich durch 2 Tasten (UP und DOWN) in 10° Schritten einstellen. Auf einem LCD-Display wird die aktuelle Temperatur des Lötkolbens und die Solltemperatur angezeigt.
Funktion
Jede Sekunde wird die Isttemperatur gemessen. Gesteuert wird eine bestimmte Anzahl Perioden. Also von 0 bis 50 in einer Sekunde. So kann die Heizleistung in 2% Schritten variiert werden. Gewöhnlich erreicht der ein 50W Lötkolben schon mit 20W eine Temperatur von 280°C, deshalb wird nahe der Isttemperatur die Regelung auf 40% (20 Perioden) gestellt.
Im Bild sieht man eine Sekunde mit 50% Leistung.
Temperaturmessung
Im Lötgriffel befindet sich ein Temperaturfühler Dies kann eine Thermoelement sein (z.B. bei Ersa) oder ein Platinsensor (z.B. Weller). Auch andere Sensoren (Wie PTC) sind denkbar, die Schaltung muss entsprechend dimensioniert werden und evtl. muss die Berechnung in der SW geändert werden. Der OPV in der Schaltung arbeitet als nichtinvertierter Verstärker falls ein Widerstandsfühler verwendet wird. Oder als Differenzverstärker wenn ein Thermoelement verwendet wird. Es kann der OP07 oder der CA3140 verwendet werden. Vermutlich auch noch andere.
Steuerung der Heizleistung
Ein Triac schaltet im Nulldurchgang auf der 24V Seite des Trafos. Es können verschiedene Optotriacs verwendet werden, der Widerstand R2 muss dann jedoch angepasst werden, damit der Triac sicher schaltet.
Controllerteil
Die Steuerung erfolgt mit einem AVR Mega8 getaktet mit 1MHz.
Per UP/DOWN Tasten kann die Soll-Temperatur eingestellt werden Soll- und Ist-Temperatur werden auf dem LCD-Display angezeigt Die Regelung erfolgt durch Ein-Ausschalten im 1Hz Takt, wobei das Puls-Pausenverhältnis variiert wird. Der Schalter an PC3 ist für Erweiterungen gedacht. (z.B. Erkennen ob der Kolben lange Zeit nicht abgelegt war um dann abzuschalten)
Der Nulldurchgang wird durch den Komperator im µC erkannt, der dann (alle 20ms) einen Interrupt auslöst. Ein Eingang des Komparators geht an die 2,5V Referenz des AVR, der andere zum Netzteil
Netzteil
Trafo 2*7 bis 2*12V Eine Halbwelle wird über den 100k Widerstand auf den Komperator des µC gelegt
Software
Das Programm ist in C geschrieben.
Im Hauptprogramm läuft der Prozessor nach Initialisierung der Komponenten in eine Endlosschleife
int main(){
port_init(); // Ports initialisieren lcd_init(LCD_DISP_ON); // initialisiere display, cursor off ad_init(); // AD-Wandler initialisieren ac_init(); // initialisiere analog-Komparator timer_init(); // Timer initialisieren Tsoll=Lese_Starttemp(); // Starttemperatur lesen, Vorgabe vom letzten mal Schreibe_Startemp(Tsoll); // Starttemperatur schreiben lcd_puts("Start... "); // Startmeldung auf LCD sei(); // enable interrupts
for(;;){ // tue nix Schleife }
}