Obsah:

Kalibrácia jasu LED: 5 krokov
Kalibrácia jasu LED: 5 krokov

Video: Kalibrácia jasu LED: 5 krokov

Video: Kalibrácia jasu LED: 5 krokov
Video: Zigbee LED контроллер C01Z - для диммируемых светильников, обзор и тестирование 2024, November
Anonim
Kalibrácia jasu LED
Kalibrácia jasu LED

Keď som robil rozprávkové svetlo, uvedomil som si, že hodnota PWM je nelineárne úmerná jasu LED. Jednoducho povedané, ak je hodnota PWM dvojnásobná, jas nie je dvojnásobný; zvlášť keď je PWM blízko maxima, žiadna zmena nie je mojimi očami rozpoznateľná. Myslel som si, že by to mal byť jednoduchý problém s kalibráciou! a takto som urobil tento projekt! Cieľom je zmerať jas LED pomocou nejakého zariadenia (snímač svietivosti alebo fotorezistor) a nájsť koreláciu medzi hodnotou PWM a jasom. Potom neskôr Ak nastavím jas na 50%, Arduino vypočíta zodpovedajúci PWM a podľa toho stlmí LED.

Na meranie jasu preto potrebujem senzor svietivosti a LED diódu. Použitím karty SD uložím údaje pre neskorší postup montáže. Prispôsobenie sa vykoná v programe Excel (alebo v inom programe). Výstup bude použitý v kóde Arduino, a to je všetko! Malo by sa to urobiť raz. Potom môžete kalibračný parameter používať navždy!

Krok 1: Diely

1- WEMOS mini D1: Aliexpress 3 €

2- TSL 2561 (senzor svietivosti): Aliexpress 3 €

3- Modul karty SD: Aliexpress 1 €

4- LED

5- Rezistor 220 ohm

6- drôty

celkové náklady: 8 -10 €

Krok 2: Zapojenie

Elektrické vedenie
Elektrické vedenie
Elektrické vedenie
Elektrické vedenie
Elektrické vedenie
Elektrické vedenie

Káble modulu karty SD a senzora jasu by ste nemali meniť (väčšina z nich). LED dióda by mala byť pripojená k kolíku PWM.

Krok 3: Kód

Kód
Kód

Skombinoval som tri kódy:

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

TSL 2561: použitý príklad knižnice Adafruit TSL2561 Library (sensorapi); nájdete to v príkladoch, ak nainštalujete knižnicu (predpokladám, že viete, ako nainštalovať knižnicu v Arduino IDE).

LED blednutie: použité príklady> Analógové> vyblednutie

Kód po inicializácii modulov stlmí LED diódu a bude čítať jas a uloží ho na kartu SD. týmto spôsobom zhromaždím niekoľko údajov na kalibráciu.

Každý z kódov som zmenil podľa svojich potrieb. priložený konečný kód.

Signál by mal vyzerať ako na priloženom obrázku. Žiaľ, zabudol som odfotiť, a tak ho v Exceli vykreslím, aby som vám ukázal, ako by to malo byť.

POZNÁMKA: Používam wemo mini D1 namiesto Arduina. z nejakého dôvodu, ktorý neviem, je PWM medzi 0 a 1023. V Arduine by to malo byť medzi 0-255. Ak chcete kód použiť pre arduino, mali by ste sa o to postarať (riadok 90).

Krok 4: Prispôsobenie a používanie

Montáž a používanie
Montáž a používanie
Montáž a používanie
Montáž a používanie

po zozbieraní údajov som súbor otvoril v programe Excel a údaje vykreslil (pozrite sa na obrázok). prvý stĺpec je hodnota PWM a druhý je lux (čítanie senzora, na jednotke veľmi nezáleží). Preto vykreslite lux (os y) vs. PWM (os x). Ako vidíte, jas je lineárne úmerný hodnote PWM. Namontoval som k tomu linku.

Ak chcete vložiť riadok, postupujte takto:

1- vykreslite údaje (vložte> bodový graf), predpokladám, že viete ako.

2- kliknite pravým tlačidlom na vykreslené údaje

3- kliknite na trendovú čiaru.

4- (v programe Excel 2013) na pravej strane vyskočí panel. Vyberte lineárne. V spodnej časti zvoľte „zobraziť rovnicu na grafe“.

Lineárny vzťah sa líši od môjho vnímania. Preto si myslím, že medzi mojím vnímaním a jasom by mal existovať logaritmický vzťah (toto je najjednoduchší spôsob, ako ma napadol!). Vzal som teda sklon fitka. Intercept nie je dôležitý, pretože závisí od okolitého svetelného znečistenia! namiesto toho som pridal 1. Pretože Log10 (0) je nekonečný. Na vyriešenie problému teda potrebujem zachytenie. V mojom prípade rovnica vyzerá takto:

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

Rovnicu som normalizoval na maximálnu hodnotu. potom je výstupný rozsah vždy medzi 0-100. týmto spôsobom môžem požiadať arduino o určitý relatívny jas, bez ohľadu na maximálny absolútny jas.

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

Pretože v arduine je mojím vstupom relatívny jas, musím znova usporiadať rovnicu pre x (PWM):

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

pomocou tejto rovnice v kóde sme schopní získať lineárnu zmenu jasu. Požiadate teda arduino o jas (y) medzi 0-100 a arduino vypočíta zodpovedajúcu hodnotu PWM. týmto spôsobom, ak zdvojnásobíte jas, vaše vnímanie je tiež rovnaké.

ak ho chcete použiť vo svojom kóde, je lepšie pridať tieto riadky:

jas = 50; // v percentách

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

analogWrite (ledpin, PWM);

POZNÁMKA: Normalizácia sa robí pre maximálny PWM 1023 (pre Wemos mini D1). Pre Arduino je PWM medzi 0-255. podľa toho to musíš vypočítať.

POZNÁMKA 2: Pridal som log-lineárny graf, aby som ukázal, ako spolu súvisí naše vnímanie a hodnota PWM. nemali by ste ho používať na montáž!

Krok 5: Záver

kalibrácia mi funguje dobre. Keď sú hodnoty PWM veľké, vidím rozdiel. Predtým ako veľké hodnoty som nevidel efekt stmievania. V podstate väčšina zmien bola vykonaná v malom rozsahu PWM. teraz je to kalibrované!

každá dióda LED, špeciálne odlišné farby, by mala mať svoje vlastné kalibračné parametre. Kalibroval som však modrú LED a použil som parameter pre bielu LED a výsledok bol prijateľný. takže možno môžete použiť môj kalibračný parameter bez toho, aby ste sa obťažovali !!

Odporúča: