Innholdsfortegnelse:

Fade en LED inn og ut: 3 trinn
Fade en LED inn og ut: 3 trinn

Video: Fade en LED inn og ut: 3 trinn

Video: Fade en LED inn og ut: 3 trinn
Video: Возведение перегородок санузла из блоков. Все этапы. #4 2024, Juli
Anonim
Fade en LED inn og ut
Fade en LED inn og ut

Følgende trinn er eksperimenter for å illustrere hvordan lysdioder fungerer. De illustrerer hvordan du kan dempe en LED i en jevn hastighet og hvordan du kan fade den inn og ut.

Du vil trenge:

  • Arduino (jeg brukte en duo)
  • Brødbrett
  • 5 mm rød LED
  • 330 Ω motstand (ikke kritisk 330-560 Ω vil fungere.)
  • 22 Gauge Solid Hookup Wire

Delene som trengs for disse eksperimentene er inkludert i alle oppstartssettene for Arduino.

Trinn 1: Pulsmodulering forklart

Pulsmodulasjon forklart
Pulsmodulasjon forklart
Pulsmodulasjon forklart
Pulsmodulasjon forklart
Pulsmodulasjon forklart
Pulsmodulasjon forklart

Lysdioder kjører alltid med samme spenning uavhengig av lysstyrken. Lysstyrken bestemmes av en firkantbølge -oscillator, og hvor lang tid spenningen er høy avgjør lysstyrken. Dette kalles Pulse Width Modulation (PWM). Dette styres av Arduino analogWrite (pin, n) -funksjonen der n har en verdi fra 0 til 255. analogWrite () sender ut PWM, ikke sann analog. Hvis n = 2 vil lysdioden være dobbelt så sterk som n = 1. Lysstyrken dobles alltid når n dobler. Så n = 255 vil være dobbelt så lyst som n = 128.

Verdien av n er ofte uttrykt som en prosentandel som kalles duty cycle. Bildene viser oscilloskopspor for 25, 50 og 75% driftssykluser.

Trinn 2: Ujevn demping

Ujevn demping
Ujevn demping
Ujevn demping
Ujevn demping

Bygg kretsen som i diagrammet. Dette er akkurat som kretsen for å blinke en LED. Den bruker pin 9 fordi du må bruke en PWM -aktivert pin.

Kopier/lim inn skissen nedenfor i Arduino IDE og kjør den.

Du vil merke at jo lysere LED -lampen er, jo saktere dempes den. Når det nærmer seg det svakeste, vil det bli svakere veldig fort.

ugyldig oppsett ()

{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 neste trinnet viser hvordan du dæmper LED -en med en konstant hastighet, og i en for uttalelse.

Trinn 3: Opp og ned i ett for ()

For at LED -en skal dimme med en konstant hastighet, må forsinkelsen () øke med en eksponensiell hastighet fordi halve driftssyklusen alltid gir halvparten av lysstyrken. Min første tanke var å prøve å bruke kartfunksjonen (), men den er lineær.

Køen:

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

beregner den inverse firkanten av lysstyrken for å bestemme lengden på forsinkelsen.

Kopier/lim inn skissen nedenfor i Arduino IDE, og du vil se at lysdioden vil falme inn og ut med en konstant hastighet.

ugyldig oppsett ()

{pinMode (9, OUTPUT); } hulrom () {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; // bytt retning på topp}}

Anbefalt: