Innehållsförteckning:

Tona en LED in och ut: 3 steg
Tona en LED in och ut: 3 steg

Video: Tona en LED in och ut: 3 steg

Video: Tona en LED in och ut: 3 steg
Video: Нелогичная жизнь_Рассказ_Слушать 2024, November
Anonim
Tona en LED in och ut
Tona en LED in och ut

Följande steg är experiment för att illustrera hur lysdioder fungerar. De illustrerar hur man dämpar en LED i en jämn takt och hur man bleknar den in och ut.

Du kommer behöva:

  • Arduino (jag använde en duo)
  • Bakbord
  • 5 mm röd LED
  • 330 Ω motstånd (ej kritiskt 330-560 Ω fungerar.)
  • 22 Gauge Solid Hookup Wire

De delar som behövs för dessa experiment ingår i alla Arduino -startpaket.

Steg 1: Pulsmodulering förklarad

Pulsmodulering förklarad
Pulsmodulering förklarad
Pulsmodulering förklarad
Pulsmodulering förklarad
Pulsmodulering förklarad
Pulsmodulering förklarad

Lysdioder körs alltid med samma spänning oavsett ljusstyrka. Ljusstyrkan bestäms av en fyrkantvågoscillator och den tid som spänningen är hög avgör ljusstyrkan. Detta kallas Pulse Width Modulation (PWM). Detta styrs av Arduino analogWrite (pin, n) -funktionen där n har ett värde från 0 till 255. analogWrite () matar ut PWM, inte sann analog. Om n = 2 lyser lysdioden dubbelt så starkt som n = 1. Ljusstyrkan fördubblas alltid när n fördubblas. Så n = 255 blir dubbelt så ljus som n = 128.

Värdet på n uttrycks ofta som en procentsats som kallas arbetscykel. Bilderna visar oscilloskopspår för 25, 50 och 75% arbetscykler.

Steg 2: Ojämn dimning

Ojämn dimning
Ojämn dimning
Ojämn dimning
Ojämn dimning

Bygg kretsen som i diagrammet. Detta är precis som kretsen för att blinka en lysdiod. Den använder pin 9 eftersom du måste använda en PWM -aktiverad pin.

Kopiera/klistra in skissen nedan i Arduino IDE och kör den.

Du kommer att märka att ju ljusare LED -lampan är, desto långsammare dämpar den. När det närmar sig det svagaste kommer det att bli mörkare väldigt snabbt.

void setup ()

{pinMode (9, OUTPUT); } void loop () {int pin = 9; för (int i = 255; i> -1; i--) {analogWrite (pin, i); fördröjning (10); } för (int i = 0; i <256; i ++) {analogWrite (pin, i); fördröjning (10); }}

}

Nästa steg visar hur man dämpar lysdioden med en konstant hastighet, och i ett för uttalande.

Steg 3: Upp och ner i en för ()

För att lysdioden ska dimma med en konstant hastighet måste fördröjningen () öka med en exponentiell hastighet eftersom halva arbetscykeln alltid ger halva ljusstyrkan. Min första tanke var att försöka använda funktionen map () men det är linjärt.

Linjen:

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

beräknar ljusets inversa kvadrat för att bestämma fördröjningens längd.

Kopiera/klistra in skissen nedan i Arduino IDE så ser du att lysdioden kommer att blekna in och ut med en konstant hastighet.

void setup ()

{pinMode (9, OUTPUT); } void loop () {int x = 1; int pin = 9; för (int i = 0; i> -1; i = i + x) {int d = (16 -i/16)^2; analogWrite (pin, i); fördröjning (d); om (i == 255) x = -1; // växla riktning vid topp}}

Rekommenderad: