Mündəricat:
Video: LED Parlaqlığının Kalibrlənməsi: 5 addım
2024 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2024-01-30 07:46
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ə
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
Üç 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ə
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ə:
LED Parlaqlığının Arduino ilə Potansiyometrlə İdarə Edilməsi: 3 Addım
Arduino ilə Potentiometer ilə LED Parlaqlığının İdarə Edilməsi: Bu layihədə potensiometr tərəfindən verilən dəyişkən müqavimətdən istifadə edərək LED -in parlaqlığını idarə edəcəyik. Bu, yeni başlayanlar üçün çox sadə bir layihədir, ancaq sizə potensialiometr və LED işləməsi ilə bağlı çox şey öyrədəcək
Potensialiometr və OLED Ekranı ilə LED Parlaqlığının İdarə Edilməsi: 6 Addım
Potensialiometr və OLED Ekranı ilə LED Parlaqlığının İdarə Edilməsi: Bu dərslikdə LED parlaqlığını potensiometrlə necə idarə etməyi və OLED Ekranda dəyərin göstərilməsini öyrənəcəyik
Potensialiometr və Arduino ilə LED Parlaqlığının İdarə Edilməsi: 6 Addım
Potensialiometr və Arduino ilə LED Parlaqlığının İdarə Edilməsi: Bu dərslikdə potensialiometr və Arduino ilə LED parlaqlığının necə idarə olunacağını öyrənəcəyik
Arduino və Bluetooth Modulundan (HC-05) istifadə edərək LED Parlaqlığının İdarə Edilməsi: 4 Addım
Arduino və Bluetooth Modulundan (HC-05) istifadə edərək LED-in Parlaqlığının İdarə Edilməsi: Giriş Bu dərslikdə Arduino UNO, Bluetooth Modulu (HC-05) və Android üçün Bluetooth (Bluetooth Terminal) tətbiqindən istifadə edərək LED-in parlaqlığını idarə edəcəyik
ABŞ Arduino LED Parlaqlığının kəsilməsi: 6 addım
USA Arduino Interrupt LED Brightness: Bu layihədə potensiometr və basma düyməli Qırmızı, Ağ və Mavi LED ekran yaradacağıq. Asan səslənir, amma bunun üçün də fasilələrdən istifadə edəcəyik. Beləliklə, düyməyə basıldıqda potansiyometrdən dəyər təyin olunacaq