Sisukord:

LED -heleduse kalibreerimine: 5 sammu
LED -heleduse kalibreerimine: 5 sammu

Video: LED -heleduse kalibreerimine: 5 sammu

Video: LED -heleduse kalibreerimine: 5 sammu
Video: Сравниваем Ксенон и LED лампы! V2 2024, November
Anonim
LED -heleduse kalibreerimine
LED -heleduse kalibreerimine

Haldjavalgust tehes mõistsin, et PWM väärtus on mittelineaarselt võrdeline LED-i heledusega. Lihtsamalt öeldes, kui PWM väärtus on kahekordne, pole heledus kahekordne; eriti kui PWM on maksimumilähedane, ei näe minu silmis ära ühtegi muutust. Ma arvasin, et see peaks olema lihtne kalibreerimisprobleem! ja nii ma selle projekti tegin! Idee on mõõta mõne seadmega (heledusandur või fototakisti) LED -i heledust ja leida korrelatsioon PWM -väärtuse ja heleduse vahel. Kui hiljem määran heleduseks 50%, arvutab Arduino vastava PWM -i ja hämardab LED -i vastavalt.

Seetõttu vajan heleduse andurit ja heleduse mõõtmiseks LED -i. Salvestan SD -kaardi abil andmed hilisemaks paigaldamiseks. Paigaldamine toimub Excelis (või mõnes muus programmis). Väljastust kasutatakse Arduino koodis ja see on kõik! Seda tuleks teha üks kord. Seejärel saate kalibreerimisparameetrit igavesti kasutada!

Samm: osad

1- WEMOS mini D1: Aliexpress 3 €

2- TSL 2561 (heledusandur): Aliexpress 3 €

3- SD-kaardi moodul: Aliexpress 1 €

4- LED

5- takisti 220 oomi

6- juhtmed

kogumaksumus: 8-10 €

2. samm: juhtmestik

Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik
Juhtmestik

SD -kaardi moodulit ja heledusanduri juhtmeid ei tohiks vahetada (enamik neist). Led tuleb ühendada PWM tihvtiga.

3. samm: kood

Kood
Kood

Kombineerisin kolm koodi:

SD -kaart: kasutatud näide> SD> ReadWrite Arduino IDE -s

TSL 2561: kasutatud Adafruit TSL2561 raamatukogu näide (sensorapi); leiate selle näidetest, kui installite kogu (eeldan, et teate, kuidas Arduino IDE -s raamatukogu installida).

LED -tuhmumine: kasutatud näited> Analoog> tuhmumine

Pärast moodulite lähtestamist kustutab kood LED -i ja loeb heledust ning salvestab selle SD -kaardile. sel viisil kogun ma kalibreerimiseks mõned andmed.

Muutsin iga koodi vastavalt oma vajadustele. lisatud lõplik kood.

Signaal peaks välja nägema nagu lisatud pilt. Kahjuks unustasin foto teha, nii et panin selle Excelis ümber, et näidata teile, kuidas see peaks olema.

MÄRKUS. Kasutan Arduino asemel wemo mini D1. mingil põhjusel, mida ma ei tea, on PWM vahemikus 0–1023. Arduinos peaks see olema vahemikus 0–255. Kui soovite arduino jaoks koodi kasutada, peaksite selle eest hoolitsema (rida 90).

Samm: paigaldamine ja kasutamine

Paigaldamine ja kasutamine
Paigaldamine ja kasutamine
Paigaldamine ja kasutamine
Paigaldamine ja kasutamine

pärast andmete kogumist avasin faili Excelis ja joonistasin andmed (vaata pilti). esimene veerg on PWM väärtus ja teine lux (anduri näit, seadmel pole suurt tähtsust). Seetõttu joonistage lux (y-telg) vs PWM (x-telg). Nagu näete, on heledus lineaarselt proportsionaalne PWM väärtusega. Paigaldasin sellele joone.

Joone sobitamiseks toimige järgmiselt.

1- joonistage andmed (sisestage> hajutage graafik), eeldan, et teate, kuidas.

2- paremklõpsake joonistatud andmeid

3- klõpsake trendijoonel.

4- (Excel 2013) paremal küljel avaneb paneel. Valige lineaarne. Valige allosas "Kuva võrrand diagrammil".

Lineaarne seos erineb minu arusaamast. Seetõttu arvan, et minu taju ja heleduse vahel peaks olema logaritmiline seos (see on kõige lihtsam viis, mis mulle pähe tuli!). Nii et võtsin sobivuse nõlva. Lõikamine pole oluline, sest see sõltub ümbritsevast valgusreostusest! selle asemel lisasin 1. Kuna Log10 (0) on lõpmatu. Seega vajan probleemi lahendamiseks pealtkuulamist. Minu puhul näeb võrrand välja selline:

y = Log10 (0,08 x +1), y on heledus ja x on PWM väärtus (0-1023)

Normaliseerisin võrrandi maksimaalse väärtuseni. siis on väljund alati vahemikus 0-100. sel viisil saan arduinolt küsida teatud suhtelist heledust, ilma et see puudutaks maksimaalset absoluutset heledust.

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

Kuna arduino puhul on minu sisendiks suhteline heledus, pean x (PWM) võrrandi ümber korraldama:

x = (10^(y*1,914 / 100) - 1) / 0,08

kasutades seda võrrandit koodis, saame heleduse lineaarse muutuse. Seega küsite arduinolt heledust (y) vahemikus 0-100 ja arduino arvutab vastava PWM väärtuse. sel viisil, kui heledus kahekordistub, on ka teie taju sama.

kui soovite seda oma koodis kasutada, lisage parem need read:

heledus = 50; // protsentides

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

analogWrite (ledpin, PWM);

MÄRKUS: normaliseerimine toimub maksimaalse PWM -i puhul 1023 (Wemos mini D1). Arduino puhul on PWM vahemikus 0–255. peate selle vastavalt arvutama.

MÄRKUS 2: Lisasin log-lineaarse graafiku, et näidata, kuidas meie taju ja PWM väärtus on seotud. te ei tohiks seda paigaldamiseks kasutada!

5. samm: järeldus

kalibreerimine sobib mulle hästi. Kui PWM väärtused on suured, näen erinevust. Enne kui suured väärtused, ei näinud ma hämardamise mõju. Põhimõtteliselt tehti enamik muudatusi väikeses PWM -i vahemikus. nüüd on see kalibreeritud!

igal LED -il, eriti erinevat värvi, peaks olema oma kalibreerimisparameetrid. Kuid ma kalibreerisin sinise LED -i ja kasutasin valge LED -i parameetrit ning tulemus oli vastuvõetav. nii et äkki saate minu kalibreerimisparameetrit kasutada, ilma et peaksite ennast tülitama !!

Soovitan: