Taula de continguts:

Fade un LED d'entrada i sortida: 3 passos
Fade un LED d'entrada i sortida: 3 passos

Vídeo: Fade un LED d'entrada i sortida: 3 passos

Vídeo: Fade un LED d'entrada i sortida: 3 passos
Vídeo: Беслан. Помни / Beslan. Remember (english & español subs) 2024, Desembre
Anonim
Fadeu un LED d’entrada i sortida
Fadeu un LED d’entrada i sortida

Els passos següents són experiments per il·lustrar el funcionament dels LED. Il·lustren com atenuar un LED a un ritme uniforme i com esvair-lo dins i fora.

Necessitarà:

  • Arduino (he utilitzat un duo)
  • Taula de pa
  • LED vermell de 5 mm
  • Resistència de 330 Ω (funcionarà 330-560 Ω no crític).
  • Fil de connexió sòlid de calibre 22

Les parts necessàries per a aquests experiments s’inclouen a tots els kits d’Arduino.

Pas 1: explicació de la modulació del pols

Modulació de pols explicada
Modulació de pols explicada
Explica la modulació del pols
Explica la modulació del pols
Modulació de pols explicada
Modulació de pols explicada

Els LED sempre funcionen al mateix voltatge independentment de la brillantor. La brillantor està determinada per un oscil·lador d’ones quadrades i la quantitat de temps que el voltatge és alt determina la brillantor. Això s’anomena modulació d’amplada de pols (PWM). Això està controlat per la funció Arduino analogWrite (pin, n) on n té un valor de 0 a 255. L'analogWrite () emet PWM, no analògic veritable. Si n = 2, el LED serà el doble de brillant que n = 1. La brillantor sempre es duplica quan n es duplica. Així doncs, n = 255 serà el doble de brillant que n = 128.

El valor de n sol expressar-se com un percentatge anomenat cicle de treball. Les imatges mostren traces de l’oscil·loscopi durant 25, 50 i 75% de cicles de treball.

Pas 2: atenuació uniforme

Disminució uniforme
Disminució uniforme
Disminució uniforme
Disminució uniforme

Construeix el circuit com en el diagrama. Això és igual que el circuit per parpellejar un LED. Utilitza el pin 9 perquè heu d’utilitzar un pin habilitat per a PWM.

Copieu / enganxeu l'esbós següent a l'IDE Arduino i executeu-lo.

Notareu que com més brillant sigui el LED, més lent es va enfosquint. A mesura que s'aproximi al més feble, es tornarà més feble.

configuració nul·la ()

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

}

El següent pas mostra com atenuar el LED a una velocitat constant i en un de sentència.

Pas 3: amunt i avall en un per a ()

Perquè el LED s'enfosqueixi a una velocitat constant, el retard () ha d'augmentar a una velocitat exponencial perquè la meitat del cicle de treball sempre produirà la meitat de la brillantor. El meu primer pensament va ser intentar utilitzar la funció map (), però és lineal.

La línia:

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

calcula el quadrat invers de la brillantor per determinar la durada del retard.

Copieu / enganxeu l’esbós següent a l’IDE Arduino i veureu que el LED s’esvairà a una velocitat constant.

configuració nul·la ()

{pinMode (9, OUTPUT); } bucle buit () {int x = 1; int pin = 9; for (int i = 0; i> -1; i = i + x) {int d = (16-i / 16) ^ 2; analogWrite (pin, i); retard (d); if (i == 255) x = -1; // canviar la direcció al màxim}}

Recomanat: