LED լուսավորության ճշգրտում `5 քայլ
LED լուսավորության ճշգրտում `5 քայլ
Anonim
LED պայծառության ճշգրտում
LED պայծառության ճշգրտում

Մինչ ես հեքիաթային լույս էի բացում, հասկացա, որ PWM արժեքը ոչ գծային համեմատական է LED- ի պայծառությանը: Պարզ ասած, եթե PWM արժեքը կրկնակի է, պայծառությունը կրկնակի չէ. հատկապես, երբ PWM- ն առավելագույնին մոտ է, ցանկացած փոփոխություն իմ աչքերով ճանաչելի չէ: Ես մտածեցի, որ դա պետք է լինի պարզ ստուգաչափման խնդիր: և այդպես էլ պատրաստեցի այս նախագիծը: Գաղափարն այն է, որ LED- ի պայծառությունը որոշ սարքով (լուսավորության սենսոր կամ ֆոտոռեզիստոր) չափել և գտնել հարաբերակցություն PWM արժեքի և պայծառության միջև: Հետագայում, եթե պայծառությունը սահմանեմ 50%, Arduino- ն կհաշվարկի համապատասխան PWM- ը և համապատասխանաբար կթուլացնի LED- ը:

Հետևաբար, ինձ անհրաժեշտ է լուսավորության սենսոր և լուսադիոդ `պայծառությունը չափելու համար: Օգտագործելով SD քարտ, ես տվյալները կպահեմ հետագա տեղադրման ընթացակարգի համար: Հարմարեցումը կկատարվի Excel- ում (կամ որևէ այլ ծրագրով): Ելքը դրված է օգտագործվելու Arduino կոդի մեջ, և վերջ: Դա պետք է արվի մեկ անգամ: Այնուհետև կարող եք հավիտյան օգտագործել ստուգաչափման պարամետրը:

Քայլ 1: Մասեր

1- WEMOS mini D1. Aliexpress 3 €

2- TSL 2561 (Լուսավորության սենսոր). Aliexpress 3 €

3- SD քարտի մոդուլ ՝ Aliexpress 1 €

4- LED

5- Ռեզիստոր 220 օմ

6- լարեր

ընդհանուր արժեքը `8-10 €

Քայլ 2: Լարերի տեղադրում

Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր
Հաղորդալարեր

SD քարտի մոդուլի և լուսավորության սենսորի լարերը չպետք է փոխվեն (դրանցից շատերը): Led- ը պետք է միացված լինի PWM կապին:

Քայլ 3: Կոդ

Կոդ
Կոդ

Ես համատեղեցի երեք կտոր կոդ.

SD քարտ. Օգտագործված օրինակ> SD> ReadWrite Arduino IDE- ում

TSL 2561. Օգտագործված Adafruit TSL2561 գրադարանի օրինակ (sensorapi); այն կգտնեք օրինակներում, եթե տեղադրեք գրադարանը (ենթադրում եմ, որ դուք գիտեք, թե ինչպես տեղադրել գրադարան Arduino IDE- ում):

LED- ի մարում. Օգտագործված օրինակներ> Անալոգային> մարում

Մոդուլները նախաստորագրելուց հետո ծածկագիրը կթուլացնի led- ը և կկարդա պայծառությունը և կպահի այն SD քարտում: այս կերպ ես որոշ տվյալներ կհավաքեմ ստուգաչափման համար:

Ես փոխեցի ծածկագրերից յուրաքանչյուրը ՝ ըստ իմ կարիքների: կցվում է վերջնական ծածկագիրը:

Ազդանշանը պետք է նման լինի կցված նկարին: Unfortunatelyավոք, ես մոռացա լուսանկարել, ուստի այն վերափոխեցի Excel- ում ՝ ցույց տալու համար, թե ինչպես պետք է լինի:

Նշում. Ես օգտագործում եմ wemo mini D1- ը Arduino- ի փոխարեն: ինչ-ինչ պատճառներով, որոնք ես չգիտեմ, PWM- ը 0-ից 1023-ի միջև է: Arduino- ում այն պետք է լինի 0-255-ի միջև: Եթե ցանկանում եք օգտագործել arduino- ի կոդը, ապա պետք է հոգ տանել դրա մասին (տող 90):

Քայլ 4: Հարմարեցում և օգտագործում

Հարմարեցում և օգտագործում
Հարմարեցում և օգտագործում
Հարմարեցում և օգտագործում
Հարմարեցում և օգտագործում

տվյալների հավաքումից հետո ես բացեցի ֆայլը Excel- ում և գծեցի տվյալները (նայեք նկարին): առաջին սյունակը PWM արժեք է, իսկ երկրորդը `լյուքս (սենսորի ընթերցում, միավորը մեծ նշանակություն չունի): Հետևաբար, լյուքս (y- առանցք) ընդդեմ PWM (x- առանցքի): Ինչպես տեսնում եք, պայծառությունը գծային համեմատական է PWM արժեքին: Ես դրան մի տող եմ հարմարեցրել:

Գիծը տեղավորելու համար հետևեք հետևյալին.

1- գծագրեք տվյալները (տեղադրեք> ցրման գծապատկեր) ենթադրում եմ, որ դուք գիտեք, թե ինչպես:

2- աջ սեղմեք գծագրված տվյալների վրա

3- կտտացրեք trendline- ին:

4- (Excel 2013-ում) աջ կողմում հայտնվում է վահանակ: Ընտրեք գծային: Ստորև ընտրեք «ցուցադրել հավասարումը գծապատկերում»:

Գծային հարաբերությունը տարբերվում է իմ ընկալումից: Հետևաբար, ես կարծում եմ, որ իմ ընկալման և պայծառության միջև պետք է լինի լոգարիթմական հարաբերություն (սա իմ մտքով անցած ամենապարզ միջոցն է): Այսպիսով, ես վերցրեցի պիտանիության թեքությունը: Ընդհատումը կարևոր չէ, քանի որ այն կախված է շրջակա լուսային աղտոտումից: փոխարենը, ես ավելացրեցի 1. Քանի որ Log10 (0) անվերջ է: Այսպիսով, ինձ պետք է միջամտություն `խնդիրը լուծելու համար: Իմ դեպքում հավասարումը այսպիսին է.

y = Log10 (0.08 x +1), y- ը պայծառությունն է, իսկ x- ը `PWM արժեքը (0-1023)

Ես հավասարեցրեցի հավասարումը առավելագույն արժեքին: ապա ելքը միշտ 0-100-ի սահմաններում է: այս կերպ ես կարող եմ arduino- ից խնդրել որոշակի հարաբերական պայծառություն ՝ առանց առավելագույն բացարձակ պայծառության մասին:

y = Log10 (0.08 x +1)*100/1.914

Քանի որ arduino- ում իմ ներդրումը հարաբերական պայծառությունն է, ես պետք է վերադասավորեմ x (PWM) հավասարումը.

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

օգտագործելով այս հավասարումը ծածկագրում, մենք կարողանում ենք ստանալ պայծառության գծային փոփոխություն: Այսպիսով, դուք arduino- ից պահանջում եք 0-100-ի միջև պայծառություն (y), և arduino- ն հաշվարկում է համապատասխան PWM արժեքը: այս կերպ, եթե կրկնապատկեք պայծառությունը, ձեր ընկալումը նույնպես նույնն է:

եթե ցանկանում եք այն օգտագործել ձեր ծածկագրում, ավելի լավ է ավելացնել այս տողերը.

պայծառություն = 50; // տոկոսով

PWM = հզորություն (10, պայծառություն*1.914/100) -1) /0.0793;

analogWrite (ledpin, PWM);

ՆՇՈՄ. Նորմալացումը կատարվում է առավելագույնը 1023 PWM- ի համար (Wemos mini D1- ի համար): Arduino- ի համար PWM- ը 0-255-ի սահմաններում է: պետք է համապատասխանաբար հաշվարկել:

EԱՆՈԹՈ2ԹՅՈՆ 2. Ես ավելացրել եմ տեղեկամատյանային գծապատկեր `ցույց տալու, թե ինչպես են մեր ընկալման և PWM- ի արժեքը փոխկապակցված: չպետք է օգտագործեք այն տեղադրման համար:

Քայլ 5: Եզրակացություն

calibration- ը լավ է աշխատում ինձ համար: Երբ PWM- ի արժեքները մեծ են, ես տեսնում եմ տարբերությունը: Նախկինում, որպես մեծ արժեքներ, ես չէի տեսնում մռայլության ազդեցություն: Հիմնականում փոփոխությունների մեծ մասն արվել է PWM- ի փոքր տիրույթում: հիմա այն չափագրված է:

յուրաքանչյուր LED, հատուկ տարբեր գույներով, պետք է ունենա իր սեփական ճշգրտման պարամետրերը: Այնուամենայնիվ, ես չափեցի կապույտ LED- ը և օգտագործեցի պարամետրը սպիտակ LED- ի համար, և արդյունքն ընդունելի էր: այնպես որ գուցե դուք կարող եք օգտագործել իմ չափագրման պարամետրը ՝ առանց ձեզ անհանգստացնելու !!

Խորհուրդ ենք տալիս: