Innholdsfortegnelse:
Video: Kalibrering av LED -lysstyrke: 5 trinn
2024 Forfatter: John Day | [email protected]. Sist endret: 2024-01-30 11:23
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
SD -kortmodul og lysstyrkesensorledninger bør ikke byttes (de fleste). LED bør kobles til en PWM -pin.
Trinn 3: 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
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:
ARDUINO ORP SENSOR KALIBRERING: 3 trinn
ARDUINO ORP SENSOR CALIBRATION: I denne opplæringen skal vi kalibrere Atlas Scientifics EZO ORP (oksidasjonsreduksjonspotensial) sensor ved hjelp av Arduino Uno. KALIBRERINGSTEORI Den viktigste delen av kalibrering er å se avlesningene under kalibreringsprosessen. Det er lett
ARDUINO OPPLØST OXYGEN SENSOR KALIBRERING: 4 trinn
ARDUINO OPPLØST OXYGEN SENSOR KALIBRERING: I denne opplæringen skal vi kalibrere Atlas Scientifics EZO oppløst oksygen (D.O) sensor ved hjelp av Arduino Uno. KALIBRERINGSTEORI Den viktigste delen av kalibrering er å se avlesningene under kalibreringsprosessen. Det er lettest å kalibrere
ARDUINO SALINITY SENSOR KALIBRERING: 9 trinn
ARDUINO SALINITY SENSOR CALIBRATION: I denne opplæringen skal vi kalibrere Atlas Scientifics EZO saltholdighet/konduktivitet K1.0 -sensor ved hjelp av Arduino Uno. KALIBRERINGSTEORI Den viktigste delen av kalibrering er å se avlesningene under kalibreringsprosessen. Det er lettest å
Hvordan lage en babymaskin med Arduino Nano, HX-711 lastcelle og OLED 128X64 -- Kalibrering av HX-711: 5 trinn
Hvordan lage en babymaskin med Arduino Nano, HX-711 lastcelle og OLED 128X64 || Kalibrering av HX-711: Hei Instructables, For noen dager siden ble jeg far til en søt baby?. Da jeg var på sykehus fant jeg ut at babyens vekt er så avgjørende for å overvåke babyens vekst. Så jeg har en idé? å lage en babyvektsmaskin av meg selv. i denne instruksjonsfulle jeg
6-akset sensormodul FSP200 Kalibrering og testing: 6 trinn
6-akset sensormodul FSP200 Kalibrering og testing: FSP200 er en 6-akset treghetsmåleenhetsprosessor som gir kurs- og retningsutgang. Den utfører en sammensmeltning av akselerometer og gyrosensorer for stabil og nøyaktig kurs og retning. FSP200 er egnet for bruk i robotpr