Obsah:

Kalibrace jasu LED: 5 kroků
Kalibrace jasu LED: 5 kroků

Video: Kalibrace jasu LED: 5 kroků

Video: Kalibrace jasu LED: 5 kroků
Video: ESP32 Tutorial 5 - LED Fade, control brightness of an LED -ESP32 IoT Learnig kit 2024, Listopad
Anonim
Kalibrace jasu LED
Kalibrace jasu LED

Když jsem dělal pohádkové světlo, uvědomil jsem si, že hodnota PWM je nelineárně úměrná jasu LED. Jednoduše řečeno, pokud je hodnota PWM dvojnásobná, jas není dvojnásobný; zvláště když je PWM blízko maxima, žádnou změnu moje oči nepoznají. Myslel jsem, že by to měl být jednoduchý problém s kalibrací! a takhle jsem vytvořil tento projekt! Cílem je změřit jas LED pomocí nějakého zařízení (snímač svítivosti nebo fotorezistor) a najít korelaci mezi hodnotou PWM a jasem. Potom později Pokud nastavím jas na 50%, Arduino vypočítá odpovídající PWM a podle toho ztlumí LED.

K měření jasu proto potřebuji senzor svítivosti a LED. Pomocí karty SD uložím data pro pozdější postup montáže. Přizpůsobení bude provedeno v aplikaci Excel (nebo jiném programu). Out put bude použit v kódu Arduino, a je to! Mělo by se to udělat jednou. Pak můžete kalibrační parametr používat navždy!

Krok 1: Díly

1- WEMOS mini D1: Aliexpress 3 €

2- TSL 2561 (senzor svítivosti): Aliexpress 3 €

3- Modul karty SD: Aliexpress 1 €

4- LED

5- Rezistor 220 ohmů

6- dráty

celkové náklady: 8 -10 €

Krok 2: Zapojení

Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení
Elektrické vedení

Dráty modulu karty SD a senzoru jasu by neměly být měněny (většina z nich). LED by mělo být připojeno ke kolíku PWM.

Krok 3: Kód

Kód
Kód

Zkombinoval jsem tři kusy kódů:

Karta SD: použitý příklad> SD> ReadWrite v Arduino IDE

TSL 2561: použitý příklad knihovny Adafruit TSL2561 (sensorapi); najdete to v příkladech, pokud nainstalujete knihovnu (předpokládám, že víte, jak nainstalovat knihovnu v Arduino IDE).

LED fading: used examples> Analog> fading

Kód po inicializaci modulů ztlumí LED a načte jas a uloží jej na kartu SD. tímto způsobem shromáždím nějaká data pro kalibraci.

Změnil jsem každý kód podle svých potřeb. připojen konečný kód.

Signál by měl vypadat jako na přiloženém obrázku. Bohužel jsem zapomněl pořídit fotografii, a tak ji znovu načtu v Excelu, abych vám ukázal, jak by to mělo být.

POZNÁMKA: Používám wemo mini D1 místo Arduina. z nějakého důvodu, který nevím, je PWM mezi 0 a 1023. V Arduinu by to mělo být mezi 0-255. Pokud chcete použít kód pro arduino, měli byste se o to postarat (řádek 90).

Krok 4: Montáž a používání

Montáž a používání
Montáž a používání
Montáž a používání
Montáž a používání

po sběru dat jsem soubor otevřel v excelu a data vykreslil (podívejte se na obrázek). první sloupec je hodnota PWM a druhý je lux (čtení senzoru, na jednotce moc nezáleží). Proto vykreslete lux (osa y) vs. PWM (osa x). Jak vidíte, jas je lineárně úměrný hodnotě PWM. Namontoval jsem k tomu linku.

Chcete -li vložit řádek, postupujte takto:

1- vykreslete data (vložte> bodový graf) Předpokládám, že víte jak.

2- klikněte pravým tlačítkem na vykreslená data

3- klikněte na trendovou čáru.

4- (v aplikaci Excel 2013) na pravé straně vyskočí panel. Vyberte lineární. V dolní části vyberte „zobrazit rovnici na grafu“.

Lineární vztah se liší od mého vnímání. Proto si myslím, že by měl existovat logaritmický vztah mezi mým vnímáním a jasem (to je nejjednodušší způsob, který mě napadl!). Vzal jsem tedy svah fit. Zachycení není důležité, protože závisí na okolním světelném znečištění! místo toho jsem přidal 1. Protože Log10 (0) je nekonečný. K vyřešení problému tedy potřebuji zachytit. V mém případě vypadá rovnice takto:

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

Normalizoval jsem rovnici na maximální hodnotu. pak je výstupní rozsah vždy mezi 0-100. tímto způsobem mohu požádat arduino o určitý relativní jas, bez ohledu na maximální absolutní jas.

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

Protože v Arduinu je můj vstup relativní jas, potřebuji znovu uspořádat rovnici pro x (PWM):

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

pomocí této rovnice v kódu jsme schopni získat lineární změnu jasu. Požádáte tedy arduino o jas (y) mezi 0-100 a arduino vypočítá odpovídající hodnotu PWM. tímto způsobem, pokud zdvojnásobíte jas, vaše vnímání je také stejné.

pokud jej chcete použít ve svém kódu, je lepší přidat následující řádky:

jas = 50; // v procentech

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

analogWrite (ledpin, PWM);

POZNÁMKA: normalizace se provádí pro maximální PWM 1023 (pro Wemos mini D1). U Arduina je PWM mezi 0-255. podle toho to musíš vypočítat.

POZNÁMKA 2: Přidal jsem log-lineární graf, abych ukázal, jak spolu souvisí naše vnímání a hodnota PWM. neměli byste jej používat k montáži!

Krok 5: Závěr

kalibrace mi funguje dobře. Když jsou hodnoty PWM velké, vidím rozdíl. Dříve jako velké hodnoty jsem neviděl účinek stmívání. V zásadě byla většina změn provedena v malém rozsahu PWM. nyní je to kalibrováno!

každá LED, zvláště jiné barvy, by měla mít své vlastní kalibrační parametry. Nicméně jsem zkalibroval modrou LED a použil parametr pro bílou LED a výsledek byl přijatelný. takže možná můžete použít můj kalibrační parametr, aniž byste se obtěžovali !!

Doporučuje: