Go Down

Topic: Ds18b20  (Read 379 times) previous topic - next topic

walid_42

Bonjour, j'ai un petit problème avec mon capteur ds18b20 :
dans le moniteur série, il me marque : La température est: -127.00 C° avec un programme normalement bon .
Merci d'avance pour votre aide !
PS : Je débute en programmation !

Code: [Select]

#include <OneWire.h> //Librairie du bus OneWire
#include <DallasTemperature.h> //Librairie du capteur

OneWire oneWire(2); //Bus One Wire sur la pin 2 de l'arduino
DallasTemperature sensors(&oneWire); //Utilistion du bus Onewire pour les capteurs
DeviceAddress sensorDeviceAddress; //Vérifie la compatibilité des capteurs avec la librairie

void setup(void){
 Serial.begin(9600); //Permet la communication en serial
 sensors.begin(); //Activation des capteurs
 sensors.getAddress(sensorDeviceAddress, 0); //Demande l'adresse du capteur à l'index 0 du bus
 sensors.setResolution(sensorDeviceAddress, 12); //Résolutions possibles: 9,10,11,12
}

void loop(void){
 sensors.requestTemperatures(); //Demande la température aux capteurs
 Serial.print("La température est: ");
 Serial.print(sensors.getTempCByIndex(0)); //Récupération de la température en celsius du capteur n°0
 Serial.println(" C°");
}

lesept

Ca pourrait être pire, tu pourrais avoir des températures en dessous du zéro absolu !!  :)

Plus sérieusement, as-tu testé le programme de test "Single" ? S'il fonctionne, tu sauras que ton capteur est bien branché, bien alimenté et fonctionnel. Le problème viendra alors de ton logiciel : le plus simple sera lors d'adapter l'exemple à ton besoin.
A force d'essayer on finit par réussir... Donc, plus ça rate, plus on a de chances que ça marche (proverbe Sharduinok).

walid_42

Oui je vien juste de le tester c'est pareil :( , dans le moniteur série il me marque : La température est: -127.00 C° aussi

Artouste

Bonjour, j'ai un petit problème avec mon capteur ds18b20 :
dans le moniteur série, il me marque : La température est: -127.00 C° avec un programme normalement bon .
Merci d'avance pour votre aide !
Bonjour
reponse typique d'un DS18B20 "mal cablé"
la 1ere chose à faire et déjà de voir si le DS18B20 est reconnu

tu peux tester le prog ci-dessous

attention à plusieurs choses :

- bien connecter DQ du DS18B20 sur le pin8 de ton arduino
- verifier la methode d'alim du DS18B20 (alim vraie ou mode parasitic)

Code: [Select]
#include <OneWire.h>
// Onewire lib is here http://www.pjrc.com/teensy/td_libs_OneWire.html

OneWire  ds(8);  //  don't forget 4.7K resistor between +5V and DQ pin
void setup(void) {
  Serial.begin(9600);
 
}

void loop(void) {
  byte i;
  byte present = 0;
  byte data[12];
  byte addr[8];

  if ( !ds.search(addr)) {
    Serial.println("--------------");
    Serial.println(".");
    Serial.println(".");
    Serial.println("END OF SCAN.");


    Serial.println(".");
    Serial.println();

    ds.reset_search();
    delay(2500);
    return;
  }

  Serial.println("--------------");



  Serial.print(" ROM =");
 
  for( i = 0; i < 8; i++) {
    Serial.write(' ');
   
    if ( addr[i]<16) {
      Serial.print("0");
    }
    Serial.print(addr[i], HEX);
  }

  if (OneWire::crc8(addr, 7) != addr[7]) {
    Serial.println("CRC is not valid!");
    return;
  }
  Serial.println();


  Serial.print("CHIP FAMILY ");
  Serial.print(addr[0],HEX);
  // the first ROM byte indicates which chip
  Serial.print(" =  ");
  switch (addr[0]) {

  case 0x01:
    Serial.println(" DS1990 DS2401");  //
    break;
  case 0x02:
    Serial.println(" DS1991");  //
    break;
  case 0x04:
    Serial.println(" DS1994");  //
    break;
  case 0x05:
    Serial.println(" DS2405");  //
    break;
  case 0x06:
    Serial.println(" DS1992");  //
    break;
  case 0x08:
    Serial.println(" DS1993");  //
    break;
  case 0x0B:
    Serial.println(" DS1985"); 
    break;
  case 0x10:
    Serial.println(" DS1820 DS18S20 DS1920"); 
    break;
  case 0x12:
    Serial.println(" DS2406"); 
    break;
  case 0x21:
    Serial.println(" DS1921");
    break;
  case 0x22:
    Serial.println(" DS1822");
    break;
    case 0x23:
    Serial.println(" DS2433");
    break;
  case 0x24:
    Serial.println(" DS1904");
    break;
  case 0x28:
    Serial.println(" DS18B20");
    break;
  case 0x29:
    Serial.println(" DS2408"); 
    break;
    case 0x2C:
    Serial.println(" DS2890"); 
    break;
  case 0x36:
    Serial.println(" DS2740"); 
    break;
  case 0x3B:
    Serial.println(" DS1825"); 
    break;
  case 0x41:
    Serial.println(" DS1923"); 
    break;

case 0xB3:
    Serial.println(" CHIP cartouche laser"); 
    break;
  default:
    Serial.println(" is not listed.");

    return;
  }

}




walid_42

Dans le moniteur série  avec ton programme il me marque :

-------------
.
.
END OF SCAN.
.
et je pense que j'ai bien cabler mon ds18b20 ,:(


Artouste

#5
Apr 22, 2018, 02:07 pm Last Edit: Apr 22, 2018, 02:11 pm by Artouste
Dans le moniteur série  avec ton programme il me marque :

-------------
.
.
END OF SCAN.
.
et je pense que j'ai bien cabler mon ds18b20 ,:(


Tu n'a pas repondu à ma question sur l'alim du DS18B20

Photos de ton cablage ?
DS18B20 d'origine (boitier TO92) ou DS18B20 "encapsulé/tubé" ?

hbachetti

Salut

Tu as bien mis en place une résistance de pull-up entre la broche signal et le 5V ?
Classiquement 4.7K.

@+

Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

walid_42

#7
Apr 22, 2018, 03:22 pm Last Edit: Apr 22, 2018, 03:28 pm by walid_42
Je ne sais pas pour la méthode d'alimentation,j'ai un DS18B20 température sensor v2, oui j'ai bien mis la résistance.

Artouste

Je ne sais pas pour la méthode d'alimentation,j'ai un DS18B20 température sensor v2, oui j'ai bien mis la résistance.
y a pas 36 possibilités , il n'y en a que 2 (alim directe ou parasitic)

"IL est câblé comment "ton DS18B20" ?

hbachetti

-127° provient souvent d'un problème de câblage.
Tester la tension sur chaque broche au multimètre.

Je me suis fait avoir il n'y a pas longtemps, et pourtant c'était loin d'être mon premier DS18B20.

@+
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

walid_42

Merciiii tout le monde j'ai finalement reusis ,c'etait un mauvais cablage :):)

hbachetti

J'en étais sûr.
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

Go Up