Reflow Ofen

In einer Vielzahl von Beiträgen in den bekannten Foren ist vom Reflowlöten in einem Pizzaofen aus dem Supermarkt die Rede. Da proffessionelle Öfen im Bereich größergleich 1kEuro liegen, hab ich mir beim örtlichen Markt auch so ein Ding besorgt.

Hersteller: Superior

Modell: MG12BX

Supermarktofen
Superior Miniofen

Der Ofen hat 1300 Watt und eine Maximaltemperatur von 250 Grad. Der Garraum ist mit 12 Litern ausreichend groß, die Temperaturregelung jedoch unbrauchbar. Ausgepackt, eingeschaltet und mal gemessen wie lange er braucht um auf ca. 230 Grad zu kommen. Jedoch löste er sich nach ca. 2 Minuten mit einem Knall in Rauch auf. Also neuen Ofen geholt und erneut gestartet. Diesmal hats geklappt.

Heizkurve

Temperatur °C

Heizzeit s

100

74

130

90

150

105

160

110

200

137

230

170

 

 

Also mal auf eine Platine ein bisschen Lötpaste verteilen und einen SMD-Transistor draufgedrückt. Nach kurzer Zeit wurde das Lot flüssig und die Platine begann sich zu verfärben. Der Transistor war optimal verlötet. Jetzt ist die Temperaturregelung dran.

Die Regelung

Als Regelung hab ich mir 3 Blöcke ausgedacht. Das Leistungsteil besteht hauptsächlich aus einem Solidstaterelais S216S02F das es bei Reichelt gibt. Die Steuerung übernimmt ein ATMega 8. Dieser steuert mit einer langsamen PWM das Leistungsteil und nimmt die Temperatur in Form einer Gleichspannung vom Temperaturfühler entgegen. Ein paar Taster, LEDs und ein Summer sind zum bedienen da. Beim Temperaturfühler habe ich ein Thermoelement von LabFacility gewählt, da es 250°C verkraftet. Herst.Bez.: XF-321-FAR Farnell Best.Nr.: 4100748. Von Farnell gibts auch eine passende Buchse:  Farnell Best.Nr.: 7086386. Jetzt hat so ein Thermoelement aber einen Nachteil, es ist sehr niederohmig. Darum muß die Meßspannung deutlich verstärkt werden. Das macht der INA126. Ihm reichen 5 Volt Spannung, die Verstärkung wird mit einem einzigen Widerstand festgelegt. Lediglich für die Offsetspannung ist ein bisschen zusätzliche Elektronik erforderlich.
Als Gehäuse kommt das Reichelt BOPLA SE432DE zum Einsatz. Dadurch muß am Pizzaofen nichts verändert werden und die Garantie geht nicht flöten.

Der Quellcode

Der Code ist in Bascom Basic geschrieben und noch sehr einfach gehalten. Zur Optimierung der Heizkurve kann hier noch viel getan werden, besonders bei der Einstellung der Heizleistung.
Aus Platzgründen wurde auf einen Quarz verzichtet. Der ATMega läuft mit dem internen RC-Oszillator. Timer0 erzeugt mit der Interruptroutine PWM: eine langsame Software-PWM. Diese wird zur Heizungsregelung verwendet. Die Variable Heizleistung kann einen Wert von 0 bis 255 annehmen. Das entspricht 0 bis 100% Heizleistung. Im EEPROM sind nach dem Einlernen die 3 Temperaturen abgelegt. Diese Werte werden bei jedem Einschalten abgeholt und in den Variablen T1 bis T3 abgelegt.

$regfile = "m8def.dat"
$crystal = 1000000

Dim T_aktuell As Word
Dim T1 As Word
Dim T2 As Word
Dim T3 As Word
Dim Heizleistung As Byte
Dim Learn_flag As Bit
Dim Learn_1 As Bit
Dim Learn_2 As Bit
Dim Learn_3 As Bit
Dim Ein As Bit

On Timer0 Pwm
Config Timer0 = Timer , Prescale = 256
Enable Timer0
Enable Interrupts

Config Debounce = 1
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

Ausgang Alias Portd.5
Config Ausgang = Output

Led_rot Alias Portb.2
Config Led_rot = Output

Led_gruen Alias Portb.5
Config Led_gruen = Output

Led_gelb Alias Portb.3
Config Led_gelb = Output

Piezo Alias Portc.1
Config Piezo = Output

Taster_links Alias Pinc.4
Config Portc.4 = Input
Portc.4 = 1

Taster_mitte Alias Pinc.2
Config Portc.2 = Input
Portc.2 = 1

Taster_rechts Alias Pinc.3
Config Portc.3 = Input
Portc.3 = 1

Readeeprom T1 , 1010
Readeeprom T2 , 1020
Readeeprom T3 , 1030

Do

   Debounce Taster_links , 0 , Links_isr , Sub
   Debounce Taster_mitte , 0 , Mitte_isr , Sub
   Debounce Taster_rechts , 0 , Rechts_isr , Sub
   T_aktuell = Getadc(5)
   If Ein = 1 Then
    Select Case T_aktuell
      Case 0 To T1:
         Heizleistung = 255
         Toggle Led_rot
         Led_gruen = 0
         Led_gelb = 0
      Case T1 To T2:
         Led_rot = 1
         Led_gruen = 0
         Led_gelb = 0
         Heizleistung = 90
      Case T2 To T3:
         Led_rot = 0
         Led_gruen = 0
         Led_gelb = 1
         Heizleistung = 255
      Case T3 To 1024
         Heizleistung = 50
         Led_rot = 0
         Led_gruen = 1
         Led_gelb = 0
         Waitms 10000
         Sound Piezo , 288 , 65
         Sound Piezo , 288 , 65
         Sound Piezo , 288 , 65
         Heizleistung = 0
         Ein = 0
         Led_rot = 0
         Led_gelb = 0
         Led_gruen = 0
         Sound Piezo , 288 , 65
         Sound Piezo , 288 , 65
         Sound Piezo , 288 , 65
      Case Else
         Led_rot = 0
         Led_gelb = 0
         Led_gruen = 0
    End Select
   End If
   If Learn_1 = 1 And Learn_2 = 1 And Learn_3 = 1 Then
      Learn_flag = 0
      Ein = 0
         Led_rot = 0
         Led_gelb = 0
         Led_gruen = 0
   End If
   If Learn_flag = 1 Then
      If Learn_1 = 0 Then Led_rot = 1 Else Led_rot = 0
      If Learn_2 = 0 Then Led_gelb = 1 Else Led_gelb = 0
      If Learn_3 = 0 Then Led_gruen = 1 Else Led_gruen = 0
   End If
   Waitms 1
Loop

Pwm:
   If Heizleistung = 0 Then
      Ausgang = 0
   Else
      Toggle Ausgang
   End If
   If Ausgang = 1 Then
      Timer0 = 256 - Heizleistung
   Else
      Timer0 = Heizleistung
   End If
Return

Links_isr:
   If Learn_flag = 1 And Learn_1 = 0 Then
      T1 = T_aktuell
      Sound Piezo , 288 , 65
      Writeeeprom T1 , 1010
      Learn_1 = 1
   End If
   If Taster_rechts = 0 Then
      Sound Piezo , 288 , 65
      Learn_flag = 1
      Learn_1 = 0
      Learn_2 = 0
      Learn_3 = 0
      Ein = 0
      T1 = 200
      T2 = 300
      T3 = 500
      Heizleistung = 255
   End If
Return

Mitte_isr:
   If Learn_flag = 1 And Learn_2 = 0 Then
      T2 = T_aktuell
      Sound Piezo , 288 , 65
      Writeeeprom T2 , 1020
      Learn_2 = 1
   End If
   If Learn_flag = 0 Then
   If Ein = 1 Then
         Ein = 0
         Heizleistung = 0
         Led_rot = 0
         Led_gelb = 0
         Led_gruen = 0
   Else
         Ein = 1
   End If
   End If
Return

Rechts_isr:
   If Learn_flag = 1 And Learn_3 = 0 Then
      T3 = T_aktuell
      Sound Piezo , 288 , 65
      Writeeeprom T3 , 1030
      Learn_3 = 1
   End If
   If Taster_links = 0 Then
      Sound Piezo , 288 , 65
      Learn_flag = 1
      Ein = 0
      Learn_1 = 0
      Learn_2 = 0
      Learn_3 = 0
      T1 = 200
      T2 = 300
      T3 = 500
      Heizleistung = 255
   End If
Return
Schaltplan Hauptplatine

Auf der ersten Platine ist das Leistungsteil und die Steuerung untergebracht. Auf einen Quarz für den ATMega habe ich verzichtet. Der ATMega8 ist aus Platzgründen in SMD-Ausführung, Warmduscher können natürlich auch die DIL-Version nehmen ;-).

Schaltplan Meßverstärker

Den Meßverstärker habe ich komplett in SMD aufgebaut und auf einer winzigen Zusatzplatine untergebracht, so konnte ich verschidene Versionen testen. Der Verstärker hat sich aber so bewährt und könnte nun auch auf der Hauptplatine untergebracht werden.

Schaltplan Bedienteil

Zum Bedienteil gibts nichts spannendes zu berichten. Hier kann natürlich auch ein Display eingesetzt werden.

Bedienung

Zuerst müssen 3 Temperaturen eingelernt werden: T1 = 150°C, T2 = 200°C und T3 = 235°C. Diese Temperaturen habe ich aus der JEDEC Level4 Empfehlung für das Reflow-Löten. Unterhalb von T1 schaltet die Heizung auf 100%. Bei erreichen von T1 wird zurückgeschaltet um den Bauteilen ein langsames und gleichmässiges Erwärmen zu ermöglichen. Bei T2 wird dann nochmal hochgeschaltet um bei T3 dann die Löttemperatur zu erreichen. Nach 10 Sekunden ertönt der Piezo, jetzt muß die Platine entnommen werden, damit sie rasch abkühlt.

Durch gleichzeitiges Drücken der beiden äusseren Tasten ist das Gerät im Lernmodus. Alle 3 LEDs leuchten, die Heizung ist voll an. Bei erreichen von T1 wird die linke Taste gedrückt, die linke LED geht aus. Das Gleiche wird bei T2 und T3 mit dem mittleren und rechten Taster gemacht.

Jetzt ist das Gerät betriebsbereit. Gestartet und abgeschaltet wird mit dem mittleren Taster.

 

Fertig!

Ergebnisse
Der erste Test, noch ohne Regelung.

Hier mal ein erstes Bild. Die Lötcreme hat das Kupfer schön benetzt, auch die große Massefläche des Transistors ist sauber verlötet. Das klappt auch mit Quarzen, dicken Spulen und Elkos.

Mit der Regelung siehts nochmal besser aus. Die Fotos wurden vor der Reinigung gemacht.

Links

Thomas Pfeifer