pugliasos newlogoDEF

Orario della segreteria: tutti i martedì, dalle ore 17 alle 19, su appuntamento.

Effetto Fade

Componenti

  • 1 LED rosso
  • 1 resistenza di 220 Ω
  • 2 cavetti

   La dissolvenza di un LED, conosciuta anche come effetto Fade, la si può ottenere gestendo la tecnica PWM (Pulse Width Modulation, pag. 5) su una delle sei porte digitali contrassegnate con una tilde; ovvero le 3, 5, 6, 9, 10 e 11 (Tali pin utilizzati in modo analogico non necessariamente vanno inizializzati come pin di output con pinMode). Tale tecnica permette ad Arduino di fornire, attraverso tali porte e tramite l’istruzione:

  analogWrite (pin, parametro);

tensioni variabili da 0 a 5 V e quindi gestire attuatori in modalità analogica.

In questa esercitazione con Arduino varieremo la luminosità di un led portandola progressivamente dal minimo al massimo e viceversa.

Si fa variare gradualmente la tensione in uscita dalla porta da 0 a 5 V agendo sul parametro dell'istruzione analogWrite con valori interi n che vanno da 0 a 255 (con una risoluzione di 19,6 mV); per cui con il valore 0 si ha in uscita un segnale di 0 V mentre con 255 un segnale con la tensione massima, cioè di 5 V. In generale

Dissolvenza di un LED html 3eacae8a79ce803d da cui Dissolvenza di un LED html 4f8681995543f864

  Il circuito da realizzare è semplicissimo: il catodo e l’anodo del LED vanno collegati, rispettivamente, al GND e ad una resistenza da 220 Ω che a sua volta va collegata alla porta digitale 9.
Vengono proposte due metodologie: una con l’uso dell’if, l’altra con il for.

1. Nel primo caso il parametro del comando analogWrite viene prima sottoposto ad un incremento, per la positività della “variazione”, finché non raggiunge o supera il valore di 255, dopo di che la “variazione” viene cambiata di segno ed il parametro viene decrementato fino ad assumere il valore uguale o minore di zero: a questo punto la “variazione” viene nuovamente cambiata di segno e si passa nuovamente da un decremento ad un incremento del parametro e così via ciclicamente con una luminosità che prima cresce e poi decresce.
Nella programmazione a blocchi, per motivi di praticità, dal momento che la variazione è unitaria, il confronto si limiterà alla sola uguaglianza.

Con mBlock

Dissolvenza di un LED html dcafe39e7f3944ab

 

int brillanza = 0;
int variazione = 1;
#define pinFade 9

void setup () {
pinMode(pinFade, OUTPUT);
}

void loop() {
analogWrite (pinFade, brillanza);
brillanza = brillanza + variazione;
if ( brillanza <= 0 || brillanza >= 255) {
variazione = variazione * (-1);
}
delay (50);
}

 

2. Nel secondo caso si ricorre a due cicli for che si alternano:

#define pinFade 9

void setup () {
  pinMode(pinFade, OUTPUT);

}

void loop() {
  for(int brillanza=0; brillanza<=255; brillanza=brillanza+5) {
    analogWrite (pinFade, brillanza);
    delay (20);
  }
  for(int brillanza=255; brillanza>=0; brillanza=brillanza-5) {
    analogWrite (pinFade, brillanza);
    delay (20);
  }
}

Con Tinkercad

Dissolvenza di un LED html 19ed830dd8285b07

 

 

Dissolvenza di un LED html 117746d297aaad32

 

 

 

   La simulazione dell’effetto FADE con Tinkercad, con l’inserimento di un oscilloscopio ai capi del LED, con tempo di divisione di 1 ms, ed un multimetro, può essere di aiuto per comprendere meglio, in modo qualitativo, il comportamento dei pin PWM.

Save
Cookies user preferences
We use cookies to ensure you to get the best experience on our website. If you decline the use of cookies, this website may not function as expected.
Accept all
Decline all
Read more
Analytics
Tools used to analyze the data to measure the effectiveness of a website and to understand how it works.
Google Analytics
Accept
Decline