İçindekiler:

LED Parlaklığını Kalibre Etme: 5 Adım
LED Parlaklığını Kalibre Etme: 5 Adım

Video: LED Parlaklığını Kalibre Etme: 5 Adım

Video: LED Parlaklığını Kalibre Etme: 5 Adım
Video: Led TV Görüntü Ayarları Nasıl Yapılmalı? Colorist Uzman Görüşü 2024, Kasım
Anonim
LED Parlaklığını Kalibre Etme
LED Parlaklığını Kalibre Etme

Bir peri ışığı yaparken, PWM değerinin LED'in parlaklığı ile doğrusal orantılı olmadığını fark ettim. Basitçe söylemek gerekirse, PWM değeri iki katına çıkarsa parlaklık iki katına çıkmaz; özellikle PWM maksimuma yakın olduğunda, herhangi bir değişiklik gözlerim tarafından tanınmaz. Basit bir kalibrasyon sorunu olması gerektiğini düşündüm! ve bu projeyi böyle yaptım! Buradaki fikir, bir LED'in parlaklığını bir cihazla (parlaklık sensörü veya fotodirenç) ölçmek ve PWM değeri ile parlaklık arasında bir korelasyon bulmaktır. Daha sonra parlaklığı %50'ye ayarlarsam, Arduino ilgili PWM'yi hesaplayacak ve LED'i buna göre kısacaktır.

Bu nedenle, parlaklığı ölçmek için bir parlaklık sensörüne ve bir LED'e ihtiyacım var. Bir SD kart kullanarak verileri daha sonraki takma prosedürü için kaydedeceğim. Montaj Excel'de (veya başka bir programda) yapılacaktır. Çıktı Arduino kodunda kullanılacak ve bu kadar! Bir kez yapılmalıdır. O zaman kalibrasyon parametresini sonsuza kadar kullanabilirsiniz!

Adım 1: Parçalar

1- WEMOS mini D1: Aliexpress 3€

2- TSL 2561 (Parlaklık sensörü): Aliexpress 3€

3- SD kart modülü: Aliexpress 1€

4- LED

5- Direnç 220 ohm

6- teller

toplam maliyet: 8 -10 €

Adım 2: Kablolama

kablolama
kablolama
kablolama
kablolama
kablolama
kablolama

SD kart modülü ve parlaklık sensörü kabloları değiştirilmemelidir (çoğu). Led bir PWM pinine bağlanmalıdır.

3. Adım: Kodlayın

kod
kod

Üç parça kodu birleştirdim:

SD kart: kullanılan örnek >SD > Arduino IDE'de ReadWrite

TSL 2561: kullanılan Adafruit TSL2561 Kitaplığı örneği (sensorapi); Kitaplığı kurarsanız örneklerde bulacaksınız (Arduino IDE'de bir kitaplığın nasıl kurulacağını bildiğinizi varsayıyorum).

LED sönümlemesi: kullanılan örnekler > Analog > sönümleme

Kod, modülleri başlattıktan sonra led'i karartacak ve parlaklığı okuyacak ve SD karta kaydedecektir. bu şekilde kalibrasyon için bazı veriler toplayacağım.

Kodun her birini ihtiyaçlarıma göre değiştirdim. ekli son kod.

Sinyal ekteki resim gibi görünmelidir. Maalesef bir fotoğraf çekmeyi unuttum, bu yüzden nasıl olması gerektiğini size göstermek için excel'de tekrarladım.

NOT: Arduino yerine wemo mini D1 kullanıyorum. Bilmediğim bir nedenden dolayı PWM 0 ile 1023 arasında. Arduino'da 0-255 arasında olması gerekiyor. Kodu arduino için kullanmak istiyorsanız, onunla ilgilenmelisiniz (satır 90).

Adım 4: Takma ve Kullanma

Takma ve Kullanma
Takma ve Kullanma
Takma ve Kullanma
Takma ve Kullanma

veri topladıktan sonra dosyayı excel'de açtım ve verileri çizdim (resme bakın). ilk sütun PWM değeri ve ikincisi lüks (sensörün okunması, birim çok önemli değil). Bu nedenle, lüks (y ekseni) ile PWM'yi (x ekseni) karşılaştırın. Gördüğünüz gibi parlaklık, PWM değeri ile doğrusal orantılıdır. Ona bir çizgi koydum.

Bir satıra sığdırmak için aşağıdaki gibi izleyin:

1- verileri çizin (insert > dağılım grafiği) nasıl olduğunu bildiğinizi varsayıyorum.

2- çizilen verilere sağ tıklayın

3- trend çizgisine tıklayın.

4- (Excel 2013'te) sağ tarafta bir panel çıkıyor. Doğrusal seçin. Altta "grafikte denklemi göster" seçeneğini seçin.

Doğrusal ilişki benim algımdan farklı. Bu nedenle algımla parlaklık arasında logaritmik bir ilişki olması gerektiğini düşünüyorum (aklıma gelen en basit yol bu!). Bu yüzden uyumun eğimini aldım. Engelleme önemli değil, çünkü çevredeki ışık kirliliğine bağlı! bunun yerine 1 ekledim. Çünkü Log10(0) sonsuzdur. Bu yüzden sorunu çözmek için bir müdahaleye ihtiyacım var. Benim durumumda denklem şöyle görünür:

y =Log10(0.08 x +1), y parlaklık ve x PWM değeridir (0-1023)

Denklemi maksimum değere normalleştirdim. daha sonra çıkış aralığı her zaman 0-100 arasındadır. bu şekilde, maksimum mutlak parlaklıkla ilgili olmaksızın arduino'dan belirli bir göreceli parlaklık isteyebilirim.

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

Arduino'da girişim göreceli parlaklık olduğundan, denklemi x (PWM) için yeniden düzenlemem gerekiyor:

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

Bu denklemi kodda kullanarak doğrusal bir parlaklık değişimi elde edebiliyoruz. Yani arduino'dan 0-100 arasında bir parlaklık (y) istiyorsunuz ve arduino buna karşılık gelen PWM değerini hesaplıyor. bu sayede parlaklık iki katına çıkarsa algınız da aynı olur.

kodunuzda kullanmak istiyorsanız, bu satırları eklemeniz daha iyi olur:

parlaklık=50; // yüzde olarak

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

analogWrite(ledpin, PWM);

NOT: normalleştirme maksimum 1023 PWM için yapılır (Wemos mini D1 için). Arduino için PWM 0-255 arasındadır. buna göre hesaplamanız gerekir.

NOT2: Algı ve PWM değerimizin nasıl ilişkili olduğunu göstermek için log-lineer bir grafik ekledim. takmak için kullanmamalısınız!

Adım 5: Sonuç

Kalibrasyon benim için iyi çalışıyor. PWM değerleri büyük olduğunda farkı görebiliyorum. Önceleri büyük değerler olarak karartma etkisini göremiyordum. Temel olarak değişikliklerin çoğu küçük bir PWM aralığında yapıldı. şimdi kalibre edildi!

her LED, özellikle farklı renkler, kendi kalibrasyon parametrelerine sahip olmalıdır. Ancak mavi bir LED'i kalibre ettim ve parametreyi beyaz bir LED için kullandım ve sonuç kabul edilebilirdi. bu yüzden belki kendini rahatsız etmeden benim kalibrasyon parametremi kullanabilirsin!!

Önerilen: