Forum: Mikrocontroller und Digitale Elektronik Eine Heizmatte mit AVR ansteuern und die Temperatur mittels Temp.sensor am AVR ausgeben, HILFE


von Tomi X. (avr-ghost)


Lesenswert?

Hallo,

Ich bräuchte ein paar Tipps von den Profis hier und zwar möchte ich eine 
Heizmatte mit AVR ansteuern, die Heizmatte soll über ein Relais ein und 
ausgeschalten werden muss eine Temperatur von 37°C halten, z.B: ist die 
Temperatur über 37°C soll Relais ausgeschalten werden und eingeschalten 
wenn es unterschreitet. Diese Temperatur soll über einen 
Temperaturfühler zum AVR am LCD Display übertragen werden.

Meine Frage, könnte mir jemand hier ein paar Tipps geben wie ich dieses 
"kleine" Projekt angehen könnte bzw. wie ich AVR und Relais usw. 
zusammen einbeziehen kann, damit es funktioniert.

Vielen Dank im Vorraus!!!

von Bronco (Gast)


Lesenswert?

Tips:
Nimm einen Temperatursensor mit I2C- oder SPI-Schnittstelle, dann kannst 
Du Dir die Analogschaltung sparen.
Siehe eine einfach hardwareseitige Abschaltung ab der maximalen 
Temperatur vor, damit Dir die Matte nicht bei einem Software-Bug 
abbrennt. Lege die Abschaltung redundant aus.
Temperaturen sind i.d.R. recht träge. Ein 2-Punkt-Regler dürfte erstmal 
reichen.

von troll (Gast)


Lesenswert?

Tomi XX schrieb:
> HILFE
Ganz schlecht...

> Meine Frage, könnte mir jemand hier ein paar Tipps geben wie ich dieses
> "kleine" Projekt angehen könnte
Frag mal Google und die Forensuche, solche Sachen wurden schon zigmal 
gebaut und sind keine Raketentechnik wie KHB sagen würde... Was Bronco 
oben schreibt ist schon mal gut.

> bzw. wie ich AVR und Relais usw.
> zusammen einbeziehen kann,
Relais mit Logik ansteuern

von Karol B. (johnpatcher)


Lesenswert?

Naja, wie "gut" kennst du dich denn schon mit der Programmierung von 
Mikrocontrolern aus? Relais lassen sich sich (zumindest von der Logik 
her) relativ einfach direkt ansteuern. Details dazu finden sich hier: 
https://www.mikrocontroller.net/articles/Relais_mit_Logik_ansteuern

Die Ansteuerung eines LCD Displays (ich nehme an auf Basis des HD44780) 
wird hier erläutert: https://www.mikrocontroller.net/articles/HD44780

Einen Temperatursensor "wertet" man i.d.R. mittels ADC im 
Mikrocontroller um (siehe z.B. hier: 
https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial/Analoge_Ein-_und_Ausgabe). 
Alternativ gibt es auch digitale Sensore, die z.B. per I2C angesprochen 
werden. Eine Auflistung bekannter Sensoren findest du hier: 
https://www.mikrocontroller.net/articles/Temperatursensor

Dann fehlt im Prinzip nur noch eine Regelunglogik. Ein einfaches Ein- 
bzw. Abschalten bei unter bzw. über 37 ° wird nämlich nicht das 
gewünschte Ergebnis liefern.

Eventuell für dich interessant: 
http://www.mikrocontroller.com/de/heizung.php

Auf gut Deutsch: Du musst nur die vielen kleinen Teile zusammenführen.

von Tomi X. (avr-ghost)


Angehängte Dateien:

Lesenswert?

Danke vorerst für die netten Links, werde ich mir alle mal durchlesen...

Mein LCD-Display ist schon intergriert am AVR Board, siehe Anhang.

Meine Vorstellung war es einen Digitalen Temperaturfühler zu nehmen 
diesen dann über den Binärcode zum Display zu übertragen oder hast du 
eine bessere Idee?! :/

von Cobra (Gast)


Lesenswert?

Frohes Klappern an der 37° Grenze!

von troll (Gast)


Lesenswert?

Das Board kommt mir doch bekannt vor. :-)

Tomi XX schrieb:
> Mein LCD-Display ist schon intergriert am AVR Board, siehe Anhang.
Welches willst du den nehmen, Text oder Grafik?

> Meine Vorstellung war es einen Digitalen Temperaturfühler zu nehmen
ok, hatte das Board nicht gleich einen solchen an Board? LM35 oder so??

> diesen dann über den Binärcode zum Display zu übertragen oder hast du
> eine bessere Idee?! :/
Was verstehst du unter "Binärcode"? Du kannst den Sensor auslesen, die 
Temperatur in einen String (also eine Reihe ASCII-Codes) umwandeln und 
so ans Display zeigen was dann wunderbar klar die Temperatur anzeigt.

Allerdings sollte wie oben gesagt eine Hystere in die Sache und ein vom 
µC unabhängiger Schutz gegen Überhitzen.

von troll (Gast)


Lesenswert?

troll schrieb:
> so ans Display senden was dann wunderbar klar die Temperatur anzeigt.
Sry, zu schnell.

von Tomi X. (avr-ghost)


Lesenswert?

troll schrieb:
> Das Board kommt mir doch bekannt vor. :-)
>
> Tomi XX schrieb:
>> Mein LCD-Display ist schon intergriert am AVR Board, siehe Anhang.
> Welches willst du den nehmen, Text oder Grafik?

Ich benütze den Text-Display

>> Meine Vorstellung war es einen Digitalen Temperaturfühler zu nehmen
> ok, hatte das Board nicht gleich einen solchen an Board? LM35 oder so??

doch, nur sind die Messwerte nicht genau , d.h es würde zu viel 
varrieren

>> diesen dann über den Binärcode zum Display zu übertragen oder hast du
>> eine bessere Idee?! :/
> Was verstehst du unter "Binärcode"? Du kannst den Sensor auslesen, die
> Temperatur in einen String (also eine Reihe ASCII-Codes) umwandeln und
> so ans Display zeigen was dann wunderbar klar die Temperatur anzeigt.

hmm wie meinst in einen string?

von Karl H. (kbuchegg)


Lesenswert?

Tomi XX schrieb:

> doch, nur sind die Messwerte nicht genau , d.h es würde zu viel
> varrieren

Sagt wer?
Hast du dir die Messwerte in Form von Zahlen schon mal auf dem LCD 
ausgeben lassen? (Das wäre übrigens dein erster Schritt in der 
Entwicklung)

In der Praxis lässt man dann ja sowieso nicht bei genau 37° schalten.

Sondern: unter 36° wird eingeschaltet
         über 38° wird ausgeschaltet

Misst man 37° dann macht man einfach nichts sondern behält den letzten 
Zustand (heizen oder nicht heizen) bei.


   if( Temperatur < 36 )
     Relais ein
   else if( Temperatur > 38 )
     Relais aus

fertig.

Dein zu wärmendes Gut hat ja sowieso nicht genau die gleiche Temperatur 
wie die Heitmatte.


>> so ans Display zeigen was dann wunderbar klar die Temperatur anzeigt.
>
> hmm wie meinst in einen string?

Als Text.
Oder wie gibst du aufs LCD einen Messwert, der in einer Variablen steht, 
aus?
FAQ gleich der erste Punkt

von Cobra (Gast)


Lesenswert?

Das Board des TO hat einen DS1820 mit einer Genauigkeit von +-0,5°C.

Dazu schreibt er:

Tomi XX schrieb:
> nur sind die Messwerte nicht genau , d.h es würde zu viel
> varrieren

ähmm ... ;-)

ich denke, das wird ihm nicht genügen:

Karl Heinz Buchegger schrieb:
> if( Temperatur < 36 )
>      Relais ein
>    else if( Temperatur > 38 )
>      Relais aus

Allerdings scheint es mir angesichts seiner Vorkenntnisse auch nicht 
angebracht, ihm eine Regelung mittels PWM und SSR zu empfehlen. :-)

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.