Turinys:

LED šviesumo kalibravimas: 5 žingsniai
LED šviesumo kalibravimas: 5 žingsniai

Video: LED šviesumo kalibravimas: 5 žingsniai

Video: LED šviesumo kalibravimas: 5 žingsniai
Video: [Apžvalga] Didžiulis rinkinys Arduino pradedančiajam. 1 dalis 2024, Lapkritis
Anonim
LED šviesumo kalibravimas
LED šviesumo kalibravimas

Kurdamas pasakų šviesą supratau, kad PWM vertė yra netiesiškai proporcinga šviesos diodo ryškumui. Paprasčiau tariant, jei PWM vertė yra dviguba, ryškumas nėra dvigubas; ypač kai PWM yra artimas maksimumui, mano akys neatpažįsta jokių pokyčių. Maniau, kad tai turėtų būti paprastas kalibravimo klausimas! ir aš taip sukūriau šį projektą! Idėja yra išmatuoti šviesos diodo ryškumą naudojant tam tikrą prietaisą (šviesumo jutiklį ar fotorezistorių) ir rasti koreliaciją tarp PWM vertės ir ryškumo. Vėliau, jei nustatysiu 50%ryškumą, „Arduino“apskaičiuos atitinkamą PWM ir atitinkamai pritemdys šviesos diodą.

Todėl man reikia šviesumo jutiklio ir šviesos diodo, kad būtų galima išmatuoti ryškumą. Naudodamas SD kortelę, išsaugosiu duomenis vėlesnei montavimo procedūrai. Montavimas bus atliekamas naudojant „Excel“(arba bet kurią kitą programą). Išvestis bus naudojama „Arduino“kodu, ir viskas! Tai reikia padaryti vieną kartą. Tada galite naudoti kalibravimo parametrą amžinai!

1 žingsnis: dalys

1- „WEMOS mini D1“: „Aliexpress“3 €

2- TSL 2561 (šviesumo jutiklis): „Aliexpress“3 €

3- SD kortelės modulis: „Aliexpress“1 €

4- LED

5- rezistorius 220 omų

6- laidai

Bendra kaina: 8-10 eurų

2 žingsnis: laidų prijungimas

Laidai
Laidai
Laidai
Laidai
Laidai
Laidai

SD kortelės modulio ir šviesumo jutiklio laidų keisti negalima (dauguma jų). LED turi būti prijungtas prie PWM kaiščio.

3 žingsnis: kodas

Kodas
Kodas

Aš sujungiau tris kodus:

SD kortelė: naudojamas pavyzdys> SD> „ReadWrite“„Arduino IDE“

TSL 2561: naudojamas „Adafruit TSL2561“bibliotekos pavyzdys (sensorapi); tai rasite pavyzdžiuose, jei įdiegsite biblioteką (manau, jūs žinote, kaip įdiegti biblioteką „Arduino IDE“).

Šviesos diodų išblukimas: naudojami pavyzdžiai> Analoginis> išblukimas

Kodas, inicijavus modulius, pritemdys šviesos diodą ir perskaitys ryškumą bei išsaugos jį SD kortelėje. tokiu būdu surinksiu kai kuriuos duomenis kalibravimui.

Aš pakeičiau kiekvieną kodą pagal savo poreikius. pridedamas galutinis kodas.

Signalas turėtų atrodyti kaip pridėtas paveikslėlis. Deja, užmiršau nufotografuoti, todėl perskaičiau ją „Excel“, kad parodyčiau, kaip turėtų būti.

PASTABA: Aš naudoju „wemo mini D1“, o ne „Arduino“. dėl kokių nors priežasčių aš nežinau, PWM yra nuo 0 iki 1023. Arduino mieste jis turėtų būti nuo 0 iki 255. Jei norite naudoti arduino kodą, turėtumėte juo pasirūpinti (90 eilutė).

4 žingsnis: montavimas ir naudojimas

Montavimas ir naudojimas
Montavimas ir naudojimas
Montavimas ir naudojimas
Montavimas ir naudojimas

surinkęs duomenis, atidariau failą „Excel“ir nubraižiau duomenis (pažiūrėkite į paveikslėlį). pirmasis stulpelis yra PWM vertė, o antrasis - liuksas (jutiklio rodmenys, įrenginys neturi didelės reikšmės). Todėl pavaizduokite liuksą (y ašis) ir PWM (x ašis). Kaip matote, ryškumas yra tiesiškai proporcingas PWM vertei. Aš pritvirtinau prie jo eilutę.

Norėdami sutalpinti eilutę, atlikite šiuos veiksmus:

1- nubraižykite duomenis (įterpkite> išsklaidykite), manau, jūs žinote, kaip tai padaryti.

2- dešiniuoju pelės mygtuku spustelėkite nubrėžtus duomenis

3- spustelėkite tendencijos liniją.

4- („Excel 2013“) dešinėje pusėje pasirodo skydelis. Pasirinkite linijinį. Apačioje pasirinkite „Rodyti lygtį diagramoje“.

Tiesinis ryšys skiriasi nuo mano suvokimo. Todėl manau, kad tarp mano suvokimo ir ryškumo turėtų būti logaritminis ryšys (tai paprasčiausias būdas, kuris man atėjo į galvą!). Taigi aš paėmiau tinkamumo nuolydį. Sulaikymas nėra svarbus, nes tai priklauso nuo aplinkinės šviesos taršos! vietoj to pridėjau 1. Kadangi Log10 (0) yra begalinis. Taigi man reikia perėmimo, kad galėčiau išspręsti problemą. Mano atveju lygtis atrodo taip:

y = Log10 (0,08 x +1), y yra ryškumas ir x yra PWM reikšmė (0-1023)

Aš normalizavau lygtį iki didžiausios vertės. tada išėjimo diapazonas visada yra nuo 0 iki 100. tokiu būdu galiu paprašyti arduino tam tikro santykinio ryškumo, neatsižvelgdamas į maksimalų absoliutų ryškumą.

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

Kadangi „arduino“mano įvestis yra santykinis ryškumas, turiu iš naujo sutvarkyti x (PWM) lygtį:

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

naudojant šią kodo lygtį galime gauti linijinį ryškumo pokytį. Taigi jūs prašote arduino ryškumo (y) nuo 0 iki 100, o arduino apskaičiuoja atitinkamą PWM vertę. tokiu būdu, jei ryškumas dvigubai didesnis, jūsų suvokimas taip pat yra tas pats.

jei norite jį naudoti savo kode, geriau pridėkite šias eilutes:

ryškumas = 50; // procentais

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

analogWrite (ledpin, PWM);

PASTABA: normalizuojama, kai maksimalus PWM yra 1023 („Wemos mini D1“). „Arduino“PWM yra nuo 0 iki 255. reikia atitinkamai apskaičiuoti.

PASTABA 2: Aš pridėjau žurnalo linijinį grafiką, kad parodytų, kaip mūsų suvokimas ir PWM vertė yra susiję. neturėtumėte jo naudoti montavimui!

5 žingsnis: Išvada

kalibravimas man tinka. Kai PWM vertės yra didelės, matau skirtumą. Anksčiau kaip didelės vertės nemačiau pritemdymo efekto. Iš esmės dauguma pakeitimų buvo atlikti nedideliame PWM diapazone. dabar tai kalibruota!

kiekvienas šviesos diodas, ypač skirtingų spalvų, turi turėti savo kalibravimo parametrus. Tačiau aš kalibravau mėlyną šviesos diodą ir naudojau baltos šviesos diodo parametrą, o rezultatas buvo priimtinas. taigi gal galite naudoti mano kalibravimo parametrą nesivargindami savęs !!

Rekomenduojamas: