Forum: Mikrocontroller und Digitale Elektronik Comparator zur heizungssteuerung


von Adri D. (adri505)


Lesenswert?

Hallo ,ich bin neu hier und auch im Umgang mit uc neu.Ich habe mich bis 
jetzt mit Assembler ausseinandergesetzt
Nun wollte ich ne Heizungsteuerung bauen,die sich langsam an die soll 
temparatur rantastet,da das ganze träge ist.Ich versuch mal zu erklären 
wie ich mir das gedacht hatte.
Es soll zum beispiel 80grad C (R5=HIGH,Heizung ein) erreicht werden,bei 
70grad wird der comparator angesprochen ,dann R3=High(Comparator 
schwellwert ändern) R6=Low(phasenabschnitt nur noch 80%)
Dann 75grad C R4=HIGH(schwellwert ändern)
R7=Low(Phasenabschnitt nur noch 60%)
Dann 80grad C R8=Low (Phasenabschnitt auf 40%,temperatur halten)

Mit einem ATTINY2313
Also gefühlt werden soll mit PT100 am Comparator.
  !-----------!
  !          -!-----------R1-------Poti----------VS
  ! Comparator!       !---PT100--------------Ground
  !           !
  !2313      +!-----------R2-----------------Ground
  !           !         !
  !     Pinout!--R3-----!
  !     Pinout!--R4-----!
  !     Pinout!--R5-------------!
  !           !                 !
  ! 
Pinout!--R6----------------------!-------!--------Phasenabschnitt
  !     Pinout!--R7-------------!        !opto-  !           zur Heizung
  !     Pinout!--R8-------------!        !koppler!
  !           !                          !       !
  !-----------!                          !-------!

Ich hoffe das nicht so tolle Schaltbild ist halbwegs verständlich.
Mit dem Poti eventuell abgleichen.Es bleiben noch pins für taster und 
Display.Was meint ihr machbar?
Vieleicht könnte jemand in stichworten beschreiben wie der ablauf im uc
zu realisieren ist,ich möchte kein fertiges programm,aber ne hilfe.
Z.B erst ports setzen dann comparator setzen,dann abgragen.
Comparator interupt dann ports schalten.
Ich tu mich ein bisschen schwer den ablauf in den kopf zu kriegen,bzw. 
umzusetzen in programm.
Ich wäre dankbar für hilfe

von H.Joachim S. (crazyhorse)


Lesenswert?

Tja, damit kannst du nur einen Zweipunktregler realisieren. Reicht zwar 
oft, für ne Heizungssteuerung würde ich etwas mehr investieren.
Also nimm einen MC, der auch einen ADC hat und eine passende 
Pt100-Schaltung dran, mit einem einfachen Spannungsteiler wird man mit 
dem sonst nicht wirklich froh.
Alternativ gleich einen der vielen Temperatursensoren mit digitalem 
Ausgang, dann kannst du auch beim Tiny2313 bleiben.
Kannst dann trotzdem erstmal einen Zweipunktregler programmieren und 
später verfeinern (P,I,D).

von Adri D. (adri505)


Lesenswert?

http://www.delta-r.de/Pt-Elemte/Widerstandstabelle_Pt_100/widerstandstabelle_pt_100.html
Laut der Widerstandstabelle des PT100 und 1kohm als spannungsteiler(bei 
5V 4,5mA durch die widerstände) hätte ich bei null grad 0,4545 V am 
comparator.Die Referenzspannung der teiler ist ja gleich also kann es da 
denke ich keine ungenauigkeiten geben.
Bei 70 grad 0,5637 V ,laut datenblatt des Attiny2313 schaltet dieser bei 
ca.
10mV ,es sei denn analog comparator input offset voltage meint die 
ungenauigkeit des differenzial eingangs.Ansonsten sollte der zuverlässig 
schalten oder?
Die Widerstände sollten natürlich präzisionswiderstände sein.
Es sollte halt recht einfach sein und eventuell mit attiny12 oder so 
gemacht werden.
Es sei denn der comparator im MC ist ungenau,und deswegen sinnlos.Weil 
eine schaltung vor den PT100 entweder mit teuren zusatz IC oder mit 
billigeren ungenauen IC zu machen ist.

von Nobody (Gast)


Lesenswert?

Ich würde das ganze eher mit einem ADC machen. Wenn die Temperaturwerte 
geändert werden sollen, ist damit nur eine Softwareänderung notwendig.

Auch lässt sich die Regelcharakteristik eines PID in der Software besser 
anpassen und ggf auch mal nachstellen.

Der Komparator ist nicht ungenau, er vergleicht einfach nur zwei 
Spannungen.
Das kann sogar genauer sein, als der ADC - wenn man es braucht.

von oszi40 (Gast)


Lesenswert?

Ein Komparator schaltet zwar punktgenau hat aber keine merkliche 
Hysterese. Die müßte dann mit der Software nachgebildet werden sonst 
schaltet die Heizung evtl. im Sekundentakt aus und ein.

Da würde ich lieber eine Temperatur messen und den Rest einer Software 
überlassen. Das dürfte auch die Ferienschaltung, Temperaturabsenkung 
usw. wesentlich erleichtern.

von Adri D. (adri505)


Lesenswert?

Es soll keine Zusatzfunktionen haben ausser halbwegs genau eine 
Temperatur  zu erreichen und zu halten und das ohne erstmal drüber 
zuheizen und danach wieder weit drunter zu fallen.Deswegen auch eine 
Phasenabschnittsteuerung die geregelt wird.Die Heizung hat eine gewisse 
Trägheit,würde man warten bis 80grad erreicht sind würde danach die 
temparatur noch ansteigen weil sich dann die Hitze erst 
verbreitet.Deswegen langsam rantasten.

von Uwe (Gast)


Lesenswert?

Hi!
>Temperatur  zu erreichen und zu halten und das ohne erstmal drüber
>zuheizen und danach wieder weit drunter zu fallen
Ein anderer Gedanke wäre den Temperaturanstieg über die Zeit
zu betrachten, dann könnte man vor Erreichen der Solltemperatur 
abschalten.
Steigt die Temp. weiter -Heizung=0, steht die Temp. -Heizung langsam
hochfahren und erneut zeitliches Verhalten testen / messen.
Ist dann sowas wie ein Fuzzyregler.

Viel Erfolg, Uwe

von asdf (Gast)


Lesenswert?

Indem man die Schaltschwelle des Komparators umschaltbar macht baut man 
sich lediglich mit Mehraufwand einen 2-bit-AD-Wandler selbst was die 
Regelung eher schwieriger und die Schaltung komplexer als mit einem 
integrierten 10-bit-AD-Wandler macht.

Für relativ viele Heizungsanwendungen ich keine Phasenanschinttsteuerung 
erforderlich da die Reaktion auch für eine Pulspaketsteuerung 
ausreichend träge ist (z.B. feste Periode 5s und variable Ein-Zeit).

von Oliver (Gast)


Lesenswert?

>Es soll keine Zusatzfunktionen haben ausser halbwegs genau eine
>Temperatur  zu erreichen und zu halten und das ohne erstmal drüber
>zuheizen und danach wieder weit drunter zu fallen. Deswegen auch eine
>Phasenabschnittsteuerung die geregelt wird.

Was du vermutlich beschreiben willst, ist ein einfacher P-Regler. Bei 
dem ist die Augangsgröße umgekehrt proportional zur Differenz 
Sollwert-Istwert. Je näher sich die Isttemperatur an die Solltemperatur 
annähert, desto weniger wird geheizt. Am Ende bleibt da immer eine 
kleine Differenz zwischen Soll- und Istwert, denn bei Sollwert=Istwert 
ist die Heizung ja aus. Wenn das stört, kannst du dem Regler noch einen 
I-Anteil hinzufügen.

Realisieren kann man das sicherlich auf unterschiedliche Art und Weise. 
Am einfachsten dürfte aber der oben schon genannte Vorschlag über den 
ADC sein.

Im Prinzip ist das einfach:

Istwert einlesen, mit Sollwert vergleichen, die Differenz mit einem 
konstanten Faktor multipliziert ergibt die Ausgabegröße, diese an die 
Phasenabschnittssteuerung ausgeben, und das ganze wieder von vorn.

Oliver

von Karl H. (kbuchegg)


Lesenswert?

Adriano Duggento wrote:

> Ich tu mich ein bisschen schwer den ablauf in den kopf zu kriegen,bzw.
> umzusetzen in programm.

Dann nimm Papier und Bleistift und mach dir die Abläufe in einem 
Diagramm klar. Jeder Teilschritt kommt in eine Box. Pfeile verbinden die 
Boxen und zeigen so den Programmfluss an. Eine Raute wird traditionell 
für Vergleiche benutzt. In der Raute schreibst du die Bedingung, von der 
Raute gehen dann 2 Pfeile raus: einer für 'Ja, Bedingung erfüllt', einer 
für 'Nein, Bedingung nicht erfüllt'.

Der Vorteil so eines Flussdiagramms: Du brauchst dich nicht um 
irgendwelche Syntaxfeinheiten der verwendeten Programmiersprache 
kümmern, die sind zu diesem Zeitpunkt uninteressant. Es geht rein darum, 
den logischen Ablauf der Dinge zu visualisieren.

Wenn du ein erstes Diagramm hast, schaust du dir die einzelnen 
Teile-Boxen an und entscheidest, welche davon es verdienen genauer 
detailiert zu werden. Das machst du dann (ev. in einem neuen Diagramm, 
wenn das alte droht unübersichtlich zu werden).

Diesen Verfeinerungsverfahren kann durchaus über mehrere Iterationen 
laufen. Am Ende stehst du dann mit einem Diagramm da, das detailiert 
genug ist um fast 1:1 in ein Programm umgesetzt zu werden.

Dein erstes Diagramm könnte zb. so aussehen
1
                 +--------------------------+
2
                 |  Hardware initialisieren |                      
3
                 +--------------------------+                       
4
                             |                                        
5
                             |<---------------------------------------+
6
                             v                                        |
7
                 +--------------------------+                         |
8
                 | Temperatur messen        |                         |
9
                 +--------------------------+                         |
10
                             |                                        |
11
                             |                                        |
12
                             v                                        |
13
                        ____/ \____                                   |
14
                  _____/            \______                           |
15
     Ja    ______/ gemessene Temp kleiner   \______  Nein             |
16
    +------/       als Sollvorgabe ?               \------+           |
17
    |      \_____                            ______/      |           |
18
    |            \_____             ________/             |           |
19
    |                  \____   ___/                       |           |
20
    |                       \ /                           |           |
21
    |                                                     |           |
22
    |                                                     |           |
23
    v                                                     v           |
24
  +---------------------+                 +-------------------+       |
25
  | Heizung ein         |                 | Heizung aus       |       |
26
  +---------------------+                 +-------------------+       |
27
             |                                     |                  |
28
             |                                     |                  |
29
             +---------------+   +-----------------+                  |
30
                             |   |                                    |
31
                             v   v                                    |
32
               +---------------------------+                          |
33
               | Anzeige aktualisieren     |                          |
34
               +---------------------------+                          |
35
                              |                                       |
36
                              |                                       |
37
                              +---------------------------------------+

Das obige Regelverfahren wird nicht das von dir gewünschte 
Regelverhalten zeigen, aber darum gehts jetzt nicht. Es geht darum, dass 
du ein Werkzeug benutzt (nämlich das Diagramm) um deine Gedanken und 
Ideen zu organisieren und die vorgesehenen Abläufe zu versinnbildlichen.

von Adri D. (adri505)


Lesenswert?

Ja das war schon ein guter hinweis mit dem flussdiagramm und der 
fuzzyregler scheint dann auch schonmal interresanter zu sein.Dann werd 
ich mich mal mit dem mega48 ausseinandersetzen den hab ich auch noch 
rumliegen.
Danke nochmal für die wichtigen tritte in die richtige richtung.
Da es mein erstprojekt ist werd ich mich sicher nochmal melden.

von oszi40 (Gast)


Lesenswert?

Für ein Erstobjekt ist Latte ziemich hoch gehangen mit einer 
Heizungssteuerung für das ganze Haus. Da würde ich erst mal mit was 
nicht so großvolumigen, thermisch trägen anfangen.

Ein Glas Wasser mit kleinster Aquarienheizung dürfte für erste 
Simulations-Versuche schon langsam genug reagieren. Wenn das 
funktioniert sind weitere Schritte durch die gewonnene Erfahrung 
bestimmt leichter.

von Adri D. (adri505)


Lesenswert?

Das wird keine Steuerung fürs Haus,es wird ein Heizband in einem 
metallstück aufgeheizt.Als Erstprojekt vieleicht wirklich ein bisschen 
schwierig allerdings hats zeit und hat dann wirklich eine mehrfache 
sinnvolle verwendung für mich.Ich wollte meine Regale nicht mit tollen 
spielzeugen füllen,ich brauche als ansporn immer was für mich 
nützliches.
Und wenn ichs ausgefeilt bekomme denke ich hat sowas immer verwendung.

von Adri D. (adri505)


Lesenswert?

Nun da ich den pt100 ja am adc auswerten will und man wegen 
eigenerwärmung ja wenig strom durchjagen soll,nun meine frage kann ich 
zum messen nicht einen pin einschalten oder ist das dann ungenau z.b so

!--------------!
!              !   !------------------>ARef
!        pinout!---!--100 OHM--!
!              !               !
!           ADC!---------------!-------PT100------Ground
!              !
!--------------!

Da ich ja nur alle 3-5 sek. messen müsste könnte das funktionieren oder 
gibt es da weitere bedenken?Das wären zum messzeitpunkt ca 25mA 
(63mW)für nur ganz kurz.

von Adri D. (adri505)


Lesenswert?

Habs selbst gefunden, das wohl die spannungsänderung zu gering für 10bit 
adc sind.

von H.Joachim S. (crazyhorse)


Lesenswert?

Schön, dass du es nun selbst gemerkt hast :-)

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.