Affichage temperature DS18B20

spheris

Senior Member
Bonsoir,
J'ai couplé sur l'entree C.5 de mon 20M2 un ds18B20 comme le stipule la documentation.
Avec le code

Code:
readtemp 5,b1
, mon afficheur m'affiche 21°c et cela fonctionne.
Par contre je souhaite un peu plus de précision (1 chiffre après la virgule).
Avec ce code ci :

Code:
readtemp12 5,w1
je lis 351 sur mon afficheur.
Comment puis-je convertir cela en 1 valeur avec 1 chiffre après la virgule?
Merci pour votre réponse.
 

PieM

Senior Member
je lis 351 sur mon afficheur.
Comment puis-je convertir cela en 1 valeur avec 1 chiffre après la virgule?
Merci pour votre réponse.

Bonsoir,

la résolution de Readtemp12 est de 12 bits donc de 0.0625°C . Donc 351 correspond à 21,9375 °C !
Pour l'affichage merci de voir les posts précédents; la méthode est toujours la même.

Et ne confondez pas résolution et précision ... votre température, vous ne la connaitrez qu'à +/- 0.5°C près entre -10 et 85°C !
 

westaust55

Moderator
pour quatre décimales:
Code:
readtemp12 5,w1

b5 = w1/16
w1 = w1 * 4096 ** 10000
SERTXD (#b5,".")
IF w1 < 1000 THEN ; attrapez le principal zéro pour xx.[COLOR="#FF0000"]0[/COLOR]625 degree
SERTXD("0")
ENDIF
SERTXD(#w1,cr,lf)
ou pour une décimale:
Code:
readtemp12 5,w1
b5 = w1/16
w1 = w1 * 4096 ** 10000
b6 = w1 / 1000
SERTXD (#b5,".",#b6,cr,lf)
 
Last edited:
Top