Sisällysluettelo:

LED -kirkkauden kalibrointi: 5 vaihetta
LED -kirkkauden kalibrointi: 5 vaihetta

Video: LED -kirkkauden kalibrointi: 5 vaihetta

Video: LED -kirkkauden kalibrointi: 5 vaihetta
Video: Meaning of 5 led lights on digital energy meter | revers light and earth light warning 2024, Marraskuu
Anonim
LED -kirkkauden kalibrointi
LED -kirkkauden kalibrointi

Kun tein keiju valoa, tajusin, että PWM-arvo on epälineaarisesti verrannollinen LEDin kirkkauteen. Yksinkertaisesti sanottuna, jos PWM -arvo on kaksinkertainen, kirkkaus ei ole kaksinkertainen; erityisesti kun PWM on lähellä maksimia, silmäni eivät tunnista mitään muutosta. Ajattelin, että sen pitäisi olla yksinkertainen kalibrointikysymys! ja näin tein tämän projektin! Ajatuksena on mitata LEDin kirkkaus jollakin laitteella (kirkkausanturi tai valoresistori) ja löytää korrelaatio PWM -arvon ja kirkkauden välillä. Sitten myöhemmin Jos asetan kirkkaudeksi 50%, Arduino laskee vastaavan PWM -arvon ja himmentää LEDin vastaavasti.

Siksi tarvitsen kirkkausanturin ja LEDin kirkkauden mittaamiseksi. Tallenna tiedot myöhempää asennusta varten SD -kortin avulla. Asennus suoritetaan Excelissä (tai muussa ohjelmassa). Out outia käytetään Arduino -koodissa, ja siinä se! Se on tehtävä kerran. Sitten voit käyttää kalibrointiparametria ikuisesti!

Vaihe 1: Osat

1- WEMOS mini D1: Aliexpress 3 €

2- TSL 2561 (kirkkausanturi): Aliexpress 3 €

3- SD-korttimoduuli: Aliexpress 1 €

4- LED

5- Vastus 220 ohmia

6- johdot

kokonaishinta: 8-10 €

Vaihe 2: Johdotus

Johdotus
Johdotus
Johdotus
Johdotus
Johdotus
Johdotus

SD -korttimoduulia ja kirkkausanturin johtoja ei saa vaihtaa (useimpia). Led on kytkettävä PWM -nastaan.

Vaihe 3: Koodi

Koodi
Koodi

Yhdistin kolme koodia:

SD -kortti: käytetty esimerkki> SD> ReadWrite Arduino IDE: ssä

TSL 2561: käytetty Adafruit TSL2561 -kirjaston esimerkki (sensorapi); löydät sen esimerkeistä, jos asennat kirjaston (oletan, että tiedät kuinka asentaa kirjasto Arduino IDE: hen).

LED -häipyminen: käytetyt esimerkit> Analoginen> häipyminen

Moduulien alustamisen jälkeen koodi himmentää ledin ja lukee kirkkauden ja tallentaa sen SD -kortille. tällä tavalla kerään tietoja kalibrointia varten.

Vaihdoin jokaisen koodin tarpeideni mukaan. lopullinen koodi liitteenä.

Signaalin pitäisi näyttää oheiselta kuvalta. Valitettavasti unohdin ottaa valokuvan, joten laitan sen uudelleen Exceliin näyttääkseni, kuinka sen pitäisi olla.

HUOMAUTUS: Käytän wemo mini D1: tä Arduinon sijasta. jostain syystä en tiedä, PWM on välillä 0 ja 1023. Arduinossa sen pitäisi olla välillä 0-255. Jos haluat käyttää arduino -koodia, sinun on huolehdittava siitä (rivi 90).

Vaihe 4: Asennus ja käyttö

Asennus ja käyttö
Asennus ja käyttö
Asennus ja käyttö
Asennus ja käyttö

Tietojen keräämisen jälkeen avasin tiedoston Excelissä ja piirtelin tiedot (katso kuvaa). ensimmäinen sarake on PWM -arvo ja toinen lux (anturin lukema, yksiköllä ei ole paljon väliä). Siksi piirrä lux (y-akseli) vs. PWM (x-akseli). Kuten näette, kirkkaus on lineaarisesti verrannollinen PWM -arvoon. Laitoin siihen linjan.

Sovita rivi seuraavasti:

1- piirtää tiedot (lisää> hajontakaavio), oletan, että tiedät miten.

2- Napsauta piirrettyjä tietoja hiiren kakkospainikkeella

3- Napsauta trendiviivaa.

4- (Excel 2013: ssa) oikealla puolella paneeli avautuu. Valitse lineaarinen. Valitse alareunasta "Näytä yhtälö kaaviossa".

Lineaarinen suhde eroaa käsityksestäni. Siksi mielestäni havaintoni ja kirkkauden välillä pitäisi olla logaritminen suhde (tämä on yksinkertaisin tapa, joka tuli mieleeni!). Joten otin sovituksen kaltevuuden. Sieppaus ei ole tärkeä, koska se riippuu ympäröivästä valosaasteesta! sen sijaan lisäsin 1. Koska Log10 (0) on ääretön. Tarvitsen siis sieppauksen ongelman ratkaisemiseksi. Minun tapauksessani yhtälö näyttää tältä:

y = Log10 (0,08 x +1), y on kirkkaus ja x on PWM-arvo (0-1023)

Normalisoin yhtälön maksimiarvoon. sitten lähtöäänet ovat aina välillä 0-100. tällä tavalla voin pyytää arduinolta tiettyä suhteellista kirkkautta ilman, että kyse on suurimmasta absoluuttisesta kirkkaudesta.

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

Koska arduinossa syöttöni on suhteellinen kirkkaus, minun on järjestettävä yhtälö x: lle (PWM) uudelleen:

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

käyttämällä tätä yhtälöä koodissa voimme saada lineaarisen kirkkauden muutoksen. Joten pyydät arduinolta kirkkautta (y) välillä 0-100 ja arduino laskee vastaavan PWM-arvon. tällä tavalla, jos kirkkaus kaksinkertaistuu, myös havaintosi on sama.

jos haluat käyttää sitä koodissasi, lisää nämä rivit:

kirkkaus = 50; // prosentteina

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

analogWrite (ledpin, PWM);

HUOMAUTUS: normalisointi suoritetaan enintään 1023 PWM: lle (Wemos mini D1). Arduinolle PWM on välillä 0-255. sinun on laskettava se sen mukaisesti.

HUOMAUTUS 2: Lisäsin log-lineaarisen kuvaajan osoittamaan, miten havaintomme ja PWM-arvo liittyvät toisiinsa. älä käytä sitä asennukseen!

Vaihe 5: Johtopäätös

kalibrointi toimii minulle hyvin. Kun PWM -arvot ovat suuret, näen eron. Ennen kuin suuret arvot, en voinut nähdä himmennyksen vaikutusta. Periaatteessa suurin osa muutoksista tehtiin pienellä PWM -alueella. nyt se on kalibroitu!

Jokaisella LEDillä, erityisesti eri väreillä, on oltava omat kalibrointiparametrit. Kalibroin kuitenkin sinisen LED -valon ja käytin parametria valkoiseen LED -valoon, ja tulos oli hyväksyttävä. joten ehkä voit käyttää kalibrointiparametriasi vaivaamatta itseäsi !!

Suositeltava: