Indholdsfortegnelse:

Fade en LED ind og ud: 3 trin
Fade en LED ind og ud: 3 trin

Video: Fade en LED ind og ud: 3 trin

Video: Fade en LED ind og ud: 3 trin
Video: LED Fading Using Arduino Uno #diy #electronics #arduino #uno #nano #led 2024, Juli
Anonim
Fade en LED ind og ud
Fade en LED ind og ud

Følgende trin er eksperimenter for at illustrere, hvordan lysdioder fungerer. De illustrerer, hvordan man dæmper en LED i en jævn hastighed, og hvordan man falmer den ind og ud.

Du får brug for:

  • Arduino (jeg brugte en duo)
  • Brødbræt
  • 5 mm rød LED
  • 330 Ω modstand (ikke kritisk 330-560 Ω virker.)
  • 22 Gauge Solid Hookup Wire

De dele, der er nødvendige til disse eksperimenter, er inkluderet i alle Arduino -opstartssæt.

Trin 1: Pulsmodulering forklaret

Pulsmodulering forklaret
Pulsmodulering forklaret
Pulsmodulering forklaret
Pulsmodulering forklaret
Pulsmodulering forklaret
Pulsmodulering forklaret

Lysdioder kører altid med den samme spænding uanset lysstyrken. Lysstyrken bestemmes af en firkantbølgeoscillator, og den tid, spændingen er høj, bestemmer lysstyrken. Dette kaldes Pulse Width Modulation (PWM). Dette styres af Arduino analogWrite (pin, n) funktion, hvor n har en værdi fra 0 til 255. analogWrite () udsender PWM, ikke sand analog. Hvis n = 2 vil LED'en være dobbelt så skarp som n = 1. Lysstyrken fordobles altid, når n fordobles. Så n = 255 vil være dobbelt så lyst som n = 128.

Værdien af n udtrykkes ofte som en procentdel, der kaldes duty cycle. Billederne viser oscilloskopspor for 25, 50 og 75% driftscyklusser.

Trin 2: Ujævn dæmpning

Ujævn dæmpning
Ujævn dæmpning
Ujævn dæmpning
Ujævn dæmpning

Byg kredsløbet som i diagrammet. Dette er ligesom kredsløbet til at blinke en LED. Den bruger pin 9, fordi du skal bruge en PWM -aktiveret pin.

Kopier/indsæt nedenstående skitse i Arduino IDE og kør den.

Du vil bemærke, at jo lysere LED'en er, jo langsommere dæmpes den. Når det nærmer sig det svageste, bliver det meget svagere meget hurtigt.

ugyldig opsætning ()

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

}

Det næste trin viser, hvordan man dæmper LED'en med en konstant hastighed, og i en til erklæring.

Trin 3: Op og ned i én til ()

For at LED'en skal dæmpe med en konstant hastighed, skal forsinkelsen () stige med en eksponentiel hastighed, fordi halvdelen af driftscyklussen altid vil producere halvdelen af lysstyrken. Min første tanke var at prøve at bruge funktionen map (), men det er lineært.

Linjen:

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

beregner den inverse firkant af lysstyrken for at bestemme forsinkelsens længde.

Kopier/indsæt nedenstående skitse i Arduino IDE, og du vil se, at LED'en vil falme ind og ud med en konstant hastighed.

ugyldig opsætning ()

{pinMode (9, OUTPUT); } hulrum () {int x = 1; int pin = 9; for (int i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; analogWrite (pin, i); forsinkelse (d); hvis (i == 255) x = -1; // skift retning i spidsen}}

Anbefalede: