Forum: Mikrocontroller und Digitale Elektronik PWM für Heizungsansteuerung


von Joe_D (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich habe die angehängte Schaltung nachgebaut (die ich vorher leicht 
abgeändert habe, statt Spannungsregler 7815 -> 7818 und statt Op ua741 
-> LM301).

Die PWM erzeuge ich mit dem 8Bit-Timer2 (Timer1 ist leider belegt) auf 
einem AVR NET IO-Board von Pollin (16MHz getakteter AVR644). Der Teiler 
ist hierbei 1024, die Frequenz somit 15,625kHz:
1
TCCR2A |= (1<<COM2A0) | (1<<COM2A1) | (1<<WGM20) | (1<<WGM21);
2
TCCR2B |= (1<<CS20 | 1<<CS21 | 1<<CS22);
3
OCR2A = value;

Ich habe mal eine Kennlinie erstellt und dabei folgendes gemessen:
1
OCR2A   Uin [V] Uout [V]    
2
0       4,97     2,08
3
20      4,56     2,08
4
70      3,59     2,08
5
120     2,62     2,1
6
140     2,23     2,18
7
180     1,46     2,78
8
220     0,69     5,59
9
230     0,5      7,17
10
240     0,3      9,55
11
245     0,2     11,28
12
250     0,11    13,4
13
251     0,09    13,89
14
252     0,07    14,74
15
253     0,05    15,53
16
254     0,03    16,54
17
255     0,01    17,2
Der Verlauf ist logarithmisch (siehe auch angehängtes Diagram), der für 
mich interessante Bereich ist der ab 9,55V Uout. Leider habe ich hier 
nur 15 Schritte. Wie kann ich hier mehr Schritte erhalten? Evtl. die 
Schaltung abändern? Oder SoftPWM?

Gruß

   Joe_D

von Thilo M. (Gast)


Lesenswert?

Was genau steuerst du denn damit?

von Falk B. (falk)


Lesenswert?

@  Joe_D (Gast)

>      AnschaltungHeizung.png
>      4 KB, 25 Downloads

>Der Verlauf ist logarithmisch (siehe auch angehängtes Diagram),

Liegt an deiner schlechten Schaltungsdimensionierung. Bei korrekter 
Dimensionierung ist das nämlich alles schön linear.

>mich interessante Bereich ist der ab 9,55V Uout.

Rede mal deutsch und beschreibe dein Vorhaben GENAU!
Siehe Netiquette

> Leider habe ich hier
>nur 15 Schritte. Wie kann ich hier mehr Schritte erhalten? Evtl. die
>Schaltung abändern? Oder SoftPWM?

Erstmal die Schaltung gescheit dimensionieren.
Lies mal was über Optokoppler und PWM.

Den Optokoppler kann man direkt per AVR ansteuern, ein Vorwiderstand 
reicht.

Am Ausgang braucht man entweder einen Treiber oder einen hochohmigen 
Tiefpass. R3 muss eher 100K++ sein, besser 1M. Und als OPV bruacht du 
was anderes, LM358 ist ein brauchbarer Kandidat.

MFg
Falk

von Joe_D (Gast)


Lesenswert?

@Falk

> Liegt an deiner schlechten Schaltungsdimensionierung

Ich habe nichts "dimensioniert", denn wie schon geschrieben habe ich 
"die angehängte Schaltung nachgebaut".

> Rede mal deutsch und beschreibe dein Vorhaben GENAU!

Das Vorhaben ist folgendes: An meiner Vaillant-Therme kann man die 
Vorlauftemperatur mittels einer Spannung von 10V-17V vorgeben, die 
Therme selbst liefert eine Gleichspannung von ca. 22V. Ich möchte nun 
die besagte Spannung von 10V-17V galvanisch getrennt vorgeben und habe 
dazu den oberen Schaltplan im Netz gefunden und leicht abgeändert 
nachgebaut.

> Lies mal was über Optokoppler und PWM.

PWM funktioniert ja ohne Probleme, wie man im Diagram sieht schön 
linearer Anstieg der Spannung von 0V bis 5V.

Beim Optokoppler werde ich wohl auf die Nicht-Invertierte Schaltungsart 
wechseln.

> Den Optokoppler kann man direkt per AVR ansteuern, ein Vorwiderstand
> reicht.

Ok, bei meinem 6N139 wäre das laut Datenblatt (If=1.6mA,Vf=1.4V) ein 
2,2KOhm Widerstand.

> Am Ausgang braucht man entweder einen Treiber oder einen hochohmigen
> Tiefpass.

Am Ausgang vom Optokoppler?

Ein Tiefpass ist doch ein RC-Glied. Welche Grenzfrequenz sollte dafür 
gewählt werden?

> R3 muss eher 100K++ sein, besser 1M. Und als OPV brauchst du
> was anderes, LM358 ist ein brauchbarer Kandidat.

Mit OPVs kenne ich mich kaum aus, ausser das die im Plan verwendete 
Schaltungsart ein Spannungsfolger ist.

Der LM358 ist ein DualOp. Weshalb eignet sich dieser besser als ein 
LM301? Ich hätte auch noch einen LM318P.

Gruß

  Joe_D

von Anja (Gast)


Lesenswert?

Hallo,

das Grundproblem an der Schaltung ist daß der Optokoppler (100kHz) zu 
langsam für deine PWM 16KHz * 8Bit = 4Mhz ist. Außerdem wird C1 viel 
schneller entladen als geladen.

Ich vermute mal daß in der ursprünglichen Schaltung R3+R4 getauscht 
waren.
Dies hätte den Vorteil daß der Kondensator symmetrischer betrieben wird 
und der Optokoppler auf Grund des höheren Stroms etwas schneller wird, 
da er nicht ganz in die Sättigung gerät.

Den LM301 würde ich mit der Versorgung an die +24V hängen falls du die 
+17V am Ausgang sicher erreichen willst. (Laut Datenblatt beträgt der 
Spannungsabfall zwischen Versorgung und Ausgang bis zu 3V bei 10k-Ohm 
Last).
Ein LM358 bietet in der vorhandenen Schaltung keinen Vorteil. Du 
brauchst einen "Input Common Mode Range" bis an die positive Versorgung.

Generell fehlen in der Schaltung die Abblock-Kondensatoren. 
(Möglicherweise schwingt die Schaltung ja sogar). Ich würde an IC2 
jeweils 100nF an Ein und Ausgang spendieren und für IC1 nochmal so 10uF 
über der Versorgung. Zusätzlich für IC2 so 100-220uF falls die Leitung 
zur Therme >= 10 cm ist.

von Falk B. (falk)


Lesenswert?

@  Joe_D (Gast)

>Vorlauftemperatur mittels einer Spannung von 10V-17V vorgeben, die
>Therme selbst liefert eine Gleichspannung von ca. 22V. Ich möchte nun
>die besagte Spannung von 10V-17V galvanisch getrennt vorgeben und habe

>Ok, bei meinem 6N139 wäre das laut Datenblatt (If=1.6mA,Vf=1.4V) ein
>2,2KOhm Widerstand.

Ist OK.

>> Am Ausgang braucht man entweder einen Treiber oder einen hochohmigen
>> Tiefpass.

>Am Ausgang vom Optokoppler?

Ja.

>Ein Tiefpass ist doch ein RC-Glied. Welche Grenzfrequenz sollte dafür
>gewählt werden?

http://www.mikrocontroller.net/articles/Pulsweitenmodulation#DA-Wandlung_mit_PWM

Die 100K und 4,7µF ergeben mit der PWM-Frequenz ca 3% Ripple, das passt 
schon. Ggf. halt auf 1M gehen, dann sind das 0,3% und damit an der 
Auflösungsgrenze der 8-Bit PWM.

>Der LM358 ist ein DualOp. Weshalb eignet sich dieser besser als ein
>LM301? Ich hätte auch noch einen LM318P.

Da du ja nur eine Spannung zwischen 10..17V ausgeben willst, kannst du 
den LM301 verwenden.
Den solltest du aber direkt an die 22V anschliessen. Und den 
Spannungsregler nur für den Optokoppler verwenden.

MFG
Falk

von Falk B. (falk)


Lesenswert?

@  Anja (Gast)

>das Grundproblem an der Schaltung ist daß der Optokoppler (100kHz) zu
>langsam für deine PWM 16KHz * 8Bit = 4Mhz ist.

Nöö, die 15,6 kHz sind schon der PWM-Takt. Macht bei 8 Bit 61 Hz.

>Ich vermute mal daß in der ursprünglichen Schaltung R3+R4 getauscht
>waren.

Kann sein.

MfG
Falk

P S Hab mich ein wenig verrechnet. Mit 100K+4,7µF sind es nur 0,8% 
Ripple, das passt schon.

von Joe_D (Gast)


Angehängte Dateien:

Lesenswert?

@Anja

> das Grundproblem an der Schaltung ist daß der Optokoppler (100kHz) zu
> langsam für deine PWM 16KHz * 8Bit = 4Mhz ist.

Ich könnte auch einen 6N137 verwenden, oder mal testweise per 
Software-PWM die Frequenz auf 125Hz absenken.

> Ich vermute mal daß in der ursprünglichen Schaltung R3+R4 getauscht
> waren.

Nein, siehe Anhang. R4 ist schon ok so, nur R3 nicht. Ich werde evtl. 
mal die Schaltung aus dem Beitrag PWM verwenden (zwei Tiefpässe vor OP).

Gruß

  Joe_D

von Joe_D (Gast)


Lesenswert?

@Falk

> P S Hab mich ein wenig verrechnet. Mit 100K+4,7µF sind es nur 0,8%
> Ripple, das passt schon.

Mhhh, also mit 1K+4,7µF komme ich bei 5V und 0,064ms T_PWM auf 17mV 
Ripple - und mit 100K auf 0,17mV.

> Den [LM301] solltest du aber direkt an die 22V anschliessen.

Im Datenblatt steht unter Supply Voltage aber max. +-18V.

Was ich nun nicht ganz verstehe, woher kommt die Nichtlinearität?

Gruß

  Joe_D

von Falk B. (falk)


Lesenswert?

@  Joe_D (Gast)

>> P S Hab mich ein wenig verrechnet. Mit 100K+4,7µF sind es nur 0,8%
>> Ripple, das passt schon.

>Mhhh, also mit 1K+4,7µF komme ich bei 5V und 0,064ms T_PWM auf 17mV
>Ripple - und mit 100K auf 0,17mV.

16 MHz Takt / 1024 = 15,625 kHz PWM Takt
15,625 kHz / 256 = 61 Hz PWM Frequenz = 16,3 ms Periodendauer

Vcc ist hier 18V, kann man aber wieder durch selbige dividieren um auf 
die Prozente zu kommen.

Macht nach der Formel im Artikel 0,87%.

>> Den [LM301] solltest du aber direkt an die 22V anschliessen.

>Im Datenblatt steht unter Supply Voltage aber max. +-18V.

Naja, die Differenz zwischen den Versorgungsspanungen darf max. 36V 
betragen. Du hast ~22V. Dem OPV ist es egal ob der +/-18V oder 0 und 36V 
sieht.

>Was ich nun nicht ganz verstehe, woher kommt die Nichtlinearität?

Dein Tiefpass ist zu niederohmig! Der belastet den Optokoppler bzw. den 
Pull-Up Widerstand viel zu stark.

MFG
Falk

von gerd (Gast)


Lesenswert?

hallo,

wenn an der Therme 22V anliegen...

Warum nicht einfach mit einem Poti einstellen?

von Joe_D (Gast)


Angehängte Dateien:

Lesenswert?

Anbei mein geänderter Schaltplan und die dazugehörige Kennlinie:
1
OCR2A   Uin [V] Uout [V]    
2
0       5,00     2,10
3
40      4,15     2,35
4
50      3,96     2,73
5
70      3,57     3,92
6
100     3,00     5,92
7
120     2,61     7,27
8
160     1,84    10,04
9
175     1,55    11,08
10
190     1,26    12,19
11
220     0,68    14,32
12
240     0,30    15,74
13
255     0,01    16,85

Sieht jetzt schon ganz gut aus, nur das invertierte Verhalten stört mich 
noch. Bei meinem Optokoppler bin ich mir nicht sicher, ob ich R4 einfach 
zwischen Pin5 und GND setzen kann.

Gruß

  Joe_D

P.S: @Gerd, an der Therme ist schon ein Poti - habe aber keine Lust 
ständig in den Keller zu laufen...

von Anja (Gast)


Lesenswert?

Joe_D schrieb:
> Sieht jetzt schon ganz gut aus, nur das invertierte Verhalten stört mich
> noch.

Wieso? Die Spannung an der Therme korrespondiert doch mit dem 
OCR2A-Wert.

> Bei meinem Optokoppler bin ich mir nicht sicher, ob ich R4 einfach
> zwischen Pin5 und GND setzen kann.
Da wird er auf jeden Fall langsamer. Ich würde eher die Eingangspins 
tauschen (Prozessor Port an den anderen Eingangspin und den bisherigen 
Eingangspin an das andere Versorgungspotential).

Tipp: Du könntest noch einen Pull-up 100k zwischen IC1 Pin 3 und +18V 
legen um den Aussteuerbereich auf ca 9-17V zu begrenzen.

von Joe_D (Gast)


Lesenswert?

@Anja

> Wieso? Die Spannung an der Therme korrespondiert doch mit dem
> OCR2A-Wert.

Das schon. Nur wenn nun aber im AVR wegen einem Programmierfehler die 
PWM nicht anläuft oder aus irgendeinem Grund der Pin X1-2 auf 0V geht 
(z.B. Kabelbruch), dann liegen an der Therme 16,85V an und die Heizung 
läuft dann auf Volllast ;(

Deshalb hätte ich gern ein nicht-invertierendes Verhalten zwischen Uin 
und Uout. Evtl. muss ich aber auch einen andern Optokoppler verwenden 
(4N33?,CNY17/3?).

Gruß

  Joe_D

von Mandrake (Gast)


Lesenswert?

Pin8 des OK direkt an die Versorgung anzuschließen ist keine gute Idee.
Da schließt man direkt die Versorgung kurz. Würde Pin8 mit Pin6 
verbinden.

Gruß

Mandrake

von Joe_D (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe jetzt mal den 4N33 mit meiner PWM getestet (ohne Last an einer 
17V Gleichspannungsquelle), da sah die Kennlinie ganz ok aus.

Deshalb habe ich mir gedacht ich könnte auch auf den 7818 verzichten, 
der 4N33 hält ja die 22V aus.

Den 100k Pullup zwischen IC3 und +22V werde ich evtl. auch noch 
dazunehmen.

Gruß

  Joe_D

von Anja (Gast)


Lesenswert?

Joe_D schrieb:
> Deshalb habe ich mir gedacht ich könnte auch auf den 7818 verzichten,
> der 4N33 hält ja die 22V aus.

Wie genau sind die 22V denn? sind die auch stabilisiert oder schwanken 
die mit der 230V-Versorgungsspannung
-> Vorlauftemperatur je nach Tagesform Deines EVUs.

Gruß Anja

von Joe_D (Gast)


Angehängte Dateien:

Lesenswert?

Die 22V sind IMHO recht glatt. Ich habe leider kein Oszi ;( - Anbei mal 
meine letzte Lösung.

Nach dem Aufbau von "AnschaltungHeizungNEU" bekam ich zwar eine Spannung 
von z.B. 12V heraus, die Heizung (bzw. Umwälzpumpe) sprang zwar an aber 
der Brenner nicht. Dann habe ich bei meinem Multimeter mal auf 
Wechselstrom gestellt und gemessen: 8V (!)

Erste Versuche mit einem Kondensator am Ausgang (X2-3/X2-1) führten zwar 
zu einem Anspringen des Brenners - aber die Spannung war 
"festgenagelt"...

Als nächstes habe ich einen Tiefpass vor den 4N33 gesetzt, dann ging 
gar nichts mehr ;) Aber jetzt wusste ich wenigstens, dass der 
Wechselstromanteil nach dem Optokoppler weg musste...

Um besser Testen zu können habe ich den 7818 wieder eingebaut, da ich 
nur eine mit 470µF geglättete 28V Gleichspannungsquelle besitze.

Im Endeffekt habe ich einfach mal die Schaltung von 
http://www.mikrocontroller.net/articles/Pulsweitenmodulation#DA-Wandlung_mit_PWM 
(und zwar die untere mit OP) nachgebaut. Hat aber nichts geholfen, der 
Wechselstromanteil war noch genauso hoch.

Abblockkondensatoren an IC1 haben auch nichts gebracht, deshalb habe ich 
diese wieder weggelassen.

Erst das Hinzufügen von C1 mit 10µF hat den Durchbruch gebracht. Der 
Wechselstromanteil an X2-3 ist verschwunden, bzw. ich kann diesen nicht 
mehr messen. Den Test an der Therme mache ich morgen.

Ob das nun auch alles ohne C2,C3 und R4 (evtl. R3?) funktionieren würde 
probiere ich jetzt nicht mehr aus.

Vielen Dank nochmals an Anja und Falk für die Denkanstöße!

Gruß

   Joe_D

von Anja (Gast)


Lesenswert?

Joe_D schrieb:
> Um besser Testen zu können habe ich den 7818 wieder eingebaut, da ich
> nur eine mit 470µF geglättete 28V Gleichspannungsquelle besitze.

Frage: ist der Masseanschluß vom 7818 wirklich am negativen Eingang = 
Ausgang des OP´s angeschlossen. (Kein Wunder daß da was schwingt).

von Joe_D (Gast)


Lesenswert?

Mist. Vermalt ;( Der hängt mit Pin 4 auf X2-1 zusammen.

Gruß

  Joe_D

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.