Forum: Analoge Elektronik und Schaltungstechnik Probleme mit Schaltung / Platine


von partyfraktion (Gast)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

es geht um folgende Schaltung:
Ziel ist einen Heizblock zwischen 200 und 250 Grad zu halten und nur 
innerhalb dieses Sollfensters Pumpen zuzulassen.

In dem Heizblock steckt ein Thermoelement Typ J.
Dazu habe ich mir folgendes überlegt:
1. Thermospannung mit dem TLC272CP (im Wiki als Präzisions-OPV benannt) 
verstärken.
2. Mit einem TL072 in Komparatorschaltung die verstärkte Spannung mit 
der verstärkten Spannung vergleichen. Referenzen sind die Spannungen, 
die umgerechnet den Spannungen des Thermoelements für 220 und 270 Grad 
entsprechen.
Ich nehme an der Stelle Ungenauigkeit in Kauf und gehe von 20 Grad 
Umgebungstemperatur aus.

An den Ausgang kommt zum Debuggen direkt ein Transistor mit LED.
3. Mit einem µC wird die Fernsteuerung (Taster mit Beleuchtung, die 
innerhalb des Temperaturfensters leuchtet) mit den Messergebnissen aus 
vorheriger Anrichtung verwurstet. Der Quellcode ist wie folgt:
1
$regfile = "ATTiny45.dat"
2
$crystal = 8000000
3
$hwstack = 22
4
$swstack = 100
5
$framesize = 100
6
7
Dim Zukalt As Bit
8
9
Taster Alias Pinb.0
10
Config Taster = Input
11
Taster = 1
12
13
Pumpe Alias Portb.1
14
Config Pumpe = Output
15
16
Heizung Alias Portb.2
17
Config Heizung = Output
18
19
250grad Alias Pinb.3
20
Config 250grad = Input
21
22
200grad Alias Pinb.4
23
Config 200grad = Input
24
25
Fertig Alias Portb.5
26
Config Fertig = Output
27
28
Do
29
30
If 200grad = 0 Then
31
   Zukalt = 1
32
   Fertig = 0
33
   Heizung = 1
34
   Pumpe = 0
35
End If
36
37
If 200grad = 1 Then
38
   Zukalt = 0
39
   Fertig = 1
40
End If
41
42
If 250grad = 1 Then
43
   Heizung = 0
44
End If
45
46
If Taster = 1 Then
47
   If Zukalt = 0 Then
48
      Pumpe = 1
49
   End If
50
End If
51
52
If Taster = 0 Then
53
   Pumpe = 0
54
End If
55
56
Loop
57
58
End

Über Transistor / Relais wird dann die Pumpe bzw. die Heizung gesteuert. 
Das Relais der Heizung ist extern. Das Netzteil, das die 12V Spannung im 
System liefert ist ebenfalls extern (mit SPS berzeichnet).

Folgende Probleme
1. Die LED, die eine Temperatur von über 250 Grad signalisieren soll 
geht sofort an. Der Grund dafür entzieht sich meinem Verständnis. Einen 
Lötfehler kann ich (denke ich) ausschließen, habe die Platine von hinten 
beleuchtet und nach jeder Lötstelle begutachtet.

2. Die LED für das Heizrelais geht auch sofort an. Gut, das soll so 
sein. Allerdings bricht die Spannung auf 7,6V zusammen und damit 
schaltet das 12V-Relais natürlich nicht. Der Spulenwiderstand beträgt 85 
Ohm. Liegt das an den Leiterbahnen, fallen die zu dünn aus? (nirgends 
unter 0,6 mm) Sollte doch eigentlich für die paar Milliampere kein Thema 
sein.

3. Wenn ich das Relais von den dafür vorgesehenen Flachsteckzungen 
abziehe geht für einen kurzen Moment die LED des Heizrelais aus und man 
sieht zwischen den Kontakten Funkenflug. Zwar nur wenig aber doch da. 
Was ist da los? Eine Freilaufdiode ist da.

Ich hoffe ich habe alle Informationen geliefert und hoffe auf 
aufschlussreiche Antworten.

von lrep (Gast)


Lesenswert?

Der  TL072 ist nicht für unipolare Versorgung geeignet.

von partyfraktion (Gast)


Lesenswert?

