Aiuto prgetto arduino

secondo me il programma è corretto nn trovo nessun problema.. anche xk è gia stato fatto nn l'ho scritto io...

/* Pilotaggio ventola
Versione per Arduino del 22-08-2012
by Giuseppe SPALIERNO
Regolazione PWM della velocità di una ventola sull'uscita PWM 9.
4 velocità: minima D%=20%, media D%=40%, alta D%=60%, massima D%=80%
4 LED di segnalazione: verde (t<20°C), giallo (t>20°C), arancio (t>30°C), rosso (t>40°C)
Un ingresso analogico su A0 (0 - 50°C corrisponde a 0 - 5V che corrisponde a 0 - 1023)
*/
int verde=13; // Pin collegato a LED verde
int giallo=12; // Pin collegato a LED giallo
int arancio=11; // Pin collegato a LED arancio
int rosso=10; // Pin collegato a LED rosso
int pwm=9; // Pin con uscita in PWM
int sensore= A0; // Ingresso analogico
int valore; // Valore digitale a 10 bit acquisito
int fascia; // Possibili valori: 0, 1, 2, 3, 4, 5
void setup() {
pinMode(verde, OUTPUT); // Pin verde definito di uscita
pinMode(giallo, OUTPUT); // Pin giallo definito di uscita
pinMode(arancio, OUTPUT); // Pin arancio definito di uscita
pinMode(rosso, OUTPUT); // Pin rosso definito di uscita
pinMode(pwm, OUTPUT); // Pin pwm definito di uscita
Serial.begin(9600); // Inizializzazione canale di comun.
Serial.println("valore fascia"); // Stampa messaggio sul monitor del PC
}
void loop() {
valore=analogRead(sensore); // Acquisizione dato a 10 bit
Serial.print(valore); // Stampa su monitor il valore
// fascia è compreso tra 0 e 5 proporzionale a valore che è compreso tra 0 e 1023
fascia=map(valore, 0, 1023, 0, 5);
Serial.print(" "); // Stampa su monitor spazi vuoti
Serial.println(fascia); // Stampa su monitor fascia e va a capo
if (fascia==0) fascia=1; // Fascia vale 1 anche quando vale 0
spegni(); // Richiama il sottoprogramma che spegne i 4 LED
digitalWrite(14-fascia, HIGH);// Viene acceso il diodo corretto
analogWrite(pwm, 51*fascia); // Formula per corretto duty-cycle
delay(500); // Aggiornamento ogni 0.5s
}
// sottoprogramma che spegne i 4 LED
void spegni() {
digitalWrite(verde,LOW);
digitalWrite(giallo,LOW);
digitalWrite(arancio,LOW);
digitalWrite(rosso,LOW);
}

che ne dite??? ho controllato sostituendo il sensore ma da sempre lo stesso risultato...

ok fatto, va bene così?