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.