Capteur de température DS18B20

Salut !

J'essaie de faire marcher mon capteur en suivant ce tuto, mais rien à faire ça m'affiche à chaque fois -127C°, ce qui est légèrement embêtant lorsqu'on veut mesurer une température :slight_smile:

Merci aux gens qui m'aideront !

Regarde ici

lesept:
Regarde ici

Je veux pas lire des températures négatives mais juste faire marcher mon capteur :slight_smile:

Salut,

A tu mis mis une résistance comme indiqué sur le schéma entre +5V et la broche DATA ?, si oui le plus simple est d'installer la librairie pour cette sonde, et la plus de soucis, c'est cela indique -127 c'est q'il y a un problème de communication.

@+

hameau:
Salut,

A tu mis mis une résistance comme indiqué sur le schéma entre +5V et la broche DATA ?, si oui le plus simple est d'installer la librairie pour cette sonde, et la plus de soucis, c'est cela indique -127 c'est q'il y a un problème de communication.

@+

Oui, c'est à dire la librairie pour cette sonde ? Je l'ai déjà non ?

La librairie semble être effectivement présente, la broche 2 est bien sur la pin 2 de la carte arduino, comme sur le schéma du tuto ?
Comment se fait la liaision entre la résistance et la sonde ?, car norlamement cà fonctionne sans soucis.

PatroCuite:
Oui, c'est à dire la librairie pour cette sonde ? Je l'ai déjà non ?

Il faut 2 librairies pour ce programme
OneWire.h //Librairie du bus OneWire
DallasTemperature.h> //Librairie du capteur

A priori elles sont installées puisque tu n' a smble t'il pas eu d'erreur de compilation

-127 c'est typique d'un mauvais cablage
tu es sur de la bonne valeur de resistance 4.7K ?
le DS18B20 est bein cablé en parasitic power 1et 3 à GND ?

Artouste:
Il faut 2 librairies pour ce programme
OneWire.h //Librairie du bus OneWire
DallasTemperature.h> //Librairie du capteur

A priori elles sont installées puisque tu n' a smble t'il pas eu d'erreur de compilation

-127 c'est typique d'un mauvais cablage
tu es sur de la bonne valeur de resistance 4.7K ?
le DS18B20 est bein cablé en parasitic power 1et 3 à GND ?

Normalement tout est bon, j'ai beau changé de capteur rien ne marche, c'est embêtant...

PatroCuite:
Je veux pas lire des températures négatives mais juste faire marcher mon capteur :slight_smile:

Ma réponse à ce message contient un lien qui montre une mise en oeuvre. Essaye la...

PatroCuite:
Normalement tout est bon, j'ai beau changé de capteur rien ne marche, c'est embêtant...

bonne photo de ton montage ?
passe un coup de scanner onewire

#include <OneWire.h>

OneWire  ds(2);  //  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 0x1D:
      Serial.println(" DS2423");
      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;
  }

}

Artouste:
bonne photo de ton montage ?
passe un coup de scanner onewire

#include <OneWire.h>

OneWire  ds(2);  //  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 0x1D:
      Serial.println(" DS2423");
      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;
  }

}

J'ai trouvé le problème je crois, mes résistances ne marchent pas...

mes résistances ne marchent pas

Pourtant elles ont deux pattes :grin:

68tjs:
Pourtant elles ont deux pattes :grin:

:grin: