Satura rādītājs:

LED spilgtuma kalibrēšana: 5 soļi
LED spilgtuma kalibrēšana: 5 soļi

Video: LED spilgtuma kalibrēšana: 5 soļi

Video: LED spilgtuma kalibrēšana: 5 soļi
Video: ТЕПЕРЬ НЕ ПРОПАДУ 10-ть самоделок ВЫРУЧАТ ГДЕ УГОДНО! 2024, Novembris
Anonim
LED spilgtuma kalibrēšana
LED spilgtuma kalibrēšana

Gatavojot pasaku gaismu, es sapratu, ka PWM vērtība ir nelineāri proporcionāla gaismas diodes spilgtumam. Vienkārši sakot, ja PWM vērtība ir divkārša, spilgtums nav divkāršs; īpaši, ja PWM ir tuvu maksimālajam, jebkuras izmaiņas pēc manām acīm nav atpazīstamas. Es domāju, ka tam vajadzētu būt vienkāršam kalibrēšanas jautājumam! un tā es izveidoju šo projektu! Ideja ir izmērīt gaismas diodes spilgtumu ar kādu ierīci (spilgtuma sensoru vai fotorezistoru) un atrast korelāciju starp PWM vērtību un spilgtumu. Tad vēlāk Ja es iestatīšu spilgtumu uz 50%, Arduino aprēķinās atbilstošo PWM un attiecīgi aptumšos LED.

Tāpēc man ir nepieciešams spilgtuma sensors un gaismas diode, lai izmērītu spilgtumu. Izmantojot SD karti, es saglabāšu datus vēlākai montāžas procedūrai. Montāža tiks veikta programmā Excel (vai jebkurā citā programmā). Izeja tiks izmantota Arduino kodā, un tas ir viss! Tas jādara vienreiz. Tad jūs varat izmantot kalibrēšanas parametru uz visiem laikiem!

1. darbība: detaļas

1- WEMOS mini D1: Aliexpress 3 €

2- TSL 2561 (Spilgtuma sensors): Aliexpress 3 €

3- SD kartes modulis: Aliexpress 1 €

4- LED

5- rezistors 220 omi

6- vadi

kopējās izmaksas: 8-10 €

2. solis: elektroinstalācija

Elektroinstalācija
Elektroinstalācija
Elektroinstalācija
Elektroinstalācija
Elektroinstalācija
Elektroinstalācija

SD kartes moduli un spilgtuma sensora vadus nevajadzētu mainīt (lielākā daļa no tiem). LED jābūt savienotam ar PWM tapu.

3. darbība: kods

Kods
Kods

Es apvienoju trīs kodu kodus:

SD karte: izmantots piemērs> SD> ReadWrite Arduino IDE

TSL 2561: izmantots Adafruit TSL2561 bibliotēkas piemērs (sensorapi); jūs to atradīsit piemēros, ja instalēsit bibliotēku (pieņemu, ka zināt, kā instalēt bibliotēku Arduino IDE).

LED izbalēšana: izmantotie piemēri> Analogs> izbalēšana

Kods pēc moduļu inicializācijas aptumšos gaismas diodi un nolasīs spilgtumu un saglabās to SD kartē. šādā veidā es apkopošu dažus datus kalibrēšanai.

Es mainīju katru kodu atbilstoši savām vajadzībām. pievienots galīgais kods.

Signālam vajadzētu izskatīties kā pievienotajam attēlam. Diemžēl es aizmirsu nofotografēties, tāpēc es to pārplānoju programmā Excel, lai parādītu, kā tam vajadzētu būt.

PIEZĪME: Es izmantoju wemo mini D1, nevis Arduino. kādu iemeslu dēļ, ko es nezinu, PWM ir no 0 līdz 1023. Arduino tam vajadzētu būt no 0 līdz 255. Ja vēlaties izmantot arduino kodu, jums par to jārūpējas (90. rinda).

4. solis: uzstādīšana un lietošana

Uzstādīšana un lietošana
Uzstādīšana un lietošana
Uzstādīšana un lietošana
Uzstādīšana un lietošana

pēc datu savākšanas atveru failu programmā Excel un uzzīmēju datus (apskatiet attēlu). pirmā kolonna ir PWM vērtība, bet otrā - lukss (sensora nolasījums, vienībai nav lielas nozīmes). Tāpēc uzzīmējiet luksu (y ass) pret PWM (x ass). Kā redzat, spilgtums ir lineāri proporcionāls PWM vērtībai. Es tam piestiprināju līniju.

Lai ievietotu līniju, rīkojieties šādi:

1- uzzīmējiet datus (ievietojiet> izkliedējiet diagrammu), es pieņemu, ka jūs zināt, kā to izdarīt.

2- ar peles labo pogu noklikšķiniet uz attēlotajiem datiem

3- noklikšķiniet uz tendenču līnijas.

4- (programmā Excel 2013) labajā pusē tiek parādīts panelis. Izvēlieties lineāru. Apakšā izvēlieties "parādīt vienādojumu diagrammā".

Lineārā attiecība atšķiras no manas uztveres. Tāpēc es domāju, ka starp manu uztveri un spilgtumu jābūt logaritmiskai sakarībai (tas ir vienkāršākais veids, kā man ienāca prātā!). Tāpēc es paņēmu piemērotības slīpumu. Pārtveršana nav svarīga, jo tā ir atkarīga no apkārtējā gaismas piesārņojuma! tā vietā es pievienoju 1. Tā kā Log10 (0) ir bezgalīgs. Tāpēc man ir nepieciešama pārtveršana, lai atrisinātu problēmu. Manā gadījumā vienādojums izskatās šādi:

y = Log10 (0,08 x +1), y ir spilgtums un x ir PWM vērtība (0-1023)

Es normalizēju vienādojumu līdz maksimālajai vērtībai. tad izejas signāls vienmēr ir no 0 līdz 100. šādā veidā es varu lūgt arduino noteiktu relatīvo spilgtumu, neņemot vērā maksimālo absolūto spilgtumu.

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

Tā kā arduino mana ievade ir relatīvais spilgtums, man ir jāpārkārto vienādojums x (PWM):

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

izmantojot šo vienādojumu kodā, mēs varam iegūt lineāras spilgtuma izmaiņas. Tātad jūs lūdzat arduino spilgtumu (y) no 0 līdz 100, un arduino aprēķina atbilstošo PWM vērtību. šādā veidā, ja spilgtums dubultojas, arī jūsu uztvere ir vienāda.

ja vēlaties to izmantot savā kodā, labāk pievienot šīs rindiņas:

spilgtums = 50; // procentos

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

analogWrite (ledpin, PWM);

PIEZĪME: normalizācija tiek veikta ar maksimālo PWM 1023 (Wemos mini D1). Arduino gadījumā PWM ir no 0 līdz 255. jums tas attiecīgi jāaprēķina.

2. PIEZĪME. Es pievienoju žurnāla lineāru diagrammu, lai parādītu, kā mūsu uztvere un PWM vērtība ir saistītas. to nevajadzētu izmantot montāžai!

5. darbība. Secinājums

kalibrēšana man darbojas labi. Ja PWM vērtības ir lielas, es redzu atšķirību. Iepriekš kā lielās vērtības es nevarēju redzēt aptumšošanas efektu. Būtībā lielākā daļa izmaiņu tika veiktas nelielā PWM diapazonā. tagad tas ir kalibrēts!

katrai gaismas diodei, īpaši dažādām krāsām, jābūt saviem kalibrēšanas parametriem. Tomēr es kalibrēju zilu gaismas diodi un izmantoju baltas gaismas diodes parametru, un rezultāts bija pieņemams. tāpēc varbūt jūs varat izmantot manu kalibrēšanas parametru, netraucējot sevi !!

Ieteicams: