DS18B20 errore rilevamento temperatura

buongiorno a tutti, sto cercando di far eseguire al mio UNO il seguente sketch ma mi restituisce, nel monitor seriale -127C. Non capisco dove stia sbagliando dal momento che ho utilizzato questo sensore molte volte seza mai problemi. Ho provato ad aggiornare le librerie ma niente. Sapete aiutarmi?

#include <OneWire.h>
#include <DallasTemperature.h>

#define SENSOR_BUS_PIN 2

OneWire oneWire(SENSOR_BUS_PIN);
DallasTemperature sensors(&oneWire); 

void setup() {
  Serial.begin(9600); 
  Serial.println("DS18B20 test");
  sensors.begin(); 
}

void loop() {
  Serial.print("Richiesta temperatura... "); 
  
  sensors.requestTemperatures(); 

  Serial.print(sensors.getTempCByIndex(0));
  Serial.println("°C");
}

Credo che -127 sia quando il sensore non è collegato correttamente

nid69ita:
Credo che -127 sia quando il sensore non è collegato correttamente
https://forum.arduino.cc/index.php?topic=306415.0

il sensore ha solo 3 pin ed è collegato bene, non credo sia quello il problema

Hai messo una resistenza 4,7 k?

// fai copia e colla con questo sketch a seguire 
//se  sei sicuro dei collegamenti e che il sensore non sia rotto
 #include <OneWire.h>
#include <DallasTemperature.h>

#define ONE_WIRE_BUS 2  // Data wire is plugged into pin 2 on the Arduino 
OneWire oneWire(ONE_WIRE_BUS); 
DallasTemperature sensors(&oneWire);
DeviceAddress tmp_address;
int numberOfDevices = 1 ;
float temperatura ;
void setup() {
  Serial.begin(9600); 
  Serial.println("DS18B20 test");
  sensors.begin(); 
}

void loop() {
  Serial.print("Richiesta temperatura... "); 
  
  sensors.requestTemperatures(); 
sensors.getTempCByIndex(0);
  Serial.print(temperatura);
  Serial.println("°C");
  delay (1000);
}

@elrospo : ti ricordo che, da REGOLAMENTO, il codice va racchiuso negli appositi TAG. Una volta scritto, basta selezionare tutte le varie righe ed usare l’apposito bottone </>. Grazie :slight_smile:

L’ho fatto io nel post qui sopra :wink:

Guglielmo

Concordo, se invece la connessione non è perfetta o si sbaglia qualcosa nei tempi becchi un 85.

si, già messa

scusa il ritardo nella risposta. I collegamenti non possono essere sbagliati, sono 3 cavi. 5v, GND e signal…

Provato. Restituisce sempre lo stesso errore, -127. I collegamenti sono a posto.

boh… (per me) -127 significa collegamenti non corretti o sensore “morto”

Oltre all’ordine dei contatti, cosa facile da controllare, conta anche che ci sia la continuità elettrica.
Il DS18B20 non è complesso, se i collegamenti sono a posto, se si usa la libreria correttamente e se il sensore non è fallato va al primo colpo.
-127 è il valore che la libreria restituisce anche sensa sensore.