Tartalomjegyzék:

A LED fényerejének kalibrálása: 5 lépés
A LED fényerejének kalibrálása: 5 lépés

Videó: A LED fényerejének kalibrálása: 5 lépés

Videó: A LED fényerejének kalibrálása: 5 lépés
Videó: POR PÁRAMENTES LED LÁMPATEST raktár, műhely világítás! Típusok, beépítés, fényerő teszt! 2024, November
Anonim
A LED fényerő kalibrálása
A LED fényerő kalibrálása

Miközben tündérfényt készítettem, rájöttem, hogy a PWM érték nem lineárisan arányos a LED fényerejével. Egyszerűen szólva, ha a PWM érték kétszeres, a fényerő nem kétszeres; Különösen akkor, ha a PWM közel van a maximumhoz, a szemem nem ismer fel semmilyen változást. Azt hittem, egyszerű kalibrálási kérdésnek kell lennie! és így készítettem el ezt a projektet! Az ötlet az, hogy megmérjük a LED fényerejét valamilyen eszközzel (fényerő -érzékelő vagy fotorezisztor), és korrelációt találunk a PWM -érték és a fényerő között. Majd később Ha a fényerőt 50%-ra állítom, az Arduino kiszámítja a megfelelő PWM -et, és ennek megfelelően elhalványítja a LED -et.

Ezért fényerő -érzékelőre és LED -re van szükségem a fényerő méréséhez. SD -kártya használatával elmentem az adatokat a későbbi szereléshez. Az illesztés Excelben (vagy bármely más programban) történik. A kimenetet Arduino kódban fogják használni, és ennyi! Ezt egyszer kell elvégezni. Ezután örökre használhatja a kalibrációs paramétert!

1. lépés: Alkatrészek

1- WEMOS mini D1: Aliexpress 3 €

2- TSL 2561 (fényerő-érzékelő): Aliexpress 3 €

3- SD kártya modul: Aliexpress 1 €

4- LED

5- Ellenállás 220 ohm

6- vezetékek

teljes költség: 8-10 €

2. lépés: Kábelezés

Vezeték
Vezeték
Vezeték
Vezeték
Vezeték
Vezeték

Az SD kártya modul és a fényerő -érzékelő vezetékeit nem szabad kicserélni (legtöbbjük). A LED -et egy PWM csaphoz kell csatlakoztatni.

3. lépés: Kód

Kód
Kód

Három kódot kombináltam:

SD -kártya: használt példa> SD> ReadWrite az Arduino IDE -ben

TSL 2561: használt Adafruit TSL2561 könyvtári példa (sensorapi); példákban találja meg, ha telepíti a könyvtárat (feltételezem, hogy tudja, hogyan kell könyvtárat telepíteni az Arduino IDE -ben).

LED -fakulás: használt példák> Analóg> fakulás

A kód a modulok inicializálása után elhalványítja a LED -et, leolvassa a fényerőt, és elmenti SD -kártyára. így összegyűjtök néhány adatot a kalibráláshoz.

Minden kódot igényeimnek megfelelően változtattam. mellékelt végső kód.

A jelnek a mellékelt képen kell kinéznie. Sajnos elfelejtettem lefotózni, ezért újraterveztem az Excel -ben, hogy megmutassam, hogyan kell.

MEGJEGYZÉS: A wu mini D1 -et használom Arduino helyett. valamiért, amit nem tudok, a PWM 0 és 1023 között van. Arduino-ban 0-255 között kell lennie. Ha az arduino kódját szeretné használni, vigyázzon rá (90. sor).

4. lépés: Szerelés és használat

Illesztés és használat
Illesztés és használat
Illesztés és használat
Illesztés és használat

adatgyűjtés után Excelben megnyitottam a fájlt, és ábrázoltam az adatokat (nézd meg a képet). az első oszlop a PWM érték, a második pedig a lux (az érzékelő leolvasása, az egység nem sokat számít). Ezért ábrázolja a luxot (y tengely) vs. PWM (x tengely). Mint látható, a fényerő lineárisan arányos a PWM értékkel. Illesztettem rá egy sort.

Egy sor illesztéséhez kövesse az alábbiakat:

1- ábrázolja az adatokat (illessze be> szórja le a diagramot), feltételezem, hogy tudja, hogyan.

2- kattintson a jobb gombbal az ábrázolt adatokra

3- kattintson a trendvonalra.

4- (Excel 2013-ban) a jobb oldalon megjelenik egy panel. Válasszon lineárisat. Alul válassza a "megjelenítési egyenlet a diagramon" lehetőséget.

A lineáris összefüggés eltér az én felfogásomtól. Ezért azt gondolom, hogy logaritmikus összefüggésnek kell lennie az észlelésem és a fényerő között (ez a legegyszerűbb módja jutott eszembe!). Szóval vettem az illeszkedés lejtőjét. Az elfogás nem fontos, mert a környező fényszennyezéstől függ! helyette hozzáadtam az 1. Mivel a Log10 (0) végtelen. Tehát szükségem van egy lehallgatásra a probléma megoldásához. Esetemben az egyenlet így néz ki:

y = Log10 (0,08 x +1), y a fényerő és x a PWM érték (0-1023)

Normalizáltam az egyenletet a maximális értékre. akkor a kimeneti csengetés mindig 0-100 között van. így az arduino -tól kérhetek bizonyos relatív fényerőt, a maximális abszolút fényerő nélkül.

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

Mivel az arduino-ban a bemenetem a relatív fényerő, át kell rendeznem az x (PWM) egyenletét:

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

ezt az egyenletet használva a kódban lineáris fényerő -változást kaphatunk. Tehát az arduino-tól 0-100 közötti fényerőt (y) kér, és az arduino kiszámítja a megfelelő PWM értéket. ily módon, ha megduplázza a fényerőt, az észlelése is ugyanaz.

Ha ezt szeretné használni a kódjában, akkor jobb, ha hozzáadja ezeket a sorokat:

fényerő = 50; // százalékban

PWM = pow (10, fényerő*1,914/100) -1)/0,7979;

analogWrite (ledpin, PWM);

MEGJEGYZÉS: a normalizálás legfeljebb 1023 PWM esetén történik (Wemos mini D1 esetén). Az Arduino esetében a PWM 0-255 között van. ennek megfelelően kell kiszámítania.

2. MEGJEGYZÉS: Hozzáadtam egy log-lineáris diagramot, hogy megmutassam, hogyan függ össze észlelésünk és PWM értékünk. szerelésre nem szabad használni!

5. lépés: Következtetés

nekem jól működik a kalibrálás. Ha nagy a PWM érték, látom a különbséget. Korábban nagy értékként nem láttam a tompítás hatását. A változtatások nagy része alapvetően a PWM kis tartományában történt. most kalibrálva van!

minden LED -nek, különösen a különböző színeknek, saját kalibrálási paraméterekkel kell rendelkeznie. Azonban kalibráltam egy kék LED -et, és a paramétert egy fehér LED -re használtam, és az eredmény elfogadható volt. így talán használhatja a kalibrálási paramétereimet anélkül, hogy zavarná magát !!

Ajánlott: