Main

Référence : Langage Arduino : [ Mini | Standard | Etendue | Maxi ] Librairies : [ Vue d'ensemble | Synthèse ] Infos : [ Comparaison | Changements ]
LibrairieOneWire

Librairie One Wire pour capteur température type DS18B20


1.  Description

La librairie "One Wire" (1-wire pour 1 fil) est une librairie dédiée pour les capteurs "One Wire" tel que le capteur de température DS18B20. La technologie "One Wire" est un bus de communication série permettant l'adressage et l'utilisation de plusieurs capteurs à communication série sur une seule et même broche numérique. La technologie One Wire est une technologie comparable à la technologie I2C (en mieux ?).

On peut utiliser ces capteurs avec seulement 2 fils grâce à un ingénieux système d'alimentation par la broche de données (un condensateur interne se charge et assure l'alimentation du CI lorsque la ligne est à 0V...) :

  • GND et Vdd au 0V
  • DQ vers une broche numérique du circuit numérique de commande, avec une résistance de rappel au +

2.  Télécharger la librairie "One Wire"


Source : http://www.pjrc.com/teensy/td_libs_OneWire.html

3.  Liste des fonctions de la librairie One Wire

3.1  Fonctions d'initialisation

3.2  Fonctions de communication

3.3  Fonction de contrôle des données

3.4  Fonction de contrôle de de l'alimentation

4.  Présentation des fonctions de la librairie

4.1  Fonctions d'initialisation

OneWire myWire(pin)

Crée un objet OneWire, utilisant une broche précise. Même si vous pouvez connecter plusieurs composants "One Wire" sur la même broche, si vous en utilisez un grand nombre, faire des petits groupes sur chaque broche peut aider à isoler les problèmes de connexion. Vous pouvez créer plusieurs objets OneWire, un pour chaque broche.

myWire.search(addrArray)

Recherche le composant "One Wire" suivant. addrArray est un tableau de 8 octets. Si un composant est trouvé, le tableau addrArray est rempli avec l'adresse du composant trouvé et la valeur VRAI est renvoyée. Si aucun nouveau composant est détecté, FAUX est renvoyé. Le "rang" du composant détecté est mémorisé entre 2 appels de la fonction ce qui assure la détection du composant suivant.

myWire.reset_search()

Débute une nouvelle recherche. L'utilisation suivante de la fonction search commencera au premier composant trouvé.

myWire.skip()

Saute la sélection du composant. Ceci fonctionne uniquement si vous utilisez un seul composant : vous pouvez éviter de le rechercher et vous pouvez l'utiliser immédiatement.

4.2  Fonctions de communication

myWire.reset()

Initialise le bus 1-wire. Habituellement, ceci est nécessaire avant de communiquer avec un composant présent sur le bus.

myWire.select(addrArray)

Sélectionne un composant basé à l'adresse spécifiée. Après une réinitialisation (fonction reset), il est nécessaire de choisir quel composant vous voulez utiliser, et ensuite tous les échanges se feront avec ce composant, jusqu'au prochain appel de la fonction reset.

myWire.write(num)

Cette fonction écrit une instruction (sur un octet) vers le composant One-Wireactuellement sélectionné.

Pour mémoire, voici les instructions disponible avec le capteur DS18B20 :

myWire.write(num, 1)

Cette fonction écrit une instruction (sur un octet) vers le composant One-Wire actuellement sélectionné et laisse la broche de communication avec le bus 1-wire au niveau HAUT, permettant notamment l'alimentation en mode "parasite" (alimentation par la ligne de données du capteur).

myWire.read()

Lit un octet depuis le composant actuellement sélectionné.

4.3  Fonction de contrôle des données

myWire.crc8(dataArray, length)

Calcule un contrôle CRC sur un tableau de données.

Pour plus d'infos sur le Calcul de Redondance Cyclique (CRC) voir : http://fr.wikipedia.org/wiki/Contr%C3%B4le_de_redondance_cyclique

4.4  Fonction de contrôle de de l'alimentation

myWire.depower()?

Met la ligne de communication en état d'inactivité.

5.  Détail des fonctions de la librairie

  • OneWire( uint8_t pin)
  • uint8_t reset(void)
  • void select( uint8_t rom[8])
  • void skip(void)
  • void write(uint8_t v, uint8_t power = 0)
  • uint8_t read(void)
  • void reset_search()
  • uint8_t search(uint8_t *newAddr)
  • uint8_t crc8( uint8_t *addr, uint8_t len)

6.  Voir également :

7.  Commentaires utilisateurs

Aucun commentaire


Page d'accueil de la référence Arduino en français

Corrections, suggestions et nouvelle documentation peuvent être postées sur le Forum Arduino ou à l'adresse suivante : support_at_mon-club-elec_point_fr

Le texte original de la référence Arduino est sous licence Creative Commons Attribution-ShareAlike 3.0 . Les exemples de code dans la référence sont dans le domaine public.

La présente traduction française commentée a été réalisée par Xavier HINAULT (2010-2012) (www.mon-club-elec.fr) et est sous licence Creative Commons Attribution-ShareAlike 3.0.

Cette page est une création originale de X. HINAULT