DS1821 mit PIC16F84 und LCD-Display DS1821 Dual Thermometer mit PIC16F84 und LCD-Display DS1821 Prommer mit PIC16F84 und LCD-Display DS1821 am COM-Port mit PIC12C509 oder PIC12F675 (NEU !) Anmerkung: Ich habe nicht vor weitere Thermometer zu bauen oder Anpassungen für andere zu programmieren. Ich hatte mir zwei Temperatursensoren DS1821 von Dallas besorgt um ein einfaches Innen-Außenthermometer selbst zu bauen. Ein LM75 war ungeeignet weil es den nur im SMD-Gehäuse gibt. Ich habe mal einen frei schwebend mit Kupferdraht an einer Lochrasterplatine befestigt. Was für ein Fummelkram. Außerdem zeigte ein Probeexemplar auf einer geprüften I2C Anlage die Temperatur ständig um drei Grad zu klein an. Der DS1821 hat ein überlanges T092 Gehäuse und ist damit viel einfacher zu benutzen. Außerdem hat er ein 1-Draht Interface. Das Protokoll ist zwar bescheuert, läßt sich aber programmieren. Ergebnis: Eine aalglatte problemlose Anzeige mit 1°C Auflösung.
Stimmte diesmal auch ungefähr mit dem Zimmerthermometer überein.
Application Note 105: “High Resolution Temperature Measurement with Dallas Direct-to-Digital Temperature Sensors” Was soll das denn ? Erstmal runterladen und durchlesen (naturally in english). Laut der Angabe in der Application Note liegt die Auflösung
der Dallas Sensoren unter 0.05°C. Der Fehler liegt zwischen
-35°C und +125 °C unter +/- 0.5°C. Zwischen 0°C und 85°C
ist der Fehler noch kleiner. Wozu noch die ganzen Thermometerschaltungen
mit Dioden oder Transistoren als Temperaturfühler mit nichtlinearer
Kennlinie und irgendwelchen Korrekturtabellen. PTC's, NTC's. Beim DS1821
ist nicht einmal ein Abgleich nötig !!
Mit dem Programm unten wird in der ersten Zeile der Anzeige die aktuelle Temperatur angezeigt. In der zweiten Zeile der Minimalwert (SW2 zu) oder der Maximalwert (SW2 offen). Mit SW1 können diese Werte für neue Messungen gelöscht werden. Mögliche Anwendungsgebiete:
Schaltplan und Board (ungeroutet) Eagle3.5
Ähnlich wie oben, aber mit zwei DS1821. In der ersten Zeile steht der Wert für den internen Fühler, in der zweiten der Wert für den externen Fühler. Schließt man SW1 werden Minimalwert und Maximalwert vom internen
Fühler angezeigt. Schließt man SW2 die Werte vom externen Fühler.
Schaltplan,Board Eagle3.5 und Brenndatei, Quellcode CC5x Mit diesem Gerät kann der DS1821 zum Thermostaten umprogrammiert werden. Als LCD-Anzeige eignen sich 1x16, 2x16 oder 2x8 Zeichen. Bedienung über fünf Tasten. Es sollten eigentlich nur vier Tasten werden. Der PIC ist aber randvoll (1022 von 1024 Befehlen :). Eigentlich sollte die Enter-Taste dazu dienen am Ende zum nächsten Programmiervorgang weiterzuschalten. Ging aber nicht: Kein Programmspeicher mehr !! Als letzte Rettung habe ich dann den Resettaster eingebaut. Wer immer nur einen DS1821 programmiert kann den Reset-Taster auch weglassen und zum Schluß einfach das Gerät abschalten. Schaltplan und Board (nicht ganz geroutet)
Eagle3.5
Der Programmiervorgang:
"DS1821?? Reset !" Der DS1821 wurde nicht erkannt ! Z.B. wenn keiner
da ist :)
Die Meldungen verschwinden nur durch Reset oder ein/ausschalten des
Gerätes. Drücken auf Enter ist zwecklos !
Diese Schaltung zeigt die Temperatur nicht auf einem Display an, sondern sendet sie als ASCII-Code (ca. einmal pro Sekunde) über die serielle Schnittstelle. Z.B. "+025.00"+CR(0x0D)+LF(0x0A). Sie arbeitet ohne externe Spannungsversorgung und wird aus der Schnittstelle über RTS und/oder DTR versorgt. Die meisten Terminalprogramme setzen eine von den beiden Leitungen. Eventuell kann der interne RC-Oscillator des PIC's benutzt werden. Wenn man dann C2,C3,Q1 wegläßt und den Rest in SMD aufbaut, sollte die Schaltung ohne Probleme als Temperaturdongle in ein Sub-D Steckergehäuse passen. Parameter für die serielle Schnittstelle: 9600Baud, 8Bit, No Parity, 1 Stopbit, kein Handshake. Schaltplan,Board Eagle3.5 und Quellcode
für 12C509 und 12F675 (NEU !)
Zum testen hab ich ein kleines Windows Programm geschrieben. Eine Anzeige mit LED-Siebensegment-Design. Die Anzeige ist doppelt so groß wie das Bild oben. Hab da wohl ein wenig übertrieben, sieht aber sehr schick aus ;) Es gibt manchmal Probleme mit der Anzeige wenn man den COM-Port wechselt. Dann einfach das Programm neu starten. Windows Programm für den Temperaturdongle
|