Merhaba arkadaşlar, LDR ile Led parlaklık kontrolü uygulamamızda LDR üzerinden analog okuma ile  PWM (Pulse width Modulation), darbe genişlik modülasyonunu kullanarak kırmızı ledimizin parlaklığını kontrol edeceğiz.

[embedyt] https://www.youtube.com/watch?v=pXH1D30AC-4[/embedyt]

Malzeme Listesi:


Başlamadan önce hatıratma:

Daha önce de değimiz gibi analog okuma kısmında 0V ile 5V arasında bir değer elde ediyorduk ve bu değer bize 1024 parçaya bölünerek geliyordu. Yani 0V‘un değeri 0, 5V’un değeri 1023 ve diğer değerler bu aralıktaydı. Örneğin analog olarak aldığımız 700 değeri aslında 5V*700/1024 ‘ten yaklaşık olarak 3.41V giriş gerilimi oluyor. Analog yazma (PWM) işleminde ise 0V ile 5V arasındaki değer 256 (0-255 arası) eşit parçaya bölünmektedir. Aralık hesabı için; 5V/256=0.0195 olur. Örneğin 124 değerini yazarsak 124*0.0195 ’ten yaklaşık olarak 2.42V çıkış gerilimi sağlayacaktır.

PWM işlemini hatırladığımıza göre artık devremizi aşağıdaki şekildeki gibi kurabiliriz.

Untitled Sketch bbbb

Kodumuza geçelim.

#define Ldr A0
#define led 3
int Isik_siddeti=0;
void setup()
{
pinMode(led, OUTPUT);
}
void loop()
{
int Ldr_deger = analogRead(Ldr);
Isik_siddeti = map(Ldr_deger,0,1023,0,255);
analogWrite(led,Isik_siddeti);
}

Değişken ve pin tanımlamalarımızı yapıyoruz. led adlı 3 numaralı pinimizi çıkış olarak tanımlıyoruz. Ledimizi 3 numaralı pine bağlamamızın sebebi 3 numaralı pinin PWM pinlerinden biri olmasıdır. Burdan anlayacağımız her pin PWM pini değildir.

Arduino Uno için bu pinler (Kart üzerinde yanlarında ~ sembolü bulunan pinler); 3, 5, 6, 9, 10 ve 11 numaralı dijital pinlerdir ve toplamda 6 adettir. Gerekli pin ve değişken tanımlamalarını yapıyoruz. led adlı 3 numaralı dijital pinimizi çıkış olarak ayarlıyoruz.

integer formatında tanımladığımız Ldr_deger adlı değişkenimize Ldr’den alınan analog bilgileri atıyoruz. map() komutu yardımıyla okumuş olduğumuz analog değeri (Ldr_deger), 0 ile 1023 arasında olduğunu belirtiyoruz ve 0 ile 255 arasında ölçeklendiriyoruz.

map() komutuyla yapılan bu ölçeklendirmeyi Isik_siddeti adlı değişkene atıyoruz.


Özet olarak Ldr üzerinden alınan ışık şiddeti değerine göre, kırmızı ledimizin parlaklığını ayarlıyoruz. Arduino’yu bilgisayarımıza bağladıktan sonra kodumuzu yüklüyoruz ve çalışıp çalışmadığını test etmek için LDR’nin üzerine elimizle karanlık yapalım. Eğer algıladığı ışık şiddeti azaldıkça ledimizin parlaklığı da azalıyorsa devreyi doğru kurmuşuz demektir. Biz burada ışık şiddeti ile led  parlaklığını doğru orantılı şekilde ayarladık. Yani ışık şiddeti artarsa, led parlaklığı artacak. Siz de kendinizi geliştirmek için bu uygulamanın tam tersini yapmaya çalışın. Yani ışık çok ise parlaklık az, ışık az ise parlaklık çok olacak şekilde kodunu yazmayı deneyin ve başarılı olursanız ya da takıldığınız yerler olursa size yardımcı olmayı çok isteriz. Bu nedenle yorum yazmaktan çekinmeyin!


LDR ile led parlaklık kontrolü dersimiz işinize yaradıysa ve hoşunuza gittiyse diğer derslerimize göz atmayı unutmayın 🙂

robolinkmarket.com

1 Yorum

  1. hocam saygılar.

    ldr’nin okuduğu değeri ölçeklendirip. led lambasını belli oranda yakabilir miyiz(dim özelliği eklenebilir mi)
    yani ldr nin okuduğu değerlere göre led lambasını %10 %30 %50 %100 olarak yakabilir miyiz

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz