Mündəricat:

LED Parlaqlığının Kalibrlənməsi: 5 addım
LED Parlaqlığının Kalibrlənməsi: 5 addım

Video: LED Parlaqlığının Kalibrlənməsi: 5 addım

Video: LED Parlaqlığının Kalibrlənməsi: 5 addım
Video: Lanbon L8-HS - Tuya Smart və Home Assistant üçün sensor ekranlı wi-fi açarı 2024, Noyabr
Anonim
LED Parlaqlığının Kalibrlənməsi
LED Parlaqlığının Kalibrlənməsi

Peri işığı edərkən, PWM dəyərinin LED-in parlaqlığı ilə qeyri-xətti mütənasib olduğunu başa düşdüm. Sadəcə olaraq, PWM dəyəri ikiqat olarsa, parlaqlıq ikiqat deyil; Xüsusilə PWM maksimuma yaxın olduqda, hər hansı bir dəyişiklik gözlərim tərəfindən tanınmır. Sadə bir kalibrləmə məsələsi olduğunu düşündüm! və bu layihəni necə hazırladım! Fikir, bir LEDin parlaqlığını bir cihazla (parlaqlıq sensoru və ya fotorezistor) ölçmək və PWM dəyəri ilə parlaqlıq arasında bir əlaqə tapmaqdır. Daha sonra parlaqlığı 50%olaraq təyin etsəm, Arduino müvafiq PWM -i hesablayacaq və buna görə də LED -i söndürəcək.

Buna görə parlaqlığı ölçmək üçün bir işıq sensoru və bir LEDə ehtiyacım var. Bir SD kart istifadə edərək, sonrakı quraşdırma proseduru üçün məlumatları saxlayacağam. Quraşdırma Excel -də (və ya hər hansı digər proqramda) aparılacaq. Çıxış Arduino kodunda istifadə ediləcək və budur! Bir dəfə edilməlidir. Sonra əbədi olaraq kalibrləmə parametrindən istifadə edə bilərsiniz!

Addım 1: hissələr

1- WEMOS mini D1: Aliexpress 3 €

2- TSL 2561 (Parlaqlıq sensoru): Aliexpress 3 €

3- SD kart modulu: Aliexpress 1 €

4- LED

5- Rezistor 220 ohm

6- tellər

ümumi dəyəri: 8-10 €

Addım 2: Kabel çəkmə

Kablolama
Kablolama
Kablolama
Kablolama
Kablolama
Kablolama

SD kart modulu və işıq sensoru telləri dəyişdirilməməlidir (əksəriyyəti). Led bir PWM pininə bağlanmalıdır.

Addım 3: Kod

Kod
Kod

Üç kodu birləşdirdim:

SD kart: istifadə olunan nümunə> SD> Arduino IDE -də ReadWrite

TSL 2561: istifadə olunan Adafruit TSL2561 Kitabxana nümunəsi (sensorapi); kitabxananı qurarsanız (Arduino IDE -də bir kitabxana necə qurulacağını bildiyinizi güman edirəm) nümunələrdə tapa bilərsiniz.

LED sönməsi: istifadə olunan nümunələr> Analog> solma

Kod, modulları işə saldıqdan sonra, ledi söndürəcək və parlaqlığı oxuyacaq və SD kartda saxlayacaq. bu şəkildə kalibrləmə üçün bəzi məlumatlar toplayacağam.

Hər kodu ehtiyaclarıma uyğun olaraq dəyişdirdim. son kod əlavə olunur.

Siqnal əlavə edilmiş şəklə bənzəməlidir. Təəssüf ki, fotoşəkil çəkməyi unutdum, buna görə necə olacağını göstərmək üçün Excel -də yenidən yerləşdirdim.

Qeyd: Arduino yerinə wemo mini D1 istifadə edirəm. Bilmədiyim nədənsə PWM 0 ilə 1023 arasındadır. Arduinoda 0-255 arasında olmalıdır. Arduino üçün kodu istifadə etmək istəyirsinizsə, ona diqqət yetirməlisiniz (xətt 90).

Addım 4: Quraşdırma və İstifadə

Quraşdırma və İstifadə
Quraşdırma və İstifadə
Quraşdırma və İstifadə
Quraşdırma və İstifadə

məlumat topladıqdan sonra faylı excel -də açdım və məlumatları qurdum (şəklə baxın). birinci sütun PWM dəyəridir, ikincisi lüks (sensorun oxunması, vahidin çox da əhəmiyyəti yoxdur). Buna görə də, lux (y oxu) ilə PWM (x oxu) arasında plan qurun. Gördüyünüz kimi, parlaqlıq PWM dəyəri ilə xətti olaraq mütənasibdir. Mən ona bir xətt bağladım.

Bir xəttə uyğunlaşmaq üçün aşağıdakıları edin:

1- Verilənləri qurun (daxil edin> Səpələnmiş süjet), necə etdiyinizi bilirsiniz.

2- qurulan məlumatlara sağ vurun

3- trend xəttinə vurun.

4- (Excel 2013-də) sağ tərəfdə bir panel açılır. Xətti seçin. Aşağıda "qrafikdə tənliyi göstər" seçin.

Xətti əlaqə mənim anlayışımdan fərqlidir. Buna görə düşünürəm ki, qavrayışımla parlaqlığım arasında logarifmik əlaqə olmalıdır (ağlıma gələn ən sadə yoldur!). Beləliklə, uyğunluğun yamacını götürdüm. Qarşısının alınması vacib deyil, çünki ətrafdakı işıq çirkliliyindən asılıdır! bunun əvəzinə 1 əlavə etdim. Çünki Log10 (0) sonsuzdur. Buna görə problemi həll etmək üçün bir müdaxilə lazımdır. Mənim vəziyyətimdə tənlik belə görünür:

y = Log10 (0.08 x +1), y parlaqlıq və x PWM dəyəridir (0-1023)

Tənliyi maksimum dəyərə qədər normallaşdırdım. sonra çıxış çalma hər zaman 0-100 arasındadır. Bu yolla, maksimum mütləq parlaqlığı nəzərə almadan arduinodan müəyyən nisbi parlaqlıq istəyə bilərəm.

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

Arduinoda girişim nisbi parlaqlıq olduğu üçün x (PWM) tənliyini yenidən düzəltməliyəm:

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

kodda bu tənliyi istifadə edərək xətti parlaqlıq dəyişikliyi əldə edə bilərik. Beləliklə, arduinodan 0-100 arasında bir parlaqlıq (y) istəyərsiniz və arduino müvafiq PWM dəyərini hesablayır. bu şəkildə, ikiqat parlaqlıq varsa, qavrayışınız da eynidir.

Kodunuzda istifadə etmək istəyirsinizsə, bu sətirləri əlavə etməyiniz daha yaxşıdır:

parlaqlıq = 50; // faizlə

PWM = pow (10, parlaqlıq*1.914/100) -1) /0.0793;

analogWrite (ledpin, PWM);

Qeyd: normalizasiya maksimum 1023 PWM üçün aparılır (Wemos mini D1 üçün). Arduino üçün PWM 0-255 arasındadır. buna uyğun hesablamaq lazımdır.

Qeyd 2: qavrayışımızın və PWM dəyərimizin necə əlaqəli olduğunu göstərmək üçün log-line xətti əlavə etdim. montaj üçün istifadə etməməlisiniz!

Addım 5: Nəticə

kalibrləmə mənim üçün yaxşı işləyir. PWM dəyərləri böyük olduqda, fərqi görə bilərəm. Daha əvvəl böyük dəyərlər olaraq karartmanın təsirini görə bilmirdim. Əsasən dəyişikliklərin çoxu kiçik bir PWM aralığında edildi. indi kalibrlənir!

hər LED, xüsusi olaraq fərqli rənglər, öz kalibrləmə parametrlərinə malik olmalıdır. Ancaq mavi LED -i kalibr etdim və ağ LED üçün parametrdən istifadə etdim və nəticə məqbul oldu. Bəlkə özünüzü narahat etmədən mənim kalibrləmə parametrimdən istifadə edə bilərsiniz !!

Tövsiyə: