Forum: Mikrocontroller und Digitale Elektronik DS18S20 vs. DS18B20


von kolli (Gast)


Lesenswert?

Hallo.
Ich hab mir eine Temperaturanzeige mit einem Atmega8 und DS18s20 
gebastelt.
Soweit alles gut.
Jetzt hab ich neuerdings DS18B20 im Einsatz und mit denen stimmt die 
Routine zum Auslesen nicht mehr.

DS18S20
1wreset
1wwrite &H55
1wwrite Id1(1) , 8
1wwrite &H44
Waitms 800
1wreset
1wwrite &H55
1wwrite Id1(1) , 8
1wwrite &HBE
Ar1(2) = 1wread()
1wreset

T = Ar1(2) / 2

das geht mit den DS18B20 nicht so. Ich hab schon einiges beim suchen im 
Inet gefunden aber wirklich hilfreich war das alles nicht.
Was geholfen hat war die Tmp / 16 zu teilen, aber jetzt bekomm ich 
teilweise 21,812° angezeigt.
Gibts irgendwas einfaches um die B Sensoren auszulesen, 0,5Grad reichen 
mir auch völlig zu !!
Ich progge in Bascom.

DANKE für eure Mühe

von Hans J. (hjm)


Lesenswert?

Hallo koll,

der 18B20 hat eine höhere Auflösung (insgesamt 3 Bit).

Um den S-typen nun mit der gleichen Routine auszuwerten muß Du nach dem 
Einlesen, dessen Wert um drei Stellen nach links schieben und kannst 
dann wieder die Routine vom B-typen für die Umrechung nutzen.

z.B. 85°C
B-Typ 0101 0101 0000
S-Typ 0000 1010 1010

oder 0,5°
B-Typ 0000 0000 1000
S-Typ 0000 0000 0001

Grüße
Hans-Josef

von Tom (Gast)


Lesenswert?

> das geht mit den DS18B20 nicht so. Ich hab schon einiges beim suchen im
> Inet gefunden aber wirklich hilfreich war das alles nicht.

Nein? Auch nicht das Datenblatt? Da steht alles drin. Oder verstehst Du 
es nur nicht?

Oder kannst Du G**gle nicht bedienen? Die suchworte ds18b20 bascom 
finden eine ganze Menge, auch was auf Deutsch:
http://www.roboternetz.de/wissen/index.php/Bascom_und_1-Wire

Was genau ist Dir nicht klar?

Tom

von kolli (Gast)


Lesenswert?

Alle Links die zu Suchbegriffen "Bascom" und "DS18B20" in Google 
erscheinen sind bei mir "lila", was soviel heißen soll das ich die alle 
durchgeklickt habe.
Was mir nicht Klar ist?
Wie ich die Tmp des B-Typen ausgeben soll.

Das geht nur beim S-Typ aber nicht beim B-Typ.
Ar1(2) = 1wread()
T = Ar1(2) / 2

ich will einfach wissen was mus beim B-Typ hier her
T = ???????????????

@Hans-Josef
Leider hab ich garnix verstanden, sorry bin noch Anfänger.

von Peter D. (peda)


Lesenswert?

kolli wrote:

> Was geholfen hat war die Tmp / 16 zu teilen, aber jetzt bekomm ich
> teilweise 21,812° angezeigt.

Ja, das ist korrekt.
Anders gehts nicht.


> Gibts irgendwas einfaches um die B Sensoren auszulesen, 0,5Grad reichen
> mir auch völlig zu !!

Du kannst die untersten 3 Bits ausmaskieren.


Peter

von kolli (Gast)


Lesenswert?

----> "Du kannst die untersten 3 Bits ausmaskieren."

und bitte wie? So klingt das nach dem was ich suche.
Danke

von kolli (Gast)


Lesenswert?

Ich denke ich bin 1 Schritt weiter.
Jetzt zeigt er 220 oder 225 oder 231 das soll wohl 22,0 oder 22,5 oder 
32,1 heißen. Wo bekomm ich jetzt das Komma her?

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
Noch kein Account? Hier anmelden.