Nachgesehen und an den Kopf gefasst.

Akzeptiert, dürfte wohl erklären warum die 250-Grad-LED angeht.

Die anderen zwei Punkte kann ich mir deshalb aber nicht erklären. Zumal 
die aktivierte LED ja heißt, dass an den Mikrocontroller zu heiß 
gemeldet wird und deshalb das Heizrelais überhaupt keine Spannung 
kriegen dürfte.

von Frank (Gast)


Lesenswert?

partyfraktion schrieb:
> *Folgende Probleme*
> 1. Die LED, die eine Temperatur von über 250 Grad signalisieren soll
> geht sofort an. Der Grund dafür entzieht sich meinem Verständnis. Einen
> Lötfehler kann ich (denke ich) ausschließen, habe die Platine von hinten
> beleuchtet und nach jeder Lötstelle begutachtet.
Was dem Vorredner schon aufgefallen ist. Mit welcher Spannung betreibst 
Du die TL072? Die Verschaltung von zwei Operationsverstärkern 
hintereinander ist grundsätzlich schon eine Sache bei der man sehr 
sorgfältig sein muß. Hier kann es zu verschiedenen Problemen kommen:
a) Der Ausgangsspannungsbereich vom "vorderen" OPV muß im 
Eingangsspannungsbereich des "hinteren" enthalten sein. Das ist bei Dir 
zumindest schon mal nicht der Fall.
b) Es kann zu einem LatchUp beim Einschalten kommen, wenn die 
Versorgungsspannungen unterschiedlich schnell ansteigen.
c) Probleme durch WarmUp Drift. Ein OPV kann ganz unangenehme 
Eigenschaften in seiner Aufwärmphase kurz nach dem Einschalten haben, 
die der folgende OPV ggf. nicht verträgt.

Was spricht eigentlich dagegen für die TL072 auch TLC272 einzusetzen? 
Oder ggf. einen echten Komparator?

> 2. Die LED für das Heizrelais geht auch sofort an. Gut, das soll so
> sein. Allerdings bricht die Spannung auf 7,6V zusammen und damit
> schaltet das 12V-Relais natürlich nicht. Der Spulenwiderstand beträgt 85
> Ohm. Liegt das an den Leiterbahnen, fallen die zu dünn aus? (nirgends
> unter 0,6 mm) Sollte doch eigentlich für die paar Milliampere kein Thema
> sein.
Das dürfte in der Tat nicht sein. Falls Du keinen Kurzschluß oder 
Kriechstrecke hast bleiben eigentlich nur die Leiterbahnen oder ein 
defektes Bauteil (Dioden/Transistor).

> 3. Wenn ich das Relais von den dafür vorgesehenen Flachsteckzungen
> abziehe geht für einen kurzen Moment die LED des Heizrelais aus und man
> sieht zwischen den Kontakten Funkenflug. Zwar nur wenig aber doch da.
> Was ist da los? Eine Freilaufdiode ist da.
Das abgesteckte Relais zeigt Funkenflug? Aus Deiner Beschreibung ist 
nicht ganz klar von wo nach wo Du den Funkenflug beobachtest.

Ansonsten:
>2. Mit einem TL072 in Komparatorschaltung die verstärkte Spannung mit
>der verstärkten Spannung vergleichen. Referenzen sind die Spannungen,
>die umgerechnet den Spannungen des Thermoelements für 220 und 270 Grad
>entsprechen.
Der IC1a arbeitet als * 100 Verstärker.
Die Widerstandskombination am TL072 hingegen ist ein Spannungsteiler.
Also:
"die um 100 verstärkte Thermospannung mit dem Vergleichswert zu 
vergleichen." Schauen wir uns das mal genauer an, das sind: 0,88 Volt am 
IC2B und das ist ein Spannungswert, den der TL072 ganz sicher NICHT 
verarbeiten kann. Die Mindestspannung an jedem Eingang des TL072 muß bei 
einer Betriebsspannung von 12 Volt mindestens 3,2 Volt sein um auf der 
sicheren Seite zu sein (garantierter Maximalwert der Mindestspannung, 
der typische wird etwas darunter liegen).

Da aber Deine 0,88 Volt < 3,2 Volt funktionieren die Komparatoren bei 
Dir nicht.

Also die Schaltung kann so definitiv nicht funktionieren. Abhilfe: 
Austauschen durch TLC272.

Was der IC1b macht entzieht sich meiner Kenntnis. Nach Schaltplan macht 
er gar nichts, ist aber mit zwei Widerständen verschaltet. Warum? Oje 
außerdem ist er in Mittkopplung gezogen. Da ist sicher was ganz falsch.

Der Code schaut okay aus, allerdings habe ich eine Frage dazu:
Taster Alias Pinb.0
Config Taster = Input
Taster = 1
Die Anweisung Taster = 1 verstehe ich dabei nicht. Wenn es ein Eingang 
ist, wie kann ich diesen dann setzen? Was macht also diese Anweisung?

von Heinz V. (heinz_v)


Lesenswert?

Frank schrieb:
> Die Anweisung Taster = 1 verstehe ich dabei nicht. Wenn es ein Eingang
> ist, wie kann ich diesen dann setzen? Was macht also diese Anweisung?

Bei ATmega ist der interne PullUp Widerstand schaltbar, das bewirkt das 
'setzen/löschen' des Eingangs.

von Frank (Gast)


Lesenswert?

partyfraktion schrieb:
> heißt, dass an den Mikrocontroller zu heiß
> gemeldet wird und deshalb das Heizrelais überhaupt keine Spannung
> kriegen dürfte.
Wenn der OPV mit einer ungültigen Eingangsspannung versehen wird ist der 
Ausgang vollkommen undefiniert und kann jeden möglichen Wert annehmen.

Da fällt mir gleich das nächste Problem auf:
Der Mikrocontroller wird mit 5 Volt betrieben.
Die Ausgangsspannung des als Komparator geschalteten OPV wird direkt an 
den Mikrocontroller angeschlossen und als Digitaleingang interpretiert. 
Das kann ebenfalls zu Problemen führen, da es sich um einen OPV handelt 
und eben nicht um einen Komparator mit Digitalausgang. Auch da kann es 
zu allerhand Problemen kommen, auch wenn Dein Spannungsteiler das 
schlimmste verhindert.

Ein wichtiges Problem ist der Pegel, da sind aber MCUs eher tolerant. 
Schwieriger dürfte es mit der minimalen Anstiegsgeschwindigkeit 
aussehen. Kannst Du per Konfiguration alle Eingänge als Schmitt-Trigger 
schalten? Falls ja solltest Du das tun.

Miß doch auch mal die Spannungen an den verschiedenen Punkten, 
insbesondere direkt an Pin 2 und 3 der MCU.

von Frank (Gast)


Lesenswert?

Heinz V. schrieb:
> Frank schrieb:
>> Die Anweisung Taster = 1 verstehe ich dabei nicht. Wenn es ein Eingang
>> ist, wie kann ich diesen dann setzen? Was macht also diese Anweisung?
> Bei ATmega ist der interne PullUp Widerstand schaltbar, das bewirkt das
> 'setzen/löschen' des Eingangs.
Danke. Ja das ersetzt den externen Pull-Up. Wird beim ATTiny wohl 
genauso sein.

von Frank (Gast)


Lesenswert?

Frank schrieb:
> Was der IC1b macht entzieht sich meiner Kenntnis. Nach Schaltplan macht
> er gar nichts, ist aber mit zwei Widerständen verschaltet. Warum? Oje
> außerdem ist er in Mittkopplung gezogen. Da ist sicher was ganz falsch.
Ah jetzt verstehe ich das. Du willst den OPV so schalten, daß er wenig 
Strom verbraucht und nicht stört. Dazu mußt Du aber die beiden Eingänge 
vertauschen (also Pin 5 und 6 von IC1b).

Das solltest Du unbedingt ändern. In der jetzigen Mitkopplung kann der 
ganz böse Schwingen und die restliche Schaltung stören.

von Frank (Gast)


Lesenswert?

Noch was allgemeines:
Ein "Funkenflug" im Relais zwischen zwei Kontakten, würde mich allgemein 
erst mal nicht stören, wenn dies beim Schalten geschieht. Es würde mich 
ebenfalls nicht stören, wenn dies beim Abziehen des Relais bei 
angelegter Spannung geschieht. Letzteres sollte man allerdings natürlich 
nicht machen.

