فهرست مطالب:

کالیبراسیون روشنایی LED: 5 مرحله
کالیبراسیون روشنایی LED: 5 مرحله

تصویری: کالیبراسیون روشنایی LED: 5 مرحله

تصویری: کالیبراسیون روشنایی LED: 5 مرحله
تصویری: ESP32 Tutorial 5 - LED Fade, control brightness of an LED -ESP32 IoT Learnig kit 2024, نوامبر
Anonim
کالیبره کردن روشنایی LED
کالیبره کردن روشنایی LED

در حالی که در حال ایجاد یک نور پری بودم ، متوجه شدم که مقدار PWM به طور غیر خطی با روشنایی LED متناسب است. به زبان ساده ، اگر مقدار PWM دو برابر باشد ، روشنایی دو برابر نیست. به ویژه هنگامی که PWM به حداکثر نزدیک است ، هیچ تغییری از نظر من قابل تشخیص نیست. من فکر کردم باید یک مسئله کالیبراسیون ساده باشد! و این بود که چگونه این پروژه را ساختم! ایده این است که میزان روشنایی یک LED را با برخی دستگاه ها (سنسور روشنایی یا مقاومت در برابر نور) اندازه گیری کرده و بین مقدار PWM و روشنایی همبستگی پیدا کنید. سپس بعداً اگر روشنایی را روی 50٪ تنظیم کنم ، آردوینو PWM مربوطه را محاسبه کرده و LED را مطابق آن کم می کند.

بنابراین ، برای اندازه گیری روشنایی به سنسور روشنایی و LED نیاز دارم. با استفاده از کارت SD ، داده ها را برای مراحل بعدی نصب ذخیره می کنم. برازش در Excel (یا هر برنامه دیگر) انجام می شود. out out در کد آردوینو استفاده می شود ، و بس! باید یکبار انجام شود. سپس می توانید برای همیشه از پارامتر کالیبراسیون استفاده کنید!

مرحله 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 ذخیره می کند. به این ترتیب من برخی از داده ها را برای کالیبراسیون جمع آوری می کنم.

من هر کد را با توجه به نیاز خود تغییر دادم. کد نهایی پیوست شده است

سیگنال باید شبیه تصویر پیوست باشد. متأسفانه من فراموش کردم که عکس بگیرم ، بنابراین آن را در اکسل مجدداً قرار می دهم تا به شما نشان دهم که چگونه باید باشد.

توجه: من به جای آردوینو از wemo mini D1 استفاده می کنم. به دلایلی که من نمی دانم ، PWM بین 0 تا 1023 است. در آردوینو باید بین 0-255 باشد. اگر می خواهید از کد آردوینو استفاده کنید ، باید از آن مراقبت کنید (خط 90).

مرحله 4: نصب و استفاده

برازش ، و استفاده
برازش ، و استفاده
برازش ، و استفاده
برازش ، و استفاده

پس از جمع آوری داده ها ، فایل را در Excel باز کردم و داده ها را رسم کردم (به تصویر نگاه کنید). ستون اول مقدار PWM و ستون دوم Lux است (خواندن سنسور ، واحد اهمیت چندانی ندارد). بنابراین ، نمودار lux (محور y) در مقابل PWM (محور x) را ترسیم کنید. همانطور که می بینید روشنایی متناسب با مقدار PWM است. خطی را به آن متصل کردم

برای تناسب یک خط ، موارد زیر را دنبال کنید:

1- داده ها را ترسیم کنید (درج کنید> نمودار پراکندگی) من فرض می کنم که چگونه می دانید.

2- بر روی داده های رسم شده راست کلیک کنید

3- روی trendline کلیک کنید.

4- (در اکسل 2013) در سمت راست یک پانل ظاهر می شود. خطی را انتخاب کنید. در پایین "معادله نمایش روی نمودار" را انتخاب کنید.

رابطه خطی با تصور من متفاوت است. بنابراین من فکر می کنم باید بین درک من و روشنایی رابطه لگاریتمی وجود داشته باشد (این ساده ترین راهی است که به ذهنم رسید!) بنابراین من شیب تناسب را انتخاب کردم. رهگیری مهم نیست ، زیرا به آلودگی نوری اطراف بستگی دارد! در عوض ، من 1 را اضافه کردم زیرا Log10 (0) بی نهایت است. بنابراین من برای حل مشکل به یک رهگیر نیاز دارم. در مورد من معادله به این شکل است:

y = Log10 (0.08 x +1) ، y روشنایی و x مقدار PWM است (0-1023)

معادله را به حداکثر مقدار نرمال کردم. سپس خروجی همیشه بین 0-100 است. به این ترتیب می توانم از آردوینو روشنایی نسبی خاصی را بدون در نظر گرفتن حداکثر روشنایی مطلق بخواهم.

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

از آنجا که ورودی من در روشنایی نسبی است ، باید معادله x (PWM) را دوباره مرتب کنم:

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

با استفاده از این معادله در کد ، می توانیم تغییر روشنایی خطی را بدست آوریم. بنابراین شما از آردوینو روشنایی (y) بین 0-100 را درخواست می کنید و arduino مقدار PWM مربوطه را محاسبه می کند. به این ترتیب ، اگر روشنایی را دو برابر کنید ، درک شما نیز یکسان است.

اگر می خواهید از آن در کد خود استفاده کنید ، بهتر است این خطوط را اضافه کنید:

روشنایی = 50 ؛ // به درصد

PWM = توان (10 ، روشنایی*1.914/100) -1) /0.0793 ؛

analogWrite (ledpin ، PWM) ؛

توجه: عادی سازی برای حداکثر PWM 1023 (برای Wemos mini D1) انجام می شود. برای Arduino PWM بین 0-255 است. شما باید بر اساس آن محاسبه کنید

توجه 2: من یک نمودار ورود به سیستم خطی اضافه کردم تا نشان دهم که چگونه درک و ارزش PWM ما با هم ارتباط دارند. نباید از آن برای نصب استفاده کنید!

مرحله 5: نتیجه گیری

کالیبراسیون برای من خوب کار می کند وقتی مقادیر PWM بزرگ است ، می توانم تفاوت را ببینم. قبلاً به عنوان مقادیر بزرگ ، نمی توانستم اثر کم نور شدن را ببینم. اساساً بیشتر تغییرات در محدوده کوچکی از PWM انجام شد. اکنون کالیبره شده است!

هر LED ، به ویژه رنگهای مختلف ، باید دارای پارامترهای کالیبراسیون خود باشد. با این حال ، من یک LED آبی را کالیبره کردم و از پارامتر برای یک LED سفید استفاده کردم و نتیجه قابل قبول بود. بنابراین شاید بتوانید از پارامتر کالیبراسیون من استفاده کنید بدون اینکه خود را اذیت کنید !!

توصیه شده: