Innehållsförteckning:

Kalibrering av LED -ljusstyrka: 5 steg
Kalibrering av LED -ljusstyrka: 5 steg

Video: Kalibrering av LED -ljusstyrka: 5 steg

Video: Kalibrering av LED -ljusstyrka: 5 steg
Video: Kalibrering av luftflödesmätare 2024, November
Anonim
Kalibrering av LED -ljusstyrka
Kalibrering av LED -ljusstyrka

Medan jag gjorde ett sagoljus insåg jag att PWM-värdet är olinjärt proportionellt mot lysdiodens ljusstyrka. Enkelt sagt, om PWM -värdet är dubbelt så är ljusstyrkan inte dubbel; speciellt när PWM är nära maximalt känns alla förändringar inte igen i mina ögon. Jag tänkte att det borde vara en enkel kalibreringsfråga! och det var så jag gjorde det här projektet! Tanken är att mäta ljusstyrkan på en LED med någon enhet (ljussensor eller fotoresistor) och hitta ett samband mellan PWM -värde och ljusstyrkan. Senare om jag ställer in ljusstyrkan till 50%kommer Arduino att beräkna motsvarande PWM och dämpa lysdioden därefter.

Därför behöver jag en ljussensor och en LED för att mäta ljusstyrkan. Med ett SD -kort kommer jag att spara data för senare montering. Monteringen görs i Excel (eller något annat program). Out put kommer att användas i Arduino -kod, och det är det! Det bör göras en gång. Då kan du använda kalibreringsparametern för alltid!

Steg 1: Delar

1- WEMOS mini D1: Aliexpress 3 €

2- TSL 2561 (Ljussensor): Aliexpress 3 €

3- SD-kortmodul: Aliexpress 1 €

4- LED

5- Motstånd 220 ohm

6- trådar

totalkostnad: 8-10 €

Steg 2: Kabeldragning

Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning
Kabeldragning

SD -kortmodul och ljussensorns ledningar bör inte bytas (de flesta). Led bör anslutas till en PWM -stift.

Steg 3: Kod

Koda
Koda

Jag kombinerade tre koder:

SD -kort: använt exempel> SD> ReadWrite i Arduino IDE

TSL 2561: använt Adafruit TSL2561 biblioteksexempel (sensorapi); du hittar det i exempel om du installerar biblioteket (jag antar att du vet hur du installerar ett bibliotek i Arduino IDE).

LED -blekning: använda exempel> Analog> blekning

Koden, efter att ha initierat modulerna, kommer att dämpa lysdioden och läsa ljusstyrkan och spara den på SD -kort. på detta sätt kommer jag att samla in lite data för kalibrering.

Jag ändrade var och en av koden enligt mina behov. den slutliga koden bifogad.

Signalen ska se ut som den bifogade bilden. Tyvärr glömde jag att ta ett foto så jag repoterade det i excel för att visa dig hur det ska vara.

OBS: Jag använder wemo mini D1 istället för Arduino. av någon anledning som jag inte vet är PWM mellan 0 och 1023. I Arduino borde det vara mellan 0-255. Om du vill använda koden för arduino bör du ta hand om den (rad 90).

Steg 4: Montering och användning

Montering och användning
Montering och användning
Montering och användning
Montering och användning

efter att ha samlat in data öppnade jag filen i excel och plottade data (titta på bilden). den första kolumnen är PWM -värde och den andra är lux (avläsning av sensorn, enheten spelar ingen roll). Plotta därför lux (y-axel) kontra PWM (x-axel). Som du kan se är ljusstyrkan linjärt proportionell mot PWM -värdet. Jag satte en linje på den.

För att passa en rad följer du:

1- plotta upp data (infoga> sprid plot) jag antar att du vet hur.

2- högerklicka på den plottade informationen

3- klicka på trendlinjen.

4- (i excel 2013) på höger sida dyker en panel upp. Välj linjärt. Längst ner väljer du "visa ekvation på diagram".

Den linjära relationen skiljer sig från min uppfattning. Därför tycker jag att det borde finnas ett logaritmiskt förhållande mellan min uppfattning och ljusstyrkan (det här är det enklaste sättet jag tänkte på!). Så jag tog passformens lutning. Interceptet är inte viktigt, eftersom det beror på omgivande ljusföroreningar! istället lade jag till 1. Eftersom Log10 (0) är oändligt. Så jag behöver en avlyssning för att lösa problemet. I mitt fall ser ekvationen ut så här:

y = Log10 (0,08 x +1), y är ljusstyrkan och x är PWM-värdet (0-1023)

Jag normaliserade ekvationen till maxvärdet. då är utgångssignalen alltid mellan 0-100. på detta sätt kan jag be arduino om en viss relativ ljusstyrka, utan att beröra den maximala absoluta ljusstyrkan.

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

Eftersom min ingång är den relativa ljusstyrkan i arduino måste jag omordna ekvationen för x (PWM):

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

med denna ekvation i koden kan vi få en linjär ljusstyrka. Så du ber arduino om en ljusstyrka (y) mellan 0-100, och arduino beräknar motsvarande PWM-värde. på detta sätt, om dubbelt så mycket ljusstyrka, är din uppfattning också densamma.

om du vill använda den i din kod är det bättre att lägga till dessa rader:

ljusstyrka = 50; // i procent

PWM = pow (10, ljusstyrka*1,914/100) -1)/0,0793;

analogWrite (ledpin, PWM);

OBS: normaliseringen görs för en maximal PWM på 1023 (för Wemos mini D1). För Arduino är PWM mellan 0-255. du måste beräkna det därefter.

NOTE2: Jag lade till en logglinjär plot för att visa hur vår uppfattning och PWM-värde är relaterade. du ska inte använda den för montering!

Steg 5: Slutsats

kalibreringen fungerar bra för mig. När PWM -värdena är stora kan jag se skillnaden. Förut som de stora värdena kunde jag inte se effekten av dimning. I grund och botten gjordes de flesta ändringarna i ett litet PWM -område. nu är det kalibrerat!

varje LED, speciellt olika färger, bör ha sina egna kalibreringsparametrar. Men jag kalibrerade en blå lysdiod och använde parametern för en vit lysdiod och resultatet var acceptabelt. så kanske du kan använda min kalibreringsparameter utan att störa dig !!

Rekommenderad: