led y sensor ds18b20

Hola, tengo conectado a mi placa arduino un led rgb y un sensor ds18b20.
Lo que quiero es que dependiendo del rango de temperaturas que lea el sensor el led adquiera un color u otro. He programado lo que copio a continuación y no me funciona... siempre sale el led azul y no cambia. Alguien puede ayudarme?

//Tema DS18B20
#include <OneWire.h> //Se importan las librerías
#include <DallasTemperature.h>

#define Pin 2 //Se declara el pin donde se conectará la DATA

OneWire ourWire(Pin); //Se establece el pin declarado como bus para la comunicación OneWire
DallasTemperature sensors(&ourWire); //Se instancia la librería DallasTemperature


//Tema LED RGB
#define pinLed1 11   // Pin 11 a Red
#define pinLed2  10  // Pin 10 a Green
#define pinLed3  9 // Pin 9 a Blue



void setup() {
delay(1000);
Serial.begin(9600);
sensors.begin(); //Se inician los sensores

pinMode(pinLed1, OUTPUT);
pinMode(pinLed2, OUTPUT);
pinMode(pinLed3, OUTPUT);
}


void loop() {
sensors.requestTemperatures(); //Prepara el sensor para la lectura

Serial.print(sensors.getTempCByIndex(0)); //Se lee e imprime la temperatura en grados Celsius
Serial.println(" grados ");

// Si la temperatura es menor a 28 grados el led se pone azul
if (sensors.getTempCByIndex(0)<28){
 analogWrite(pinLed1, LOW);
 analogWrite(pinLed2, LOW);
 analogWrite(pinLed3, HIGH);  
}

// Si la temperatura es mayor o igual a 28 grados y menor o igual a 32 grados el led se pone verde
else if(sensors.getTempCByIndex(0)>=28 && sensors.getTempCByIndex(0)<=32){
 analogWrite(pinLed1, LOW);
 analogWrite(pinLed2, HIGH);
 analogWrite(pinLed3, LOW);  
}

// Si la temperatura es mayor a 32 grados el led se pone rojo
else if(sensors.getTempCByIndex(0)>32){
 analogWrite(pinLed1, HIGH);
 analogWrite(pinLed2, LOW);
 analogWrite(pinLed3, LOW);  
}


delay(1000); //Se provoca un lapso de 1 segundo antes de la próxima lectura

}

Hola.
En primer lugar, tu código se verá mucho mejor y será más fácil de leer y copiar si lo ubicas entre las etiquetas adecuadas. Si puedes edita tu post (opción more/modify, no quick edit), selecciona todo el texto correspondiente al código y pulsa el icono </>.

En cuanto a tu problema, no sé si tendrá que ver, pero no deberías leer el sensor más que una vez en tu loop, y asignarlo a una variable, no sea que las lecturas repetidas estén dando algún error. Algo así:

float temperatura = getTempCByIndex(0);

Serial.print(temperatura);
Serial.println(" grados");

if (temperatura < 28) //// etc...