delay comandato da un partitore di tensione non funziona

salve a a tutti, al momento mi sto cimentando nel costruire una lampada RGB, a cui aggiungo modulo dopo modulo, fino a tirare fuori quello che voglio. al momento il problema principale che riscontro è quello di non riuscire a comandare un delay influenzato da un trimmer.
temendo di aver sbagliato i collegamenti ho fatto girare l’esempio analogRead, e lì funzionava alla perfezione, poi ho fattogirare lo sketch RGB senza analogRead e funzionava, ho unito le due cose e non funzionava nulla, neanche il bottone per rendere bianca la luce.
lo schema è questo:

// fade + white button + trimmer for color change speed for rgb lamp

int button = 8;
int sensorPin = A0;    // select the input pin for the potentiometer

int ledr = 9; // the pin that the LED is attached to
int ledg = 10;
int ledb = 11;

int brightnessr = 10;    // how bright the LED is
int brightnessg = 125; 
int brightnessb = 250;

int val = 0; // per il bottone
int old_val = 0;  // for debouncing system
int state = 0;    // for debouncyng system
int sensorValue = 0;  // variable to store the value coming from the sensor

int fadeAmountr = 1;   // how many points to fade the LED by
int fadeAmountg = 2;
int fadeAmountb = 3;

void setup()  { 
 
  pinMode(ledr, OUTPUT);
  pinMode(ledg, OUTPUT);
  pinMode(ledb, OUTPUT);
 
  pinMode(button, INPUT);
  int sensorValue = 0;  // variable to store the value coming from the sensor
} 

void loop()  {
  
sensorValue = analogRead(sensorPin);
  
 val = digitalRead(button);  // debouncing system
  if ((val == HIGH) && (old_val == LOW)){
    state = 1 - state; 
  }
   
   old_val = val;
   
    if (state == 1){          //stop debouncing system
      
      analogWrite(ledr, 250);
      analogWrite(ledg, 250);
      analogWrite(ledb, 250);
    }
 
    else{
  

  analogWrite(ledr, brightnessr);  // set the brightness
  analogWrite(ledg, brightnessg);
  analogWrite(ledb, brightnessb);  

  
  brightnessr = brightnessr + fadeAmountr;  // change the brightness for next time through the loop:
  brightnessg = brightnessg + fadeAmountg;
  brightnessb = brightnessb + fadeAmountb;

  // reverse the direction of the fading at the ends of the fade: 
  if (brightnessr <= 10 || brightnessr >= 250) 
    fadeAmountr = -fadeAmountr ;
   if (brightnessg <= 10 || brightnessg >= 250) 
    fadeAmountg = -fadeAmountg ; 
   if (brightnessb <= 10 || brightnessb >= 250) 
    fadeAmountb = -fadeAmountb;
  
  delay(sensorValue + 1); 
  }
}

la cosa che proprio non riesco a spiegarmi è perchè neanche il bianco funzioni

Non so come mai compilando non ti dia errori, ma a scanso di equivoci metterei le parentesi graffe agli ultimi 3 if.

non me ne ero accorto dei due punti mancanti, ma non è quello. che sia la mia board ad avere dei problemi? lo avevo escluso dopo la prova fatta con lo sketch d'esempio, ma adesso non ne sono più così sicuro...

Puoi farci vedere lo schema elettrico dei collegamenti che hai utilizzato ?

mi sento un deficiente.... stavo controllondo i collegamenti per fare lo schema, e mi sono accorto che avevo collegato il pin aref al posto di gnd, ho collegato gnd e va alla perfezione.

per lo schema, io stavo usando fidocadj, ma non c'è arduino, quale programma dovrei usare?? fritzing app?

per fidocad c'é una libreria dedicata a arduino http://davbucci.chez-alice.fr/index.php?argument=elettronica/fc_libraries/fc_libraries.inc&language=Italiano

bene, l'ho aggiunta la libreria. grazie mille della dritta

Contento che hai trovato la soluzione. ;)