DS18B20 problem

buenas comañeros despues e tener el proyecto casi terminado me encuentro con que la sonda DS18B20 me da una temperatura -127 cuando esta conectada la sonda .trabajo con la version 0023 con sus respectivas librerias ,onwire y dallastemperature.
que creeis que esta pasamdome?

#include <OneWire.h>
#include <LiquidCrystal.h>
#include <DallasTemperature.h>
#include <Wire.h> //
#define DS1307_I2C_ADDRESS 0x68
LiquidCrystal lcd(26, 27, 45, 47, 49, 51);
#define ONE_WIRE_BUS 41//temperatura, pin de entrada
OneWire oneWire(ONE_WIRE_BUS);//temperatura
DallasTemperature sensores(&oneWire);
byte second, minute, hour, dayOfWeek, dayOfMonth, month, year;
int PinVentilador =29;//rele 1-ventilador disipador
int PinCentilador =30;//rele 2-ventilador disipador
int PinCalentador = 34;
int EstadoCentil=0;
int EstadoVentil=0;
int EstadoCalent=0;
int Retraso=5000;
}
void setup()
{ pinMode(PinCentilador, OUTPUT);
pinMode(PinVentilador, OUTPUT);
pinMode(PinCalentador, OUTPUT);
}
void loop() {
getDateDs1307(&second, &minute, &hour, &dayOfWeek, &dayOfMonth, &month, &year); //Obtenemos la hora
sensores.requestTemperatures();
Temperatura(minute, hour);
lcd.noBlink();
if (minute < 2) Retraso=1000;
else if (hour < 5) Retraso=10000;
else Retraso=10000;
}

void Temperatura(int minutos, int horas)
{
float T1;
float T2;
float T3;
sensores.requestTemperatures();
T1=sensores.getTempCByIndex(0)+1;
T2=sensores.getTempCByIndex(1)+1;
T3=sensores.getTempCByIndex(2)+1;
lcd.clear();
lcd.setCursor(0,0);
lcd.print("TEMPERATURA");
lcd.print(" ");
if (hour < 10) lcd.print("0");
lcd.print(hour, DEC);
lcd.print(":");
if (minute < 10) lcd.print("0");
lcd.print(minute, DEC);

lcd.setCursor(0, 1);
lcd.print("TACEN-T1:");
lcd.print(T1);
lcd.print((char)223);
lcd.setCursor(0, 2);
lcd.print("TACEN-T2:");
lcd.print(T2);
lcd.print((char)223);
lcd.setCursor(0, 3);
lcd.print("WATER-T3:");
lcd.print(T3);
lcd.print((char)223);
if (T2 < 25) EstadoCalent=1;
if (T2 > 26) EstadoCalent=0;
if (T1 < 25) EstadoVentil=0;
if (T1 > 30) EstadoVentil=1;
if (T3 < 25) EstadoCentil=0;
if (T3 > 30) EstadoCentil=1;

lcd.setCursor(16, 3);
if(EstadoCalent==1 ){
digitalWrite(PinCalentador, LOW);
lcd.write(6);
}
else
{
digitalWrite(PinCalentador, HIGH);
lcd.write(6);
}
lcd.setCursor(16, 1);
if(EstadoVentil==1 )//decimos al rele el encendido y apagado//
{
digitalWrite(PinVentilador, LOW);
lcd.write(6);lcd.write(5);lcd.write(5);
}
else
{
digitalWrite(PinVentilador, HIGH);
lcd.write(6);
}
lcd.setCursor(16, 2);
if(EstadoCentil==1 )//decimos al rele el encendido y apagado//
{
digitalWrite(PinCentilador, LOW);
lcd.write(6);lcd.write(5);lcd.write(5);
}
else
{
digitalWrite(PinCentilador, HIGH);
lcd.write(6);

}
delay(Retraso);
}

ademas compañeros al abrir el serial monitor despues de copilar el sketch "simple" me dice :

temperature for the device 1 ( index 0) is: -127.00
requesting temperature .......done

may led v.o2.zip (5.07 KB)

El resultado que te está devolviendo no es una temperatura. La librería OneWire te está diciendo que no encuentra el sensor (#define DEVICE_DISCONNECTED -127). ¿Has puesto la resistencia de pull-up en la línea?

Prueba primero con un solo sensor y el ejemplo simple de la librería, y cuando te funcione, pasa a tu código. Por cierto, envías dos veces el comando sensores.requestTemperatures(), una en el loop() y otra en la función Temperatura().

Revisa el montaje y si quieres que te echemos una mano, pon un esquema de las conexiones y/o alguna foto.