Arduino ile LDR’ den alınan Analog sinyalleri okuma

Bu uygulamada Arduinonun 12,11,10,9,8. pinlerine bağlı 5 tane LED’i LDR’nin üzerine düşen ışık şiddetine göre kontrol edeceğiz. Işık azaldıkça, ışığın azalma derecesine göre LED’ler sırayla birer birer yanacak. Işık iyice azaldığında tüm LED’ler yanacak. Işık şiddeti arttıkça LED’ler sırayla birer birer sönecek.

Devre Şeması:

Arduino ile LDR' den alınan Analog sinyalleri okuma

LDR(Foto direnç) aydınlıkta az direnç, karanlıkta yüksek direnç gösteren devre elemanıdır. Başka bir deyişle LDR’nin üzerine düşen ışık değerine göre gösterdiği direnç değişimi ters orantılıdır. LDR iki bacaklı bir elemandır, ortamdaki ışığı algılar ve analog değerlerde raporlar. LDR devreye bağlanırken 10K’ lık Pull-Down direnci ile birlikte bağlanır.

ldr

LDR’nin üzerine düşen ışık şiddetine göre 0 ile 1023 arasında değişen sayısal değerler oluşur. analogRead komutuyla raporlanan bu sayısal değerler LDRdurum adlı değişkene kaydedilir.

if komutuyla LDRdurum değişkenine kaydedilen sayısal değerin 1023’ten büyük ve eşit olduğu durumlarda tüm LED’lerin sönük olması sağlanır.

else if komutuyla sayısal değer 800-1023 arasındaysa sadece LED1 yanması sağlanır.

Sonraki else if komutuyla sayısal değer 600-800 arasındaysa LED1 ve LED2’nin yanması sağlanır.

Sonraki else if komutuyla sayısal değer 400-600 arasındaysa LED1-LED2-LED3’ün yanması sağlanır.

Sonraki else if komutuyla sayısal değer 200-400 arasındaysa LED1-LED2-LED3-LED4’ün yanması sağlanır.

En son else komutuyla sayısal değer 200’den küçükse tüm LED’lerin yanması sağlanır.

LDR’nin üzerine düşen ışık şiddetine bağlı olarak oluşan ve LDRdurum adlı değişkene kaydedilen 0 ile 1023 arasında değişen sayısal değerleri eş zamanlı olarak bilgisayar ekranında görebilmek için Serial.begin(9600);komutuyla seri haberleşme başlattık ve Serial.println(LDRdurum);komutunu yazarak bu değerleri Seri Port Ekranından gözlemledik. Değerleri görebilmek için programı Arduinoya yükledikten sonra Seri Port Ekranına tıklamanız gerekir.

Bu uygulamada LDR üzerine düşen ışık şiddetine bağlı olarak 5 tane LED’in sırasıyla yanmasını ve sönmesini sağladık. LDR üzerine düşen ışık şiddetine göre 1 tane LED’in parlaklığını arttırıp azaltabilirsiniz. Veya BUZZER’in ses şiddetini arttırıp azaltabilirsiniz. Bunu yapabilmek için devre bağlantısında ve Arduino programında küçük değişiklikler yapılması gerekir.

Devre Şeması:

Arduino ile LDR' den alınan Analog sinyalleri okuma

Arduinonun 13 nolu pinine bağlı olan LED’in parlaklığı LDR üzerine düşen ışık şiddetine bağlı olarak değişiyor. analogRead komutuyla LDR üzerine düşen ışık oranına göre 0 ile 1023 arasında değişen sayısal değerler elde ediliyor ve LDRdurum adlı değişkene kaydediliyor. Bu değerleri mapkomutuyla 0 ile 255 arasına daraltıyoruz. Ve bu oluşan yeni sayısal değerleri yenidurum adlı değişkene kaydediyoruz. analogWrite komutuyla da LED’in parlaklığını LDR üzerine düşen ışık miktarı ile ilişkilendiriyoruz. Bu programda LDR üzerine düşen ışık arttıkça LED’in parlaklığı da artıyor. LDR üzerine düşen ışık azaldıkça LED’in parlaklığı azalıyor.

LED ve direnci söküp, yerine BUZZER takarsanız LDR üzerine düşen ışık miktarına bağlı olarak BUZZER’in ses şiddetinin artıp azaldığını gözlemleyebilirsiniz.

yenidurum = map(LDRdurum,0,1023,255,0); komutunda 0 ile 255 sayılarının yerlerini değiştirip programı bu haliyle Arduinoya tekrar yüklerseniz bu sefer yenidurum değişkenine kaydedilen sayısal değerlerin karanlıkta LED’in daha parlak yanmasını, aydınlıkta daha sönük yanmasını sağladığını gözlemleyebilirsiniz.

Bu bilgiler sizin için yeterli mi?

Scroll to Top