Innholdsfortegnelse:

Kalibrering av LED -lysstyrke: 5 trinn
Kalibrering av LED -lysstyrke: 5 trinn

Video: Kalibrering av LED -lysstyrke: 5 trinn

Video: Kalibrering av LED -lysstyrke: 5 trinn
Video: 5 Способов монтажа ламината на стену. Разбираем от А до Я. Выбираем самый лучший 2024, November
Anonim
Kalibrering av LED -lysstyrke
Kalibrering av LED -lysstyrke

Mens jeg laget et eventyrlys, innså jeg at PWM-verdien er ikke-lineært proporsjonal med lysstyrken til LED-en. Enkelt sagt, hvis PWM -verdien er dobbel, er lysstyrken ikke dobbel; spesielt når PWM er nær maksimum, gjenkjennes ikke noen endring i mine øyne. Jeg tenkte at det burde være et enkelt kalibreringsproblem! og det var slik jeg laget dette prosjektet! Tanken er å måle lysstyrken til en LED med en eller annen enhet (lysstyrkesensor eller fotoresistor) og finne en sammenheng mellom PWM -verdi og lysstyrken. Så senere Hvis jeg setter lysstyrken til 50%, vil Arduino beregne den tilsvarende PWM og dempe LED -en tilsvarende.

Derfor trenger jeg en lysstyrkesensor og en LED for å måle lysstyrken. Ved å bruke et SD -kort, lagrer jeg dataene for senere montering. Tilpasningen gjøres i Excel (eller et annet program). Out -puten vil bli brukt i Arduino -koden, og det er det! Det bør gjøres en gang. Deretter kan du bruke kalibreringsparameteren for alltid!

Trinn 1: Deler

1- WEMOS mini D1: Aliexpress 3 €

2- TSL 2561 (Luminosity sensor): Aliexpress 3 €

3- SD-kortmodul: Aliexpress 1 €

4- LED

5- Motstand 220 ohm

6- ledninger

totalkostnad: 8-10 €

Trinn 2: Kabling

Kabling
Kabling
Kabling
Kabling
Kabling
Kabling

SD -kortmodul og lysstyrkesensorledninger bør ikke byttes (de fleste). LED bør kobles til en PWM -pin.

Trinn 3: Kode

Kode
Kode

Jeg kombinerte tre koder:

SD -kort: brukt eksempel> SD> ReadWrite i Arduino IDE

TSL 2561: brukt Adafruit TSL2561 bibliotekseksempel (sensorapi); du finner det i eksempler, hvis du installerer biblioteket (jeg antar at du vet hvordan du installerer et bibliotek i Arduino IDE).

LED -fading: brukte eksempler> Analog> fading

Koden, etter å ha initialisert modulene, vil dimme lysdioden og lese lysstyrken og lagre den på SD -kort. på denne måten vil jeg samle inn noen data for kalibrering.

Jeg endret hver av koden i henhold til mine behov. den endelige koden vedlagt.

Signalet skal se ut som det vedlagte bildet. Dessverre glemte jeg å ta et bilde, så jeg plasserte det på nytt i excel for å vise deg hvordan det skal være.

MERK: Jeg bruker wemo mini D1 i stedet for Arduino. av en eller annen grunn som jeg ikke vet, er PWM mellom 0 og 1023. I Arduino burde det være mellom 0-255. Hvis du vil bruke koden for arduino, bør du ta vare på den (linje 90).

Trinn 4: Montering og bruk

Montering og bruk
Montering og bruk
Montering og bruk
Montering og bruk

etter å ha samlet data, åpnet jeg filen i excel og plottet dataene (se på bildet). den første kolonnen er PWM -verdi og den andre er lux (lesing av sensoren, enheten spiller ingen rolle). Plott derfor lux (y-aksen) mot PWM (x-aksen). Som du kan se er lysstyrken lineært proporsjonal med PWM -verdien. Jeg satte en linje på den.

Følg som følger for å passe en linje:

1- plott dataene (sett inn> spred plott) jeg antar at du vet hvordan.

2- høyreklikk på plottet data

3- klikk på trendlinjen.

4- (i excel 2013) på høyre side dukker det opp et panel. Velg lineær. Velg "visningsligning på diagrammet" nederst.

Det lineære forholdet er forskjellig fra min oppfatning. Derfor tror jeg at det burde være en logaritmisk sammenheng mellom min oppfatning og lysstyrken (dette er den enkleste måten jeg tenkte på!). Så jeg tok skråningen på passformen. Avskjæringen er ikke viktig, fordi den avhenger av lysforurensningen rundt! i stedet la jeg til 1. Fordi Log10 (0) er uendelig. Så jeg trenger en avskjæring for å løse problemet. I mitt tilfelle ser ligningen slik ut:

y = Log10 (0,08 x +1), y er lysstyrken og x er PWM-verdien (0-1023)

Jeg normaliserte ligningen til maksimalverdi. da er utgangssignalet alltid mellom 0-100. på denne måten kan jeg be arduino om en viss relativ lysstyrke, uten å angi maksimal absolutt lysstyrke.

y = Log10 (0,08 x +1)*100/1,914

Fordi i arduino min inngang er den relative lysstyrken, må jeg omorganisere ligningen for x (PWM):

x = (10^(y*1.914 / 100) - 1) / 0.08

ved å bruke denne ligningen i koden kan vi få en lineær lysstyrkeendring. Så du spør arduino om en lysstyrke (y) mellom 0-100, og arduino beregner den tilsvarende PWM-verdien. på denne måten, hvis doble lysstyrken, er din oppfatning også den samme.

Hvis du vil bruke den i koden din, er det bedre å legge til disse linjene:

lysstyrke = 50; // i prosent

PWM = pow (10, lysstyrke*1.914/100) -1) /0.0793;

analogWrite (ledpin, PWM);

MERK: normaliseringen utføres for en maksimal PWM på 1023 (for Wemos mini D1). For Arduino er PWM mellom 0-255. du må beregne det deretter.

NOTE2: Jeg la til et logg-lineært plott for å vise hvordan vår oppfatning og PWM-verdi er relatert. du bør ikke bruke den til montering!

Trinn 5: Konklusjon

kalibreringen fungerer bra for meg. Når PWM -verdiene er store, kan jeg se forskjellen. Før som de store verdiene kunne jeg ikke se effekten av dimming. I utgangspunktet ble de fleste endringene gjort i et lite utvalg av PWM. nå er det kalibrert!

hver LED, spesielt forskjellige farger, bør ha sine egne kalibreringsparametere. Imidlertid kalibrerte jeg en blå LED og brukte parameteren for en hvit LED, og resultatet var akseptabelt. så kanskje du kan bruke kalibreringsparameteren min uten å plage deg selv !!

Anbefalt: