// pin a cui collegare i piedini del LED RGB
const int VERDE = 9;
const int ROSSO = 10;
const int BLU = 11;
// tempo di transizione colore
const int ritardo = 10;
void setup() {
// imposta il pin digitale come output
pinMode(VERDE, OUTPUT);
pinMode(BLU, OUTPUT);
pinMode(ROSSO, OUTPUT);
// si impostano ad HIGH i pin VERDE, BLU, ROSSO
// inizialmente il led RGB sarà spento
digitalWrite(VERDE, HIGH);
digitalWrite(BLU, HIGH);
digitalWrite(ROSSO, HIGH);
}
int valoreRosso;
int valoreVerde;
int valoreBlu;
void loop() {
// accensione e spegnimento graduale del rosso
valoreRosso = 255;
valoreVerde = 255;
valoreBlu = 255;
for( int i = 0 ; i < 255 ; i += 1 ){
valoreRosso -= 1;
/* ad ogni ciclo calcola la differenza
255 - valoreRosso
provocando un graduale spegnimento del colore
*/
analogWrite( ROSSO, 255 - valoreRosso );
// attesa di 20 ms per percepire il colore
delay( ritardo );
}
// accensione e spegnimento graduale del verde
for( int i = 0 ; i < 255 ; i += 1 ){
valoreVerde -= 1;
/* ad ogni ciclo calcola la differenza
255 - valoreVerde
provocando un graduale spegnimento del colore
*/
analogWrite( VERDE, 255 - valoreVerde );
// attesa di 20 ms per percepire il colore
delay( ritardo );
}
// accensione e spegnimento graduale del blu
for( int i = 0 ; i < 255 ; i += 1 ){
valoreBlu -= 1;
/* ad ogni ciclo calcola la differenza
255 - valoreBlu
provocando un graduale spegnimento del colore
*/
analogWrite( BLU, 255 - valoreBlu );
// attesa di 20 ms per percepire il colore
delay( ritardo );
}
}