Capteur DS18B20

Bonsoir,
J'ai réalisé une structure de mesure de température avec Arduino UNO et Nano et un capteur DS18B20.
Hélas les valeurs affichées ne sont que + ou - 125 °C.
Les capteurs ont été testés sur une autre structure à base de PIC, ils fonctionnent.
Voici le code utilisé.

/* DS18B20 1-Wire digital temperature sensor with 16x2 I2C LCD and Arduino example code. More info: https://www.makerguides.com */

// Include the required Arduino libraries:
#include "OneWire.h"
#include "DallasTemperature.h"
#include "LiquidCrystal_I2C.h"

// Define to which pin of the Arduino the 1-Wire bus is connected:
#define ONE_WIRE_BUS 2

// Create a new instance of the oneWire class to communicate with any OneWire device:
OneWire oneWire(ONE_WIRE_BUS);

// Pass the oneWire reference to DallasTemperature library:
DallasTemperature sensors(&oneWire);

LiquidCrystal_I2C lcd(0x27, 16, 2);

// Degree symbol:
byte Degree[] = {
  B00111,
  B00101,
  B00111,
  B00000,
  B00000,
  B00000,
  B00000,
  B00000
};

void setup() {
  // Start up the library:
  sensors.begin();
  // Start the LCD and turn on the backlight:
  lcd.init();
  lcd.backlight();
  // Create a custom character:
  lcd.createChar(0, Degree);
}

void loop() {
  // Send the command for all devices on the bus to perform a temperature conversion:
  sensors.requestTemperatures();

  // Fetch the temperature in degrees Celsius for device index:
  float tempC = sensors.getTempCByIndex(0);  // the index 0 refers to the first device

  // Print the temperature on the LCD;
  lcd.setCursor(0, 0);
  lcd.print("Alain Veronique");
  lcd.setCursor(0, 1);
  lcd.print("  Temp:");
  lcd.print(tempC);
  lcd.write(0);  // print the custom character
  lcd.print("C");

  // Wait 1 second:
  delay(1000);
}

Dans l'attente de vous lire,
Cordialement,
Alain

Ce serait intéressant de savoir ce que getDeviceCount(); retourne. Cela permettrait de connaitre le nombre de capteur détectés.
Autrement, il faudrait t'assurer que tu as bien des résistances de pullup sur SDA et SCL (soit sur le module soit externes) une résistance de pullup sur la ligne de donnée.

Edit: correction

dans l'exemple, il ya ce bout de code qui permet d'afficher des infos sur le terminal. ça permettra de debugger le programme.

 if (tempC != DEVICE_DISCONNECTED_C)
  {
    Serial.print("Temperature for the device 1 (index 0) is: ");
    Serial.println(tempC);
  }
  else
  {
    Serial.println("Error: Could not read temperature data");
  }

il faut aussi bien vérifer la resistance de pull-up sur la broche DQ du capteur.

Bonjour,
Merci pour vos réponses.
Le souci provenait simplement de deux capteurs sur le lot qui refusait de fonctionner (acheter pourtant après de société sure).
Cordialement,
Alain