Control con pulsadores

Solo una cosita,
Si esperas que los valores estén entre 0 y 255 mejor utilizar una variable tipo "byte".
Así además te ahorras los "if" dado que si vale 255 y le sumas uno, vuelve a cero.

byte rojo = 0;
...
 if (digitalRead(Pulsrojo) == LOW) rojo ++;  

o tal y como lo tienes puedes añadir un "and" 255 en los analogWrite y te olvidas de los 3 "if":

analogWrite(Ledrojo, rojo & 0xff);

Saludos.