Sadržaj:

Kalibriranje svjetline LED svjetla: 5 koraka
Kalibriranje svjetline LED svjetla: 5 koraka

Video: Kalibriranje svjetline LED svjetla: 5 koraka

Video: Kalibriranje svjetline LED svjetla: 5 koraka
Video: Povezivanje RGB LED trake s napajanjem, dimerom i kontrolerom: Kreativna rasvjeta za vaš prostor 2024, Studeni
Anonim
Kalibriranje svjetline LED diode
Kalibriranje svjetline LED diode

Dok sam pravio vilinsko svjetlo, shvatio sam da je vrijednost PWM-a nelinearno proporcionalna svjetlini LED-a. Jednostavno rečeno, ako je vrijednost PWM -a dvostruka, svjetlina nije dvostruka; pogotovo kad je PWM blizu maksimuma, bilo kakva promjena nije prepoznatljiva po mojim očima. Mislio sam da bi to trebao biti jednostavan problem kalibracije! i tako sam napravio ovaj projekt! Ideja je izmjeriti svjetlinu LED diode nekim uređajem (osjetnikom svjetline ili fotootpornikom) i pronaći korelaciju između vrijednosti PWM -a i svjetline. Kasnije, ako postavim svjetlinu na 50%, Arduino će izračunati odgovarajuću PWM i prema tome prigušiti LED.

Stoga mi je potreban senzor za svjetlinu i LED za mjerenje svjetline. Pomoću SD kartice spremit ću podatke za kasniji postupak ugradnje. Podešavanje će se izvršiti u Excelu (ili bilo kojem drugom programu). Out out će se koristiti u Arduino kodu, i to je to! To bi trebalo učiniti jednom. Tada možete zauvijek koristiti kalibracijski parametar!

Korak 1: Dijelovi

1- WEMOS mini D1: Aliexpress 3 €

2- TSL 2561 (osjetnik svjetline): Aliexpress 3 €

3- Modul SD kartice: Aliexpress 1 €

4- LED

5- Otpornik 220 ohma

6- žice

ukupni trošak: 8 -10 €

Korak 2: Ožičenje

Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje
Ožičenje

Modul SD kartice i žice osjetnika svjetline ne smiju se mijenjati (većina njih). Led bi trebao biti spojen na PWM pin.

Korak 3: Kodirajte

Kodirati
Kodirati

Kombinirao sam tri koda:

SD kartica: korišteni primjer> SD> ReadWrite u Arduino IDE -u

TSL 2561: korišteno Adafruit TSL2561 Primjer knjižnice (sensorapi); naći ćete ga u primjerima, ako instalirate knjižnicu (pretpostavljam da znate kako instalirati knjižnicu u Arduino IDE).

LED blijeđenje: korišteni primjeri> Analogni> blijeđenje

Kod će, nakon inicijalizacije modula, zatamniti LED diodu i pročitati svjetlinu te je spremiti na SD karticu. na ovaj način prikupit ću neke podatke za kalibraciju.

Promijenio sam svaki kod prema svojim potrebama. konačni kod u prilogu.

Signal bi trebao izgledati kao priložena slika. Nažalost, zaboravio sam snimiti fotografiju pa sam je ponovo postavio u excelu kako bih vam pokazao kako bi to trebalo biti.

NAPOMENA: Koristim wemo mini D1 umjesto Arduina. iz nekog razloga koji ne znam, PWM je između 0 i 1023. U Arduinu bi trebao biti između 0-255. Ako želite koristiti kôd za arduino, trebali biste se pobrinuti za to (redak 90).

Korak 4: Ugradnja i upotreba

Uklapanje i korištenje
Uklapanje i korištenje
Uklapanje i korištenje
Uklapanje i korištenje

nakon prikupljanja podataka otvorio sam datoteku u excelu i iscrtao podatke (pogledajte sliku). prvi stupac je PWM vrijednost, a drugi lux (očitavanje senzora, jedinica nije važna). Stoga, ucrtajte lux (y-os) u odnosu na PWM (x-os). Kao što vidite, svjetlina je linearno proporcionalna vrijednosti PWM -a. Ugradio sam mu liniju.

Da biste uklopili liniju, slijedite ove upute:

1- iscrtajte podatke (umetnite> raspršivanje) pretpostavljam da znate kako.

2- desnim klikom na iscrtane podatke

3- kliknite na liniju trenda.

4- (u excelu 2013) na desnoj strani pojavljuje se ploča. Odaberite linearno. Pri dnu odaberite "prikaz jednadžbe na grafikonu".

Linearni odnos je drugačiji od moje percepcije. Stoga mislim da bi trebao postojati logaritamski odnos između moje percepcije i svjetline (ovo je najjednostavniji način koji mi je pao na pamet!). Pa sam uzeo nagib stane. Presretanje nije važno, jer ovisi o okolnom svjetlosnom zagađenju! umjesto toga, dodao sam 1. Budući da je Log10 (0) beskonačan. Zato mi je potrebno presretanje za rješavanje problema. U mom slučaju jednadžba izgleda ovako:

y = Log10 (0,08 x +1), y je svjetlina, a x vrijednost PWM-a (0-1023)

Normalizirao sam jednadžbu na maksimalnu vrijednost. tada je izlaz zvonio uvijek između 0-100. na ovaj način mogu od arduina zatražiti određenu relativnu svjetlinu, bez obzira na maksimalnu apsolutnu svjetlinu.

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

Budući da je u arduinu moj unos relativna svjetlina, moram preurediti jednadžbu za x (PWM):

x = (10^(y*1.914 / 100) - 1) / 0.08

pomoću ove jednadžbe u kodu možemo dobiti linearnu promjenu svjetline. Zato tražite od arduina svjetlinu (y) između 0-100, a arduino izračunava odgovarajuću vrijednost PWM-a. na ovaj način, ako je svjetlina dvostruka, vaša percepcija je također ista.

ako ga želite koristiti u svom kodu, bolje dodajte ove retke:

svjetlina = 50; // u postocima

PWM = pow (10, svjetlina*1.914/100) -1) /0.0793;

analogWrite (ledpin, PWM);

NAPOMENA: normalizacija se vrši za maksimalni PWM od 1023 (za Wemos mini D1). Za Arduino PWM je između 0-255. morate to izračunati u skladu s tim.

NAPOMENA 2: Dodao sam log-linearni dijagram kako bih pokazao kako su naša percepcija i PWM vrijednost povezane. ne smijete ga koristiti za ugradnju!

Korak 5: Zaključak

kalibracija mi dobro radi. Kad su vrijednosti PWM -a velike, mogu vidjeti razliku. Prije kao velike vrijednosti nisam mogao vidjeti učinak zatamnjenja. U osnovi je većina promjena izvršena u malom rasponu PWM -a. sada je kalibrirano!

svaka LED, posebno različite boje, mora imati vlastite kalibracijske parametre. Međutim, kalibrirao sam plavu LED i upotrijebio parametar za bijelu LED i rezultat je bio prihvatljiv. pa možda možete koristiti moj kalibracijski parametar bez da se gnjavite !!

Preporučeni: