Comment lire t° sur plusieurs DS18B20 ?

Patrice68

New Member
Bonjour à tous,
Ma question est simple : comment peux t-on lire la température de plusieurs capteurs DS18B20 mis sur une ligne 1-wire ? En parcourant le net, il semblerait que se soit possible mais rien n'est détaillé sur les fonctions à utiliser (ici par exemple http://www.eetimes.com/author.asp?section_id=36&doc_id=1320461) ...

Et béh voilà, la question est lancée.
D'avance merci à chacun des contributeur de vos réponses (éclairées, parce que les autres ... ça ne sert pas à grand chose)
 

PieM

Senior Member
Bonjour à tous,
Ma question est simple : comment peux t-on lire la température de plusieurs capteurs DS18B20 mis sur une ligne 1-wire ? En parcourant le net, il semblerait que se soit possible mais rien n'est détaillé sur les fonctions à utiliser (ici par exemple http://www.eetimes.com/author.asp?section_id=36&doc_id=1320461) ...
Bonjour et bienvenue,
C'est effectivement un peu particulier car il faut intégrer l'adresse du DS lus par un READOWSN, dans la commande OWOUT.
Voir des exemples ici http://www.picaxeforum.co.uk/showthread.php?15464-DS18B20-Code-Examples&p=227455&viewfull=1#post227455
 

Patrice68

New Member
Super à tous de me donner un coup de main avec les remarques suivantes :

PieM
Grand merci d'avoir compris que je débutais complètement (depuis 2 jours en fait) dans le monde des Picaxes. Et comme tout débutant ... on patauge sérieusement.
Génial ton lien ... là j'ai de quoi apprendre. Merci d'être resté pratique.

MGU, Oui, j'avais bien compris qu'il fallait aller chercher les adresses, ça n'a pas l'air trop complexe. Mais si j'ai aussi bien compris aussi, il semble que l'on ne puisse aller chercher qu'une adresse à la fois (un seul "appareil" 1-wire connecté à la fois. Merci d'être resté pratique.
J'étais déjà tombé sur le lien que j'avais étudié avant de poser ma question
Mais j'avais loupé que la commande OWin OWout n’était que pour la famille X2. Merci de la remise sur rail.

Bon, le choix du Picaxe semble scellé grâce à vos remarques : famille X2
J'ai lu de la doc et notamment celle de Peter H. Anderson (que certains remercient chaleureusement, donc ce doit être une pointure) qui laisse penser que les divers DS18B20 ne peuvent pas se trouver sur le même fils >> dans le monde des picaxes (http://www.phanderson.com/stamp/onewire.html). Ce qui serait embêtant quand même. Mais l'exemple dans le lien de PieM laisse penser que non ... il me manque un exemple pratique (circuit, schéma ...). Si vous avez ça, ça m'arrangerait fortement.


PapyJP, on croirai un prof d'université ! 20/20 dans la théorie, reste la pratique ... J'aurais compris la remarque si ma question avait été du genre "c'est quoi un one-wire ?" ce qui n'est pas le cas.
Mon status n'est pas membre sénior mais ... new member et plus que ça, néophyte complet dans les PICAXES.
Quand on est dans un forum et que l'on choisi de répondre à une question posée, c'est qu'on a la connaissance et que l'on désire la partager. Dans 1 an, quand j'en saurais autant que toi sur les picaxes, tu ne me verra jamais traiter un débutant par un mépris.
Mais merci pour le lien. A priori j'ai droit à la théorie des 1-wire (que je connais déjà, ma question n’était pas là)
 

PieM

Senior Member
il semble que l'on ne puisse aller chercher qu'une adresse à la fois
Oui; en fait il faut deux programmes:
un premier ne sert qu'à lire l'adresse d'un DS, seul sur son fil, avec un READOWSN
Une fois que l'on connait toutes les adresses, on utilise le second programme avec les OWOUT qui permettent d'adresser les différent DS situés alors sur le même fil.

Concernant la doc de Peter Anderson (qui est effectivement une pointure!) attention que son topo concerne des stamps et des picaxes interfacés au 1-wire via un PIC programmé, qu'il appelle ONEWIRE PIC, qui offre je crois 14 lignes 1-wire adressables par une simple liaison série.

Coté schéma, rien de compliqué puisque tous les capteurs sont en // et connectés sur la même ligne data sur laquelle il y a une R de pullup de 4.7k environ.
 

Patrice68

New Member
Merci PieM,
Je suis en plein débroussaillage de code via le lien que tu m'as donné hier.
Pas simple à comprendre quand même, je suis habitué aux langages objet ... là je dois faire appel à de (très) vieux souvenirs pour reconstituer une logique.
La commande OWIN par exemple, il est dis de regarder dans la documentation spécifique "Tutorial bus 1-wire" ... que je n'ai pas trouvé.
Si quelqu'un sait où aller la chercher ... ça m'arrangerai
 

PapyJP

Senior Member
PapyJP, on croirai un prof d'université !
Je ne suis qu' ingénieur electronicien, excusez du peu.
tu ne me verra jamais traiter un débutant par un mépris.
Loin de moi le mépris, vous m' avez mal jugé ( procès d'intention ) mais je préferre ceux qui s' élèvent en cherchant par eux même.
Pour votre problème, en tapant par exemple comme mot clé dans Google : " 1 wire bus & OWIN " .
Vous verrez, c' est magique ...
 
Last edited:

PieM

Senior Member
Merci PieM,
Je suis en plein débroussaillage de code via le lien que tu m'as donné hier.
Pas simple à comprendre quand même, je suis habitué aux langages objet ... là je dois faire appel à de (très) vieux souvenirs pour reconstituer une logique.
La commande OWIN par exemple, il est dis de regarder dans la documentation spécifique "Tutorial bus 1-wire" ... que je n'ai pas trouvé.
Si quelqu'un sait où aller la chercher ... ça m'arrangerai
Pas tuto existant chez Rev Ed à ma connaissance.
Pour ce qui concerne OWIN voir la doc de Parallax pour le Stamp, qui est très bien faite:
http://www.parallax.com/go/PBASICHelp/Content/LanguageTopics/Commands/OWIN.htm

(ne pas tenir compte de la table formatage non compatible picaxe)

En pratique, comme on utilise une commande OWOUT avant, il n'est pas nécessaire de prévoir de bit de reset dans le mode. Et comme on veut lire des bytes et non des bits, le bit correspondant reste aussi à 0.
enfin entre low speed et high speed cela dépend du µC et de l'esclave. Il semple que pour le DS18B20 ce soit toujours en low speed.
Donc mode = %0000
 
Top