Bonjour Bruno,
Ci-dessous 2 liens vers mon petit programme C pour manipuler les sondes.
Si tu fais du Delphi, le C ne doit pas poser de problèmes.
Il utilise les drivers TMEX aussi.
Edition de liens statique donc il doit tourner sur tout PC avec les drivers installés.
Le source :
http://solarihome.perso.sfr.fr/oneWire/oneWire2.c
Usage et copie libre, je ne projette pas de gagner le prix Turing avec.
L'exécutable (compilé par Visual C++ Express : gratuit), pas de virus a priori : c'est moi qu'il l'ait compilé :
http://solarihome.perso.sfr.fr/oneWire/oneWire2.exe
Ce sont des emplacements temporaires, je rangerai mieux plus tard.
Le programme permet :
1) D'afficher les ROM de tous devices présents sur le bus (option "search")
2) De configurer toutes les sondes DS18B20 à la résolution demandée (option "config" [<pr>])
3) D'afficher le ROM et la température de toutes les sondes DS18B20 présentes sur le bus
4) D'afficher le scratchpad de toutes les sondes DS18B20 présentes sur le bus (permet de vérifier ce qui se trouve dans l'EPROM)
C'est l'option 3 qui t'intéresse (fonction C
cmdeTemp) :
- on reset le bus
- on envoie la commande "skip ROM" (tous les devices écoutent)
- on envoie la commande "convert T"
- on attend 750 ms
- puis on lit la température de toutes les sondes à fond
(la fonction C
tousDS18B20 applique une fonction à tous les DS18B20 trouvés)
=> Toutes les sondes convertissent et sont lues en moins d'une seconde.
Le programme C est utilisé comme sous-process d'un script Python. Les résultats sont récupérés sur
stdout.
Note : on peut facilement dériver un programme qui lit périodiquement des sondes choisies et écrits leur température dans un fichier.
Cordialement,
Thierry