DS18S20 Temperatur-Sensor

#20519
Lesenswert?

@Matthias,

der Hauptunterschied ist, daß der LM75 nur im blöden SO-8 Gehäuse, d.h. 
als Sensor äußerst ungünstig zu montieren ist.

Der DS1820 ist dagegen im Transistor TO-92 Gehäuse viel besser an den 
Meßort zu bringen.

Außerdem können die DS18B20 viel kleiner auflösen (0,0625°) und beliebig 
viele Sensoren können parallel geschaltet werden, da jeder eine weltweit 
einmalige Adresse hat.

Ich hab hier was in C:

http://www.specs.de/users/danni/appl/soft/c51/thclock/1wire.c51

Und das Assemblerlisting ist hier:

http://www.specs.de/users/danni/appl/soft/c51/thclock/1wire.lst


Von PT100 und Konsorten ist abzuraten.
Es sei den Du schlägst Dich gern mit Problemen wie 
Leitungswiderstandskompensation, Kennlinienentzerrung, Brummen, 
Störabstand, AD-Wandlung rum, aber da muß man wohl schon Masochist sein.

Einzige Außnahme sind Hochtemperaturanwendungen.



Peter
Gast #20520
Lesenswert?

Hat schon mal jemand ne Routine für den searchROM-Befehl vom DS1820 in 
Assembler geschrieben? Ich hab mal versucht damit anzufangen, mir ist 
abner nach relativ kurzer Zeit klar geworden, dass mein KnowHow dafür 
noch nicht ausreicht. Ist das wirklich so kompliziert oder hat das schon 
mal jemand gemacht?
Gast #20523
Lesenswert?

Hi Peter,

das Diagramm und die Klartextbeschreibung hab ich wohl schon angeschaut.
Welchen uC verwendest du? Dein AssemblerCode ist glaub ich nicht ganz 
kompatibel mit dem vom Atmel AVR, zumindest kenn ich da einige Befehle 
nicht (z.B. acall, jnc, jz,...).

mfg marco
Gast #20527
Lesenswert?

na klar, ist doch kein problem. hier ist mein selbstgebastelter 
quellcode. ist in assembler und ich hoffe, dass die kommentare 
verständlich sind, was abläuft. ist für eine taktfrequenz von 8MHZ 
ausgelegt, für eine andere frequenz müssen die warte-schleifen 
entsprechend abgeändert werden. die einzelnen werte, die ausgelesen 
werden, stehen dann in den einzelnen speicherstellen (dürfte aber ohne 
probleme aus der datei ersichtlich werden). was man dann mit den werten 
anfängt bleibt jedem selbst überlassen (zb ausgabe auf ein lcd oder über 
die spi-schnittstelle...). falls jemand noch fragen dazu hat, dann 
schickt mir doch einfach eine email. ich versuch dann mit meinem wissen 
diese zu beantworten.
viel spaß noch, gruß felix

ps ich möchte nochmal auf meinen anderen beitrag aufmerksam machen, da 
ich da nicht weiterkomme
http://www.mikrocontroller.net/forum/read-1-18184.html
Angehängte Dateien:
Gast #20528
Lesenswert?

Dear sir,

Good afternoon.


Please quote :

P89C51RD2BN, PHIL 02+, 3000 PCS.
DS18S20 ( TO-92), DALLAS 01+, 1000 PCS
UPD78F9116ABMC-5A4         NEC 02+          500 or more pcs.

New original packing.

Thank you.


Best regards,
Ms. Ling Tsang
LUCKY TOP TECHNOLOGIES LTD
TEL:852-26872839
FAX:852-26871179
E-MAIL: ling@luckytop.com.hk
Web site: http://www.luckytop.com.hk



------------------------------------------------------------------------ 
--------
Gast #20529
Lesenswert?

Hallo,

mein Ziel ist es, ein Temperatursensor (DS18S20) mit einem ATMEGA8515
anzusteuern, und auszulesen. Dafür habe ich den Code von Felix
genommen, und Ihn für den Prozessor mit 4MHz angepasst. Der Code ist
logisch und ist auch einfach zu verstehen. Da ich aber neu in Sachen
AVR Programmierung bin, und ich mich immer noch im Anfangsstadium
befinde, habe ich noch einige Fragen:

1. Theoretisch und Praktisch müsste der Temperaturwert im Register
Temperatur_LSB stehen, oder?

2. Wie kann ich die Adresse auslesen? Kann ich das mit Read, und dann
irgendwo als *.Hex File abspeichern? Müsste der Wert dann dort stehen?

Wenn Nein,

3. Wie kann ich dann die Echtzeittemperatur erfahren?

Ziel ist es, ein Temperaturwert über irgendeine Adresse binär
auszulesen, ohne den Wert an ein LCD, oder USART auszugeben. Das kommt
später.
Danke für die Antworten.

MFG

Onur

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