www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Thermometer mit 2313 und DS18.


Autor: Thermometerverantwortlicher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mir mal das 
http://chaokhun.kmitl.ac.th/~kswichit/avrthermo/av... 
Thermometer auf einem Steckbrett nachgebaut.
Leider hat es den Nachteil das die Anzeige während des auslesens des 
Ds18... dunkelgetastet wird, was als Zimmerthermometer sehr nervig ist. 
Meine C Kenntnisse sind ein wenig bescheiden. Ließe sich der Code 
irgendwie modifizieren so das eine kontinuirliche Anzeige möglich wäre? 
Oder ist der 2313 wirklich so extrem mit der Wandlung beschäftigt, das 
er fürs multiplexen keine Zeit mehr hat.

Viele Grüße

Autor: Alex22 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Zunächst kannst du den Tiny2313 auch mit 16MHz anstatt der dort 
verwendeten 4MHz betreiben, dann ist die "Dunkelzeit" schon mal nur noch 
1/4 so lang.

Was genau meinst du eigentlich mit "dunkelgetastet" ?

Du könntest den Code noch so umschreiben, dass die Temperatur nur 
beispielsweise 1x pro Sekunde oder 1x jede 2 Sekunden ausgelesen wird 
o.ä....

eine Abdunklung des Displays sollte man bei guter Applikation nicht 
wahrnehmen können...

Und wenn alle Stricke reißen gibt es für diese Anwendung auch noch "SPI 
/ I2C 7-Segment Display Driver ICs" wie den SAA1064...

Schöne Grüße,
Alex

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vermutlich ist das Programm recht simpel gestrickt und macht entweder 
Messung oder Anzeige. Mit der Leistungsfähigkeit des Controllers hat das 
nichts zu tun. Eher schon mit der Leistungsfähigkeit des Programmierers.

Das geht locker auch anders. Beispielsweise indem man die 0,7s Wartezeit 
zwischen Start der Messung und Auslesen vom Ergebnis nicht nur mit 
Däumchen drehen verbringt. Denn es dürfte genau diese Messzeit des 
DS1820 sein, die unangenehm auffällt.

Und nein, ein schnellerer Takt des Controllers macht den Sensor nicht 
schneller, der Controller wartet nur intensiver auf ihn.

Autor: Thermometerverantwortlicher (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Was genau meinst du eigentlich mit "dunkelgetastet" ?

Die LED Anzeigen sind für ca. eine halbe Sekunde dunkel während der MC 
die DS18... mist und das tut er alle 5 sek.

Kann mir auch nicht vorstellen das es so kompliziert ist einen DS18S20 
auszulesen, mein Pollin AVR-NET-IO Board hat davon 8 Stück drann hängen 
und fühlt sich nicht überlastet an.

> Und wenn alle Stricke reißen gibt es für diese Anwendung auch noch "SPI
> / I2C 7-Segment Display Driver ICs" wie den SAA1064...

an den SAA habe ich auch schon gedacht, aber ich wollte die Schalung in 
einer UP-Dose verschwinden lassen und dann wird es mit dem SAA arg eng.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist eigentlich auch nicht schwierig.

Der verlinkten Seite zufolge wird eine DS1820 Funktion der Codevision 
Lib verwendet. Die wohl die komplette Messung durchführt. Im Interrupt! 
Und damit das Hauptprogramm für die entsprechende Zeit lahmlegt.

Nun kenne ich Codevision nicht. Ob es in deren Lib die Möglichkeit gibt, 
den Start der Messung und die Auslesung zu trennen. Dann liesse sich das 
leicht umbauen und die Pause verschwindet.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kurzer Blick in die CV Doku sagt: Mit der DS1820-Library kommt man nur 
halb weiter.

Alle >= 5 Sekunden im Interrupt das Kommando zu Start der Messung 
absetzen. Das geht mit der DS1820-Lib nicht, ist aber mit der 1-Wire-Lib 
einfach zu machen, wenn man kapiert hat wie 1-Wire arbeitet.

Im passenden Interrupt eine Sekunde später das Ergebnis auslesen. Das 
geht mit der DS1820-Lib (ds1820_read_spd), man muss das Ergebnis aber 
selber aus den Bytes fischen.

Es spricht nicht für die CV Lib, dass man für Start und Messung keine 
getrennten Funktionen mit Temperatur als sauberem Resultat liefert.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.