Sommario:

Dissolvenza in entrata e in uscita di un LED: 3 passaggi
Dissolvenza in entrata e in uscita di un LED: 3 passaggi

Video: Dissolvenza in entrata e in uscita di un LED: 3 passaggi

Video: Dissolvenza in entrata e in uscita di un LED: 3 passaggi
Video: ACCENSIONE SEQUENZIALE LED (SCALE, VIALETTI, ecc.ecc.) 2024, Dicembre
Anonim
Dissolvenza in entrata e in uscita di un LED
Dissolvenza in entrata e in uscita di un LED

I passaggi seguenti sono esperimenti per illustrare come funzionano i LED. Illustrano come attenuare un LED a una velocità uniforme e come sfumarlo in entrata e in uscita.

Avrai bisogno:

  • Arduino (ho usato un duo)
  • tagliere
  • LED rosso da 5 mm
  • Resistore 330 Ω (non critico 330-560 Ω funzionerà.)
  • Cavo di collegamento solido calibro 22

Le parti necessarie per questi esperimenti sono incluse in tutti i kit di avvio Arduino.

Passaggio 1: spiegazione della modulazione degli impulsi

Spiegazione della modulazione degli impulsi
Spiegazione della modulazione degli impulsi
Spiegazione della modulazione degli impulsi
Spiegazione della modulazione degli impulsi
Spiegazione della modulazione degli impulsi
Spiegazione della modulazione degli impulsi

I LED funzionano sempre alla stessa tensione indipendentemente dalla luminosità. La luminosità è determinata da un oscillatore ad onda quadra e la quantità di tempo in cui la tensione è alta determina la luminosità. Questo è chiamato Pulse Width Modulation (PWM). Questo è controllato dalla funzione Arduino analogWrite(pin, n) dove n ha un valore da 0 a 255. AnalogWrite() emette PWM, non vero analogico. Se n=2 il LED sarà due volte più luminoso di n=1. La luminosità raddoppia sempre quando n raddoppia. Quindi n=255 sarà due volte più luminoso di n=128.

Il valore di n è spesso espresso come una percentuale chiamata duty cycle. Le immagini mostrano le tracce dell'oscilloscopio per i cicli di lavoro del 25, 50 e 75%.

Passaggio 2: attenuazione non uniforme

Dimmer non uniforme
Dimmer non uniforme
Dimmer non uniforme
Dimmer non uniforme

Costruisci il circuito come nello schema. Questo è proprio come il circuito per far lampeggiare un LED. Utilizza il pin 9 perché è necessario utilizzare un pin abilitato per PWM.

Copia/incolla lo schizzo qui sotto nell'IDE di Arduino ed eseguilo.

Noterai che più il LED è luminoso, più lentamente si attenua. Man mano che si avvicina al minimo, diventerà molto più scuro.

configurazione nulla()

{ pinMode(9, OUTPUT); } loop void() { int pin = 9; for (int i = 255; i > -1; i--) { analogWrite(pin, i); ritardo(10); } for (int i = 0; i < 256; i++) { analogWrite(pin, i); ritardo(10); } }

}

Il passaggio successivo mostra come attenuare il LED a una velocità costante e in una dichiarazione.

Passaggio 3: su e giù in uno per ()

Affinché il LED si attenui a una velocità costante, il ritardo() deve aumentare a una velocità esponenziale perché metà del ciclo di lavoro produrrà sempre metà della luminosità. Il mio primo pensiero è stato quello di provare a usare la funzione map() ma è lineare.

La linea:

int d = (16-i/16)^2;

calcola l'inverso del quadrato della luminosità per determinare la lunghezza del ritardo.

Copia / incolla lo schizzo qui sotto nell'IDE di Arduino e vedrai che il LED si sbiadirà dentro e fuori a una velocità costante.

configurazione nulla()

{ pinMode(9, OUTPUT); } loop vuoto() { int x = 1; int pin = 9; for (int i = 0; i > -1; i = i + x) { int d = (16-i/16)^2; analogWrite(pin, i); ritardo(d); se (i == 255) x = -1; // cambia direzione al massimo } }

Consigliato: