étude la library onewire
Répondre à la discussion
Affichage des résultats 1 à 14 sur 14

étude la library onewire



  1. #1
    inviteb8a59782

    étude la library onewire


    ------

    Bonjour, avec un arduino j'aimerais mesuré la température avec un ds18b20 .


    J'ai quelques questions sur les fonctions de la librairie one wire .

    -Je comprend pas la différence entre la fonction "myWire.reset_search() " et "myWire.reset() " .

    -A quel moment dans le programme exemple "de la librarie one wire" le maitre met le bus au niveau bas pour réveiller les esclaves , et ensuite les esclaves répondent au maitre en mettant le bus au niveau bas prendant quelques us ?

    -la fonction "myWire.search(addrArray) " correspond t 'elle à la commande SEARCH ROM (44xh) ou CONDITIONAL SEARCH (ECxh)

    -après la commande 44xh et le delai d'attende de 750ms , pourquoi il y a cette instruction ci "byte present = ds.reset();" ?

    -----

  2. #2
    inviteb8a59782

    Re : étude la library onewire

    personne ?

  3. #3
    inviteb8a59782

    Re : étude la library onewire

    à ce que je vois, ce composant attire pas grand monde

  4. #4
    inviteb8a59782

    Re : étude la library onewire

    j'aimerais bien au moins savoir comment démontrer la formule "int temperature = (data[1] << 8) + data[0];"
    "float temperature_C = temperature / 16.0;"

  5. A voir en vidéo sur Futura
  6. #5
    Jack
    Modérateur

    Re : étude la library onewire

    vu qu'on ne sait pas trop ce qu'est data[0] et data[1], comment donner une réponse?

  7. #6
    Jack
    Modérateur

    Re : étude la library onewire

    comment démontrer la formule "int temperature = (data[1] << 8) + data[0];
    Qu'y a-t-il à démontrer? je suppose que data[1] est l'octet de poids fort de la témpérature. Il faut donc le mettre à sa place en le décalant 8 fois à gauche.

  8. #7
    inviteb6b75063

    Re : étude la library onewire

    C'est très simple... il suffit de lire la doc du capteur....
    Ta valeur est sur 10bits donc on récupère deux octets (avec 5 bits inutiles). data[1] est le MSB et data[0] est le LSB. cette "formule" reforme dans un entier le nombre envoyé par le capteur.
    "température / 16" provient de la résolution, c'est à dire la relation qui lie la température a la donné envoyé par le capteur
    Si tu fais temperature * 1/16, ce qui revient au même, on a 1/16 = 0.0625 (la résolution) (cf:Page 3 de la doc)
    On a donc besoin de ce calcul pour convertir la donnée du capteur en valeur en °C

    http://datasheets.maximintegrated.com/en/ds/DS18B20.pdf
    Regarde page 3 et 4

  9. #8
    inviteb6b75063

    Re : étude la library onewire

    Je me suis trompé, dans ton cas ce ne doit pas être 10bits mais sur 12bits. Le DS18B20 est configurable et comme tu ne dis rien sur ce que tu lui demandes...(D'ailleurs ce n'est pas 5bits inutiles, ils renseignent si la valeur est négative ou non)

  10. #9
    Jack
    Modérateur

    Re : étude la library onewire

    peu importe 10, 11 ou 12 bits, le calcul après conversion sera le même

  11. #10
    inviteb6b75063

    Re : étude la library onewire

    Si le nombre de bits change alors la résolution change...
    Le calcul n'est pas le même puisque la valeur de la résolution est différente
    0.5°C (9bits),0.25°C (10bits), 0.125°C (11bits), 0.0625°C (12bits)

  12. #11
    Jack
    Modérateur

    Re : étude la library onewire

    Je me suis mal exprimé. Je ne parlais pas du calcul de la température, mais le calcul pour formater le résultat de la conversion sur un entier signé, donc décalage du MSB de 8 bits à gauche et on ajoute le LSB.

  13. #12
    inviteb8a59782

    Re : étude la library onewire

    merci pour vos réponse , au niveau de la configuration le ds18b20 est par défaut à 12 bits . je n'ai pas touché à ça .

    pour la ligne int temperature = (data[1] << 8) + data[0];
    le signe <<8 signifie qu'on doit décaler les msb 8 fois à gauche , mais je comprend toujours pas pourquoi .

  14. #13
    Jack
    Modérateur

    Re : étude la library onewire

    mais je comprend toujours pas pourquoi
    Dans notre système de comptage, le système décimal, prenons le chiffre 11 constitué de deux "1". Une dizaine a-t-elle le même poids qu'une unité? Non!
    Pour représenter une dizaine, on prends le chiffre "1" et on le décale à gauche, et pas le "1" des unités.

    C'est pareil avec ton convertisseur: tu as 2 octets qui n'ont pas le même poids. C'est pourquoi on le décale 8 fois d'un bit vers la gauche. Pourquoi 8 fois? Parce qu'un octet fait très précisément 8 bits.

    A+
    Dernière modification par Jack ; 15/04/2015 à 13h18.

  15. #14
    inviteb8a59782

    Re : étude la library onewire

    merci pour votre explication clair est précise .

Discussions similaires

  1. C32 et library I2C...
    Par schneiderj dans le forum Électronique
    Réponses: 3
    Dernier message: 09/05/2012, 18h25
  2. Interroger un DS2480 avec programme C OneWire
    Par invitedae5fd2a dans le forum Électronique
    Réponses: 0
    Dernier message: 19/03/2011, 14h40
  3. Ampèremetre sur réseau OneWire.
    Par invitedae5fd2a dans le forum Électronique
    Réponses: 5
    Dernier message: 08/01/2011, 10h31
  4. PSPICE library
    Par invitecdde6d8c dans le forum Électronique
    Réponses: 0
    Dernier message: 12/11/2008, 17h19
  5. Library simulink
    Par invite958b85a5 dans le forum Logiciel - Software - Open Source
    Réponses: 0
    Dernier message: 19/07/2005, 17h00
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...