Eine Freilaufdiode dient nicht dazu einen Funkenschlag zu vermeiden, 
sondern dazu, die restliche Schaltung von einer Gegenläufigen Spannung 
durch die Spuleninduktivität beim Ausschalten zu schützen.

von Jan H. (jan_m_h)


Lesenswert?

Frank schrieb:
> Eine Freilaufdiode dient nicht dazu einen Funkenschlag zu vermeiden,
> sondern dazu, die restliche Schaltung von einer Gegenläufigen Spannung
> durch die Spuleninduktivität beim Ausschalten zu schützen.

Eben. Sie lässt den Strom weiter fließen und verhindert damit den 
Spannungsanstieg. Wenn du das Relais jetzt rausziehst, unterbrichst den 
Stromfluss, die Spannung steigt bis zur Funkenbildung. Deine 
Freilaufdiode schließt das ganze jetzt wieder kurz. Allerdings solltest 
du trotzdem kein angezogenes Relais ausstecken, das könnte die Kontakte 
langsam verschlechtern.

von partyfraktion (Gast)


Lesenswert?

Danke für den Input, sehr hilfreich.
Kann soweit alle angesprochenen Punkte nachvollziehen.

Das Problem mit den zwei OPVs nacheinander werde ich wahrscheinlich 
durch den Umstieg auf einen ATmega 16 mit seinem ADC-Eingang lösen, dann 
brauche ich nur noch einen TCL272, den ich durch den Mega anschalten 
lassen kann, dann sollte es auch keinen Latch-Up geben. Der TCl 
verstärkt dann nur das Eingangssignal des Thermoelements.

Das sollte auch das Problem lösen, dass der TCL272 keinen Digitalausgang 
hat. Außerdem ist die Referenz des ATmega vermutlich genauer als das 
Netzteil, das ja die Grundlage für meine "Referenz" mit den 
Spannungsteilern ist.

Wegen des Funkenflugs: Da habe ich mich unklar ausgedrückt, der 
Funkenflug findet an den Kontakten zur Spule statt, nicht an den 
Leistungskontakten.

Ich überarbeite das Ganze mal und melde mich dann nochmal.

von partyfraktion (Gast)


Angehängte Dateien:

Lesenswert?

Es gibt Nachschlag :)

Was ist anders:
1. Der 7805 hat einige Kondensatoren bekommen.
2. Der TLC wird durch den ATmega angeschaltet - sollte Latch-Up-Probleme 
lösen.
3. Das Signal des TLC geht an einen ADC-Pin des ATmega.
4. Der ATmega erhält auch ein Signal eines LM335. Damit halte ich mir 
spätere Kaltstellenkompensation in der Software offen.

Ausgangsseitig hat sich nicht viel getan, das Relais der Pumpe ist noch 
vom Gehäuse runtergewandert, fühle mich wohler wenn nur Niederspannung 
auf der Platine ist.

Ist der Messteil des ATmega ausreichend entstört?
Für den 7805 wird eine recht hohe Genauigkeit angegeben von 25 mV. Das 
wäre deutlich besser als die Genauigkeit der internen Referenz des 
ATmega.
(http://sprut.de/electronic/referenz/index.htm) Spricht etwas dagegen, 
die 5V des 7805 als Referenzspannung zu nehmen?

von partyfraktion (Gast)


Lesenswert?

Meine natürlich: Von der Platine runtergewandert.

von Mark S. (voltwide)


Lesenswert?

Ein Thermoelement mit einem TlC272 zu verstärken ist keine gute Idee.
Schau Dir mal dessen Eingangssoffsetspannung an und vergleiche die mit 
dem Signal das Dein Thermoelemet liefert.
An dieser Stelle kommen nur ein Präzisions-OPV in bipolar-Technik in 
Frage, mit Eingangs-Offset-Spannungen im uV-Bereich (Analog Devices, 
Linear Technologies)

: Bearbeitet durch User
von partyfraktion (Gast)


Lesenswert?

Wäre ein MAX4238 geeignet? Die Versorgungsspannung muss halt dann über 
den 7805 stattfinden.

von partyfraktion (Gast)


Lesenswert?

Oder ein AD708 JN? Den gäbe es in DIL. Der ist nicht ganz so genau.

von partyfraktion (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe mich jetzt für den MAX entschieden und den Schaltplan 
überarbeitet.
Grund für den MAX ist, dass er eine extrem geringe Offsetspannung hat, 
laut Datenblatt single-supply-fähig ist und dabei noch recht günstig 
ist.
Außerdem bietet er eine Shutdown-Funktion, die ihn erst starten lässt, 
wenn VCC auch auf dem Shutdown-Pin liegen lässt. Sehr nützlich, kann man 
direkt mit dem µC ansteuern.
Dazu ist ARef statt mit den 5V mit 4V aus einer TL431 gespeist, die ist 
imho schon recht brauchbar als Referenz.

Gibt es Einwände, sind irgendwo größere Murksereien drin, würdet ihr was 
anders machen - warum?

(Die Werte stammen von https://cxem.net/calc/tl431_calc.php)

von Raimund R. (corvuscorax)


Lesenswert?

Um einigermaßen korrekt die Thermospannung eines Thermoelements messen 
zu können, mußt Du böse aufpassen was für Materialien Du bei der 
Kontaktierung einsetzt! Das Thermoelement erzeugt eine 
temperaturanhängige Spannung genau an dem Punkt, wo zwei 
unterschiedliche Materialen (i.d.R. Metalle) aufeinandertreffen. Allein 
die Verkabelung/Verbindung zu Deinem MAX4238 könnte die ganze Messung ad 
absurdum führen.
Das passende Stichwort dazu lautet "Kaltstellenkompensation". Natürlich 
kann ich nicht wissen, ob Du Dir dazu schon Gedanken gemacht hattest. Am 
Schaltplan allein kann man dies z.Z. nicht erkennen.
Jedenfalls gibt es für diesen 'Fall' spezielle ICs mit denen sowas in 
den Bereich des machbaren kommt: z.B. AD594 (jedenfalls im Fall des Typ 
J Thermoelements). Schau Dir dazu mal die "Thermocouple Basics" am Ende 
des Datenblattes an.

: Bearbeitet durch User
von partyfraktion (Gast)


Lesenswert?

Dafür habe ich den LM335 angedacht, mit dem kann ich die reale 
Temperatur an den Kontaktstellen messen und dann in der Software eine 
Kompensation durchführen.

Heben sich die Einflüsse der Kontaktierung nicht auf? Sind ja zweimal 
exakt dieselben Übergänge (Messing - Flachsteckzunge aus vernickeltem 
Kupfer/Stahl - Leiterbahn)

von Raimund R. (corvuscorax)


Lesenswert?

partyfraktion schrieb:
> Dafür habe ich den LM335 angedacht, mit dem kann ich die reale
> Temperatur an den Kontaktstellen messen und dann in der Software eine
> Kompensation durchführen.

Wäre 'ne Möglichkeit.

> Heben sich die Einflüsse der Kontaktierung nicht auf? Sind ja zweimal
> exakt dieselben Übergänge (Messing - Flachsteckzunge aus vernickeltem
> Kupfer/Stahl - Leiterbahn)

Naja, an (wirklich) jedem(!) Übergang zwischen zwei Metallen entsteht 
eine Thermospannung. Wenn Du absolut gesehen nur(!) die der Messspitze 
wissen möchtest, musst Du sicherstellen, dass (wirklich) alle(!) anderen 
Übergänge die gleiche Temperatur haben (natürlich tendenziell auch eine 
Kältere ;-) ). Nur dann heben sich die Absolutwerte der Thermospannungen 
bei den Kontaktierungspaaren aufgrund ihrer Vorzeichen gegenseitig auf. 
Beim Typ J hast Du aber immer irgendwo den Übergang von Eisen und 
Konstantan auf Deine Platine/MAX4238 via Kupfer und/oder Lötzinn.
Schon ein warmes Bauteil, das näher an einem der beiden 
Kontaktierungspunkten liegt, kann hier die erfolgreiche Aufsummierung 
der Thermospannungen zu Null verhindern.
Evtl. kann es, wenn man es sehr präzise haben möchte, erforderlich sein 
eine thermisch (und auf keinen(!) Fall elektrisch) leitende Verbindung 
zwischen den beiden Kontaktstellen zu haben.

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.