Eine Heizmatte mit AVR ansteuern und die Temperatur mittels Temp.sensor am AVR ausgeben, HILFE

OP #3024238
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!!!
Gast #3024252
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.
Gast #3024257
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
#3024259
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.
Gast #3024773
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.
OP #3025632
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?
#3025678
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
Gast #3025709
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. :-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren