| Autor |
|
|
|
BID = 579812
baubau Gelegenheitsposter
 
Beiträge: 63 Wohnort: Ulm
|
|
Hallo
Ich hoffe ihr könnet mir bei meinem Porblem helfen.
Ich möchte ein Thermometer bauen mit einem Atmega8.
Ich bin noch ein rechter Anfänger was Mikrocontroller betrifft, ich habe zu Weihnachten das Mikorcontroller Lernpaket von Franzis bekommen und habe dort schon einige Sachen mit dem Attiny13 gemacht der dort dabei war.
Nun möchte ich mit ein Thermometer bauen mit einm Atmega8 und möchte es auf einem Lcd Display ausgeben.
Ich möchte 2 Messpunkte haben einen drin und einen drausen. Themperaturbereich von -30° - +50° reicht mir schon.
Ich benutze Basecom zum programieren und habe dort auch schon ein paar Testprogramme für den Attiny13 gemacht (Ein/Aus mit einem LDR usw...).
Als Temperatur Sensor weis ich noch nicht was ich nehme da müsst ihr mir helfen was da der beste ist.
Etwas Grundwissen über die ganze Geschichte is schon da keine sorge
Mein eigentliches Problem liegt darin das lcd anzusteuern und die Themperatur einzulesen da weis ich nich wie ich das anstellen soll?
LCD 16*2 Zeichen
Danke schon mal im foraus |
|
BID = 579832
bastler16 Schreibmaschine
     Beiträge: 2140 Wohnort: Frankreich
|
|
Moin
Zitat :
| | Etwas Grundwissen über die ganze Geschichte is schon da keine sorge |
Dann stell mal konkrete(re) Fragen, du willst ja selber basteln.
Zu den LCDs: http://www.roboternetz.de/wissen/index.php/Bascom_und_LCD%27s
Zum Temperatursensor kann ich nix sagen. Entweder einen analogen Sensor und den ADC nutzen, oder gleich was Digitales.
Frag auch mal die Suche vom Forum und die von Roboternetz. |
|
BID = 579833
clembra Inventar
     
Beiträge: 5402 Wohnort: Weeze / Niederrhein
|
Hallo,
schau dir mal den Artikel über Temperatursensoren auf Mikrocontroller an.
Suchst du ehr eine Lösung mit LM75 oder die mit NTC?
Für die LCD-Ansteuerung gibt es meines Wissens fertige Bibliotheken für Bascom. (Pre-Edit: Bastler war schneller)
_________________
Reboot oder be root, das ist hier die Frage.
|
BID = 580077
baubau Gelegenheitsposter
 
Beiträge: 63 Wohnort: Ulm
|
hey
Danke für eure Antworten ich werde mich wohl auf einen ds1621 spezialisieren.
oder is es meit einem NTC einfacher soviel ich jetzt weis braucht man da einen Spannungsteiler? weil sons nehme ich den AD-Wandler und lese des dann so ein.
Ich weis nur nich genau wie ich dann den Wert/Werte auf dem Display ausgeben die muss ich doch noch irgendwie umändern oder brauch ich da ne Liste von der aus der controller die Daten dann her nimmt??
LCD ansteuerunf is soweit klar bleibt nur noch die Frage ob NTC oder ds1621.
Sonst ist mir jetzt alles weitere klar AD-Wandler und I/O pins ist alles klar soweit
LG
baubau
|
BID = 580088
clembra Inventar
     
Beiträge: 5402 Wohnort: Weeze / Niederrhein
|
Auch für I2C gibt es Bibliotheken.
Ob man mit einem Spannungsteiler und AD-Wandler ein genaueres Ergebnis bekommt kann ich nicht sagen, aber den musst du noch kalibrieren. Du brauchst also ein entsprechendes Thermometer als Referenz. Die I2C-Teile liefern dir die Temperatur fast anzeigefertig (sofern sie einen Anders kennen).
_________________
Reboot oder be root, das ist hier die Frage.
|
BID = 580111
baubau Gelegenheitsposter
 
Beiträge: 63 Wohnort: Ulm
|
Hey
ok dann mach ich es wohl mit einem DS18B20.
Aber was mir immer noch ein rätsel ist wie ich die byte die der DS sendet in eine Temperatur umwandeln kann die ich dann anzeigen kann?
Die 2 Links von euch waren super jetzt weis ich auch in etwa wie das mit dem Lcd geht
Lg
baubau
|
BID = 580148
clembra Inventar
     
Beiträge: 5402 Wohnort: Weeze / Niederrhein
|
Stopp, der 18B20 hat ein 1-wire Interface, das hat der µC nicht on board.
Der DS1621 hingegen ist per TWI/I2C steuerbar und gibt die Temperatur im Format von Anders C aus. Die muss der Controller noch von Binär in dezimale Zeichen umrechnen und fertig. Die negativen Temperaturen könnten etwas kniffelig werden.
_________________
Reboot oder be root, das ist hier die Frage.
|
BID = 580188
Racingsascha Schreibmaschine
    
Beiträge: 2247 Wohnort: Gundelsheim
|
Diese Application Note von Maxim ist zwar für den DS1631, die Umrechnung des übertragenen Werts im Zweierkomplement in einen dezimalen Wert kann man aber gut anpassen.
_________________
Fnord ist die Quelle aller Nullbits in deinem Computer.
Fnord ist die Angst, die Erleichterung, und ist die Angst.
Fnord schläft nie.
|
BID = 580281
baubau Gelegenheitsposter
 
Beiträge: 63 Wohnort: Ulm
|
Hey
ok das heißt dann das ich den DS18B20 nicht nehmen kann?
Wie kann ich die daten die ich empafange dann auch auswerten??
Oder sollte ich eine ganz andere Methode nehmen um die Temperatur zu messen??
Kann vielleicht jemand ein kurzes beispiel Programm schreiben in Bascom damitich weiß wie ich das genau machen muss.
Der Rest ist mir soweit klar LCD Ansteuerung und so.
Danke für eure bisherige Hilfe
LG
baubau
|
BID = 580360
clembra Inventar
     
Beiträge: 5402 Wohnort: Weeze / Niederrhein
|
Zitat :
baubau hat am 14 Jan 2009 14:37 geschrieben :
|
ok das heißt dann das ich den DS18B20 nicht nehmen kann?
|
Vom technischen her wäre es wohl kein Problem, aber der Aufwand ist entsprechend höher, da der Controller die Kommunikation komplett softwaregesteuert machen muss. I2C, genannt TWI, hat der ATmega8 hardwareseitig drin. Da musst du nur eine entsprechende Sendefunktion aufrufen bzw. Empfangsinterrupts einbinden und läuft.
Zitat :
baubau hat am 14 Jan 2009 14:37 geschrieben :
|
Wie kann ich die daten die ich empafange dann auch auswerten??
|
Wie du die Zahlen vom Temp. Sensor bekommst sollte das Datenblatt verraten. Die DS1621 und LM75 arbeiten mit I2C, was von P*** entwickelt wurde und bei Atmel aufgrund von Namensrechten TWI heißt.
Wenn du die Zahlen an die LCD-Funktion übergibst sollte diese glaube ich automatisch in die passenden Zeichen umgewandelt werden. Im negativen und Nachkommabereich könnte es noch etwas kritisch werden, aber bei Bascom kann ich nicht helfen, ich arbeite tiefer
_________________
Reboot oder be root, das ist hier die Frage.
|
BID = 580366
perl Ehrenmitglied
       
Beiträge: 11110,1 Wohnort: Rheinbach
|
Zitat :
| | Als Temperatur Sensor weis ich noch nicht |
Anstelle das Thermometer IC zu verwenden, könntest du auch den Sperrstrom einer Schottkydiode messen. Der folgt sehr genau, viel besser als ein NTC, einer Exponentialfunktion der absoluten Temperatur.
Der Nachteil ist, dass du solch ein Thermometer experimentell kalibrieren müsstest; der Vorteil, dass du damit auch noch in Temperaturbereichen messen kannst, die dem IC nicht mehr zugänglich sind.
_________________
Haftungsausschluß:
Bei obigem Beitrag handelt es sich um meine private Meinung.
Rechtsansprüche dürfen aus deren Anwendung nicht abgeleitet werden.
Besonders VDE0100; VDE0550/0551; VDE0700; VDE0711; VDE0860 beachten !
|
BID = 580372
baubau Gelegenheitsposter
 
Beiträge: 63 Wohnort: Ulm
|
Hey
@perl ja ich denke so genau brauch ich es dan doch auch wieder nicht und auserdem bin ich noch nich so erfahren das ich des alles so kalibrieren könnte.
Also ich nehme dann wohl den DS1621 als Sensor und dann mal schaun wies wird, wenn ich porbleme hab dann sag ich nochmal bescheid.
Ach ja wie meinst du das clembra mit den negativen Zahlen ??
LG
baubau
[ Diese Nachricht wurde geändert von: baubau am 14 Jan 2009 20:38 ]
|
BID = 580373
selfman Schreibmaschine
    
Beiträge: 1681 Wohnort: Seekirchen a. W.
|
Auch die Durchlaßspannung eines pn-Übergangs ist dazu geeignet.
Dieser verringert sich fast konstant mit 2mV/K.
Die von vornherein gegebene Exemplarstreuung muß natürlich auch kompensiert werden.
Schöne Grüße Selfman
_________________
Traue keinem Ding, das du nicht selber vermurkst hast.
|
BID = 580380
clembra Inventar
     
Beiträge: 5402 Wohnort: Weeze / Niederrhein
|
Die Temperatur gibt das DS1621 laut Datenblatt in Grad Celsius zurück, und zwar in 9bit Auflösung. Das erste Byte gibt die ganzen Grad an und das zweite die ,0 oder ,5.
Wenn die Temperatur bei 10,5°C ist also 00001010 10000000
Bei 0°C entsprechend 00000000 00000000
Bei -1°C springt die Zahl dann binärgetreu um auf 11111111 00000000, bei -2°C 11111110 00000000 und bei -3°C 11111101 00000000
Das muss man entsprechend abfangen, sodass bei -1°C nicht plötzlich 255°C auf dem LCD steht. Du hast ja einen Temp-Bereich bis runter auf -30°C gefordert.
_________________
Reboot oder be root, das ist hier die Frage.
|
BID = 580530
baubau Gelegenheitsposter
 
Beiträge: 63 Wohnort: Ulm
|
Hey
ersmal danke für eure Vorschläge
clembra ja das mit den Werten werd ich mir noch mal duch den Kopf gehen lassen und dann mal schaun was bei rauskommt.
Ich hab in einem Buch ein Programm gefunden allerdings ohne LCD ausgabe mal sehn ob ich das eventuel um schreiben kann und dann da ein LCD dran machen kann!?!?!
Oder wie soll ich ,wenn ich das Programm aus dem Buch nicht nehme, die Tempetatur dann anzeigen lassen? Macht der Atmega das von selbst,die Bytes anzeigen ohne das ich die ändern muss??
LG
baubau
|