software per led rgb che fa come vuole lui

salve a tutti, ho creato una sorta d'algoritmo per convertire una lettura analogica in 3 valori, che tramite dei led rgb mi diano un colore.
al momento ho buttato giu solo il colore rosso, per essere certo che funzionasse, naturalmente non funziona.
girando uil potenziometro ottengo dei valori che dovrebbero andare da 0 a 100, ma oscillano da -566 a +666.
con il monitor seriale ho controllato la lettura analogica e le varie variabili, sono tutte normali, finche non entrano nel mio algoritmo.
ma visto che il codice ha sempre ragione, e quindi probabilmente sarò io a ad aver fatto qualche errore, eccolo:

const int Rpin = 9;    // pin led RGB
const int Gpin = 10;
const int Bpin = 11;

int Analog = 0;
int h = 0;

int R = 0;  //verra salvato il valore ottenuto dallo switch case prima di essere moltiplicato per pwm
int G = 0;
int B = 0;

int pwmR = 0;  // valore da applicare per il pwm    
int pwmG = 0;
int pwmB = 0;


void setup() {
  pinMode (Rpin, OUTPUT);  //pin led RGB      
  pinMode (Gpin, OUTPUT);
  pinMode (Bpin, OUTPUT);
  
  Serial.begin(9600);
}

void loop() {
  
  Analog = (analogRead(0));  //lettura potenziometro
  
  h = (map(Analog,0,1023,0,360));  // nel successivo switch case userò valori compresi tra 0 e 360
  
    if (h<60) R=100;
    if (h>60 && h<120) R=(100 - ((h - 60)*1,666));
    if (h>120 && h<240) R=0; 
    if (h>240 && h<300) R=((h - 240)*1,666);
    if (h>300) R=100;
 
  Serial.println(R);
  
  
  pwmR = ((R)*2,55);  //numero applicabile per pwm  
  analogWrite (Rpin, R);
}

per chi non avesse mai trafficato con i led RGB ecco a voi lo "schema" su cui mi sono basato:

perché non prendi un codice giá esistente?
Cercalo con un motore di ricerca.
Ciao Uwe

...
    if (h>60 && h<120) R=(100 - ((h - 60)*1,666));
    if (h>120 && h<240) R=0; 
    if (h>240 && h<300) R=((h - 240)*1,666);
...

Hai dichiarato R un int e non puoi usare una costante float come 1.666, o meglio, se la usi ottieni un arrotondamento
Tra l'altro la costante la scrivi con la virgola!

Stessa cosa dicasi qui:

  pwmR = ((R)*2,55);  //numero applicabile per pwm  
  analogWrite (Rpin, R);

e per di più passi ad analodWrite il valore di R, e non di pwmR

La virgola in C all'interno delle istruzioni è un OPERATORE, non è il separatore decimale. Quello è il punto.
La virgola dice al compilatore di analizzare ogni parametro (costante o istruzione che sia) da SX a DX (nel caso di istruzioni le esegue) fino all'ultimo e usare questo come valore restituito (o il valore dell'operazione se anch'esso è un'istruzione).