hallo leute, ich möcht mir gern so eine Temperatursteuerung bauen, bin aber ein kompletter neuling in der µC-Technik, mein Ziel ist es das die regelung den Heizer bei einem maximalwert aus-, bzw einem minimal wert einschaltet. nun zu meinen fragen: 1) wie könnt ich das ganze in hardware realisieren? bzw. welche schaltung? 2) ich hab gehört das man das ganze am besten in C programmiert, kenne mich leider auch noch nicht aus, ich hoffe dass sich das ändert ;), wie würde den so der Code dafür aussehen? wenn mir vielleicht noch mehr helfen möchte und zeit hat, kann mir dann auch gleich wer eine beschreibung dazu posten wenns nit zuviel umstände macht :) mit bitte um hilfe, mfg
Was du bauen willst ist ein Zweipunktregler, der lässt sich auch ohne µC aufbauen (Google kennt vielleicht ein paar Schaltungen). Wenn du einen µC nehmen willst ist die Programmiersprache dazu nebensächlich - diese Aufgabe ist nicht zeitkritisch, deine Fische würden sie höchstens als sicherheitskritisch einstufen, und da sollte bei halbwegs vernünftiger Programmierung nix schief gehen (wird schließlich ein Minimalprogramm). Als Hardware hast du eigentlich die freie Wahl. Entweder du nimmst einen Temperatursensor, der dir digitale Werte ausgibt (siehe http://www.mikrocontroller.net/articles/Temperatursensor) oder du verwendest ein Element mit temperaturabhängigen Eigenschaften, z.B. einen NTC (Widerstandsmessung) oder eine Diode (Messung der Flussspannung) oder so und einen am µC eingebauten ADC (externer ADC geht natürlich auch, aber eingebaut ist einfacher). Wie man das dann in Software macht hängt von der gewählten Beschaltung ab... Auf welcher Controllerfamilie (AVR, PIC, ...) soll das ganze eigentlich laufen?
Hallo Stephan, Hilfe zur Selbsthilfe: rtfm (read the fine manual)! Die AVR-Tutorials hier sind wirklich gut. http://www.mikrocontroller.net/articles/AVR Zur Schaltung: Zerlege das Ganze in Funktionsabschnitte: - Controller - Temperaturmessung (Stichwort AD-Wandlung) - Schalten (Heizung an/aus) - Display Und ab in's Tutorial (alle nötigen Funktionen sind eigentlich mit Schaltung beschrieben)! Zur Programmierung: Ja, man kann das in C machen, Assembler geht auch und alles was an anderen Sprachen nicht schnell genug weg gelaufen ist, als jemand einen Compiller dafür schreiben wollte auch. Das GCC-Tutorial kenne ich zwar nicht von innen, wenn es aber nur halb so gut ist, wie das Assembler-Tutorial, dann kannst Du damit das Programmieren sehr gut lernen. Viele Grüße Sebastian
das ganze sollte auf PIC laufen, weil ich das ganze auch gleich für die schule als kleines Projekt machen werde, und da werden die PICs verwendet. die steuerung mach ich zwar für mich privat, aber mein lehrer meinte ich kann das auch ina schule abgeben und dann gibts halt "zusatzpunkte"
Na dann - das meiste kann man übernehmen, nur in Details ist die Ansteuerung natürlich anders. sprut.de und speziell auch http://www.sprut.de/electronic/pic/grund/adc.htm könnte einen Besuch wert sein.
#include <18F452.h> #include <string.h> #include <math.h> #fuses XT, NOWDT, NOBROWNOUT, NOLVP, DEBUG main(){ adc=input(PIN_A2); int soll=b'0000000000000000'; int min= b'0000000000111100'; if(adc>soll) output_high(PIN_A3); else if(adc<min) output_low(PIN_A3); } ich hab vom kollegen mal das bekommen, er hat da einen temperatur und feuchtigkeitssensor fürs terrarium verwendet, kann ich das so verwenden oder sollte ich da noch was umschreiben?
was würdet ihr für einen Temperatursensor empfehlen? Genauigkeit sollte bei einem grad liegen.
ich hab mir gedacht dass ich einen lm335 verwende, aber da gibts das problem dass er bei meinem minimal wert 2,96V ausgibt, und bei meinem maximalwert 2,98V. nun glaub ich aber dass bei so einem gerringen unterschied sich nichts ändert, bzw ich kann mit dem unterschied nicht wircklich was anfangen, kann man das beheben?
>ich hab mir gedacht dass ich einen lm335 verwende, aber da gibts das >problem dass er bei meinem minimal wert 2,96V ausgibt, und bei meinem >maximalwert 2,98V. Das entspricht einer T-Differenz von 2K (10mV pro K), also ganz normal. Im Datenblatt ist dazu eine einfache Schaltung angegeben: Simple Temperature Controller
Nur Hinweis: ZMD hat sehr gute Temp.-sensoren 0,1 Grad http://www.zmd.de/pdf/ZMD%20TSic506%20Data%20Sheet%20V3.6.PDF Der lm soll aber +/- 0.5 haben und +/- 0,2 wenn kalibriert - reicht damit vermutl. ;-) Ich habe mal einen Bausatz von C. dazu verwendet - ging. (Temp.-sen zwecks relaissteuerung) Das Problem war Wasser. Wie bekommst Du den Sensor dauerhaft "dicht". Wo soll der hin? Das kostet übrigens ein bißchen "Regelzeit", (Totzeitsystem). (kritisch war das alles nicht, ein bißchen mit den Schwellen spielen: bei der originalschaltung "ratterte" das Relais, wegen: lange Zuleitung, schwaches Netzteil) Das Relais schaltete die Heizung: on/off. das war eine "fertige" Stromversorg. war Netzteil: "Dauerbetriebskosten" Viel erfolg! c. p.s.: ein anderes Problem kann das Kühlen im Sommer sein (je nach Fisch & Standort)
Jack Braun wrote: >>ich hab mir gedacht dass ich einen lm335 verwende, aber da gibts das >>problem dass er bei meinem minimal wert 2,96V ausgibt, und bei meinem >>maximalwert 2,98V. > > Das entspricht einer T-Differenz von 2K (10mV pro K), also ganz normal. > > Im Datenblatt ist dazu eine einfache Schaltung angegeben: > > Simple Temperature Controller ja mag sein das das normal ist, aber bei einem unterschied von 20mV wird sich da denk ich nicht viel ändern würd das mit operationsverstärker gehen? der lm335 wäre halt fein weil der gleich die spannung ausgibt, anstatt frequenz
>würd das mit operationsverstärker gehen?
Schau Dir doch die Schaltung im Datenblatt an.
Ein OPV arbeitet als Komparator und vergleicht die Spannung vom 335
mit einem festen Wert (den Du vorgibst).
ja und wenn der wert nicht übereinstimmt soll er ein bzw ausschalten, heißt das jetzt ich häng einfach nen opv hinter den lm334 und dann funktioniert das? hab da im datenblatt ne schaltung gefunden, kann die so funktionieren? http://www.ortodoxism.ro/datasheets/stmicroelectronics/2158.pdf und unten dann simple temperature controller
>ja und wenn der wert nicht übereinstimmt soll er ein bzw ausschalten, Genau, ist eben ein Zweipunktregler. >heißt das jetzt ich häng einfach nen opv hinter den lm334 und dann >funktioniert das? Wenn Du die Schaltung so wie angegeben aufbaust, ja.
Du kannst ja nen DS18B20 nehmen, dann hast Du 0,0625° Auflösung und bist den ganzen Analog-Ärger los. Wichtig ist aber, daß er wasserdicht montiert wird. Peter
Wichtig ist aber auch, das Wasser umzuwälzen. D.h. das warme Wasser gut zu verteilen um damit eine gleichmäßige Temperatur zu erhalten. Sonst hat man diese Temperatur nur in der Ecke, in der die Heizung ist. Bei großen Aquarien gegenüber ist es dann auch schon wieder kälter.
Im Temperaturbereich 10..50°C habe ich mit Heißleitern gute Erfahrungen gemacht. Es war ein Restposten von 100 Stück Kapillarheißleiter 24kOhm. Den habe ich einfach über 110k von 5V "bestromt" und den Spannungsabfall mittels ADC (interne Referenz) vom Mega48 gemessen, per Tabelle im Flash skaliert und per LCD angezeigt. Per 4 Taster und Menü lassen sich (neben ein paar anderen Dingen) Schaltpunkt und Hysterese (für meinen ollen Boiler, dessen Thermostat kaputt ging) einstellen. Sicher hat ein digitaler Temperatursensor auch seinen Reiz... ...
Stephan Maurer wrote: > > hab da im datenblatt ne schaltung gefunden, kann die so funktionieren? > http://www.ortodoxism.ro/datasheets/stmicroelectronics/2158.pdf und > unten dann simple temperature controller kann ich auch diese schaltung verwenden? ich meine doch dass die einfacher wäre, bzw da krieg ich gleich ne spannung raus, und bei der einen soll er einschalten bei der anderen ausschalten achja, welchen opv soll ich nach dem lm334 schalten?
>kann ich auch diese schaltung verwenden? ich meine doch dass die >einfacher wäre Einfacher als was? Das ist doch die Schaltung aus dem Datenblatt des 335. >achja, welchen opv soll ich nach dem lm334 schalten? Steht doch groß und deutlich da: LM311.
Hallo Stephan Was du auf jedenfall machen solltest: Denk erstmal an die Tiere & Pflanzen und nimm bitte zum Testen (und überhaupt als Sicherheit) einen geregelten Heizstab, an dem du die maximale Temperatur einstellst. Gruss Ulli
es wird sowieso zuerst alles getestet @jackbraun, ja ist die schaltung aus dem datenblatt, die kann ich doch aufbauen, die funktioniert doch wenn ich sie so aufbaue oder? und mein kollege hat mal ein programm für ein terrarium feuchtigkeit und temperatur gemacht, kann ich das programm verwenden oder lieber neu schreiben? #include <18F452.h> #include <string.h> #include <math.h> #fuses XT, NOWDT, NOBROWNOUT, NOLVP, DEBUG main(){ adc=input(PIN_A2); int soll=b'0000000000000000'; int min= b'0000000000111100'; if(adc>soll) output_high(PIN_A3); else if(adc<min) output_low(PIN_A3); }
>@jackbraun, ja ist die schaltung aus dem datenblatt, die kann ich doch >aufbauen, die funktioniert doch wenn ich sie so aufbaue oder? Das hab ich Dir schon drei Mal gesagt ;-) Also Schaltung aufbauen und testen. Wie der Name schon sagt (Simple T. Contr.), ist das bereits eine Regelschaltung, also brauchst Du vorerst keinen µ.
>Das hab ich Dir schon drei Mal gesagt ;-)
o sry, habs wohl irgendwie überlesen
also brauch ich da nicht mal nen µC? das ja praktisch^^
wenn ich das ganze aber mit einem µC machen müsste, ich soll ja nur das
Programm in C machen die Schaltung mach ich ohne µC, wie sollte das
Programm aussehen? so?:
#include <18F452.h>
#include <string.h>
#include <math.h>
#fuses XT, NOWDT, NOBROWNOUT, NOLVP, DEBUG
main(){
adc=input(PIN_A2);
int soll=b'0000000000000000';
int min= b'0000000000111100';
if(adc>soll)
output_high(PIN_A3);
else if(adc<min)
output_low(PIN_A3);
}
Stephan Maurer wrote: >>Das hab ich Dir schon drei Mal gesagt ;-) > > o sry, habs wohl irgendwie überlesen > > also brauch ich da nicht mal nen µC? das ja praktisch^^ > > wenn ich das ganze aber mit einem µC machen müsste, ich soll ja nur das > Programm in C machen die Schaltung mach ich ohne µC, wie sollte das > Programm aussehen? so?: > vergiss doch dieses ominöse Programm. Entscheide dich ob mit oder ohne µC. Wenn mit: Ganz ehrlich. Wenn dir dieser 5 Zeiler Rätsel aufgibt, dann solltest du das ganze ohne µC machen.
Es gibt auch noch den AD22100 von Analog Devices. TO92, 5VDC Betriebsspannung, Ausgang 0.25 bis 4.75 Volt. Du rechnest deine gewünschten Schwellwerte (also deine Temperaturen) in jeweils eine Spannung um, speist dann einen OP, welcher als Komparator geschaltet ist (oder noch besser, einen fertigen Komparator wie den LM393), und dimensionierst die Hysterese so, dass deine Heizung ein- und ausschaltet bei der gewünschten Temp. Klingt jetzt kompliziert, is aber sehr einfach, wenn du dir die Beschaltung des Komparators mal ansiehst (vielleicht kennst du dich ja damit schon aus). Den Ausgang des Komparators brauchst du dann nur noch mit einem Transistor (FET, Bipolar, was auch immer) zu verbinden, der dann ein Relais (oder meinetwegen einen Triac) schaltet, wodurch wiederum die Heizung aktiviert wird. Klar soweit? Es grüsst Tobias
so mir is grad aufgefallen, wenn ich die schaltung vom datenblatt aufbaue, wie regel ich dann die untere bzw die obere grenze der temperatur? http://www.ortodoxism.ro/datasheets/stmicroelectronics/2158.pdf
so hab nun das ganze aufgebaut und habs auch mal meinem lehrer gegeben, zum überprüfen, er meinte aber ich solle das ganze mal mit einem PIC machen kann mir da wer bei da schaltung helfen? PIC is ein 18F452, könnt ihr mir nun auch mit der schaltung mit PIC weiterhelfen?
Das sagte Christian Morgenstern zum Thema: Der Hecht Ein Hecht, vom heiligen Antón bekehrt, beschloß, samt Frau und Sohn, am vegetarischen Gedanken moralisch sich emporzuranken. Er aß seit jenem nur noch dies: Seegras, Seerose und Seegrieß. Doch Grieß, Gras, Rose floß, o Graus, entsetzlich wieder hinten aus. Der ganze Teich ward angesteckt. Fünfhundert Fische sind verreckt. Doch Sankt Antón, gerufen eilig, sprach nichts als: "Heilig! heilig! heilig!" Grüße aus dem Off Tropi der Ungewollte
Stephan Maurer wrote: > so hab nun das ganze aufgebaut und habs auch mal meinem lehrer gegeben, > zum überprüfen, er meinte aber ich solle das ganze mal mit einem PIC > machen Hat Dir Dein Lehrer auch gesagt, dass Du die Arbeit (Recherche, Datenblatt lesen, Schaltung entwickeln, und und und) keinesfalls selbst machen darfst, sondern dass Du sie (die Arbeit) von einem Forum machen lassen sollst??? Wenn Dir Dein Lehrer diese Aufgabe stellt, dann hast Du vermutlich auch die dazu erforderlichen Grundlagen gelehrt bekommen. > > kann mir da wer bei da schaltung helfen? PIC is ein 18F452, könnt ihr > mir nun auch mit der schaltung mit PIC weiterhelfen? Trittst Du die "Anerkennung" (der Schule bzw. Deines Lehrers) dann auch an die Helfer ab? Sorry dass ich so deutlich werde, aber ich mag es nicht, wenn sich jemand vor seiner Arbeit drückt und dann nur den Ruhm einsteckt. ...
laut lehrer ist es auch erlaubt in foren und allgemein im Internet zu suchen, die anerkennung, fällt also sowieso nicht mir alleine zu egal mein vorschlag, wenn ich die spannung von nem microchip pic board abnehme auf den eingang vom lm335, und danach halt nen lm311, geht das dann auch mit dem PIC-Board so wie ichs mir denke?
Hallo Stephan, wobei hast Du denn Deine Schmerzen? Keine Ahnung von C? Sagen Dir die 5 Zeilen Code, die Du gepostet hast gar nichts? => Dann fehlt wahrscheinlich auch jegliche andere Programmiersprache. Dann lerne C! Melde Dich wieder, wenn das "Hallo Welt" Programm funktioniert. Keine Ahnung von Elektornik? => Dann such Dir ein gutes Buch und lies! Keine Ahnung, was ein uC kann? => Dann lies Dich durch die Tutorials! Dann verschwende mal 3 Gedanken darüber, wie das, was Du über Controller gelernt hast wohl im C-Code aussehen wird. Dann entscheide Dich für eine Messtechnik und bau das auf. Wenn Du den einfachen Spannungsteiler mit Temperatur abhängigem Widerstand wählst, kannst Du zum ausprobieren einfach den "Sensor"Widerstand durch ein Poti ersetzen und damit das Wasserbad simulieren. Eh Du Code-Schnipsel postest, solltest Du Dir mal die Mühe machen und einen Ablaufplan für Dein Programm schreiben. Hilfe bekommst Du hier immer, aber keine gebratenen Tauben. Wo die Tauben sind, ist Dir ja nun geschrieben worden. Einsammeln, rupfen, ausnehmen und braten musst Du sie selbst.
mittlerweile weiß ich was der code bedeutet, für den rest, gut versuch ichs mal mit tutorials
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.