İçeriğe geç

LDR Işık Sensörü ile Ortam Aydınlığını Ölçmek: Hem Basit Hem Şaşırtıcı!

Şimdi gelelim şu LDR’lere, yani ışık sensörlerine. Hani şu etrafın ne kadar aydınlık ya da karanlık olduğunu algılayan o küçük parçalar var ya, onlardan bahsediyorum. Bazen bir projede kullanmak için alırsın, sonra bir köşeye atarsın, ama sonra bir bakmışsın ki aslında ne kadar da işe yararmış!

Bu sensörler aslında oldukça basit mantıkla çalışıyor. İçlerinde bir direnç var ve bu direncin değeri, üzerine düşen ışık miktarına göre değişiyor. Yani güneş tepedeyken direnç düşüyor, gece olunca veya bir yere saklayınca da direnç yükseliyor. Ne güzel değil mi? Biz de bu direnç değişimini kullanarak ortamın ışık seviyesini anlayabiliyoruz.

Peki, bu işe yarar mı diye soracak olursanız, bana göre fazlasıyla. Mesela benim geçenlerde yaptığım bir projede, odamın ışığı belli bir seviyenin altına düştüğünde otomatik olarak lambayı yakması gerekiyordu. Hani böyle akşam olunca veya perdeleri kapattığında kendi kendine yanan bir lamba düşünün. İşte LDR tam da bu iş için biçilmiş kaftan. Hem enerji tasarrufu sağlar hem de gece ansızın karanlıkta kalmazsınız, ne de olsa bir yerden sonra gözlerimiz de artık eskisi gibi görmüyor 🙂

Bu işi yaparken LDR’yi tek başına kullanmak yerine, onu bir mikrodenetleyiciyle (mesela Arduino gibi) beraber kullanmak gerekiyor. Mikrodenetleyici, LDR’den gelen analog sinyali okuyup onu dijital bir değere çeviriyor ve bu değere göre de bir şeyler yapıyor. Mesela lambayı yakıp söndürmek gibi.

Şimdi gelelim işin biraz daha teknik kısmına, ama gözünüz korkmasın, gayet basit. Bir LDR’yi bir dirençle seri bağlayıp mikrodenetleyicinin analog girişine bağlıyoruz. Bu kurduğumuz devreye “voltaj bölücü” deniyor. LDR’nin direnci değiştikçe, voltaj bölücünün çıkışındaki voltaj da değişiyor. Mikrodenetleyici de bu voltajı okuyup işliyor.

Mesela, LDR’nin direnci azaldığında (yani ışık arttığında) mikrodenetleyiciye giden voltaj düşüyor. Tam tersi, LDR’nin direnci arttığında (yani ışık azaldığında) da voltaj yükseliyor. Bu voltaj değişimini de programımızda belirli bir eşiğin altına veya üstüne düştüğünde bir eylemi tetiklemek için kullanıyoruz. Basit bir IF-THEN yapısı gibi düşünebilirsiniz.

Bu arada, bu işleri yaparken doğru direnç değerini seçmek de önemli. Genelde 10k Ohm civarında bir direnç kullanılıyor ama bu, LDR’nizin özelliklerine ve kullanacağınız mikrodenetleyicinin hassasiyetine göre biraz değişebilir. Deneme yanılma yöntemiyle en uygun değeri bulmak en doğrusu sanırım. İnternette bu konuda bir sürü hazır şema bulabilirsiniz, göz atsanız iyi olur.

Şimdi gelelim kod kısmına. Çok karmaşık bir şey beklemeyin. Temelde LDR’den okuduğumuz değeri belirli bir eşikle karşılaştırıp ona göre bir LED’i yakıp söndürme örneği yapalım. Bu kod, ortam ışığı azaldığında LED’in yanmasını sağlayacak. Hani o gece lambası mantığının en basit hali gibi düşünün.

Şöyle bir kod parçacığı düşünebilirsiniz;

Bu kodda analogRead fonksiyonu ile LDR’den gelen değeri okuyoruz. Bu değer 0 ile 1023 arasında bir sayı oluyor. Sonra bu değeri belirli bir eşikle (mesela 500) karşılaştırıyoruz. Eğer değer 500’den küçükse (yani ışık azalmışsa), LED’i yakıyoruz (HIGH), değilse (ışık fazlaysa) LED’i söndürüyoruz (LOW). Tabi bu sadece basit bir örnek, siz bunu bir röleye bağlayıp lambayı da yakabilirsiniz, hatta bir uyarı sesi de çalabilirsiniz. Ne isterseniz işte.

Bu arada, LDR’lerin hassasiyeti bazen biraz sıkıntılı olabiliyor. Yani aynı LDR’den iki tane alsanız bile aralarında küçük farklılıklar olabiliyor. Bu yüzden, eğer hassas bir ölçüm yapmanız gerekiyorsa, bu sensörler tek başına yeterli olmayabilir. Ama genel bir aydınlık seviyesi bilgisi için gayet yeterli olduğunu düşünüyorum. Bence en güzeli, bir kere devreyi kurup sonra birkaç gün boyunca değerleri gözlemlemek, ne zaman ne kadar değiştiğini anlamak. Sonuç olarak, bu basit sensörlerle akıllı ev sistemlerine ilk adımı atmış oluyorsunuz, ne güzel değil mi?

İşin garip yanı, bu LDR’lerin bazıları sadece ışıkta direnç değiştirirken, bazıları da karanlıkta daha iyi çalışıyor. Yani alırken dikkat etmek lazım. Tabii ki bu detayları çok düşünmeye gerek yok, çoğu LDR’yi ışığa göre tepki verecek şekilde kullanıyoruz. Ama ne olur ne olmaz, dikkatli olmakta fayda var.

Sonuç olarak, LDR’ler hem başlangıç seviyesi projeler için hem de daha karmaşık sistemlerde aydınlık seviyesini belirlemek için harika araçlar. Hem ucuz hem de bulması kolay. Bir de üstüne basit bir kodla işin içine girince, insan kendini bir anda proje geliştiren bir mühendis gibi hissediyor tabii 🙂

Eğer merak ederseniz, bu konuda daha fazla bilgi için Google’da LDR devre şemaları diye aratabilirsiniz. Bir sürü örnek bulacaksınızdır.

Bir de YouTube’da da bolca Arduino ile LDR kullanımıyla ilgili dersler var. Oradan da görsel olarak takip edebilirsiniz.

Neticede, bu küçük sensörler hayal gücünüzü tetikleyebilir. Belki de bir sonraki projeniz, gün batımında otomatik yanan bir bahçe lambası olur, kim bilir? Ya da belki de bir roman karakterinin odasındaki ışık seviyesini ayarlayan bir sistem geliştirirsiniz. O zaman da benim gibi ‘keşke daha önce deneseydim’ dersiniz, bana göre. 🙂 İşte böyle bir şey.

Tekrar hatırlatmak isterim, bu sadece basit bir başlangıç örneği. İsterseniz bu değeri bir eşik olarak kullanıp, belirli bir aydınlık seviyesine ulaşıldığında başka cihazları da kontrol ettirebilirsiniz. Mesela güneş panellerinin açısını ayarlayan bir sistemde de kullanılabilir sanırım. Ya da bir sera otomasyonunda bitkilerin ihtiyacı olan ışığı sağlamak için. O kadar çok kullanım alanı var ki, saymakla bitmez.

Neyse efendim, bu LDR meselesi böyle. Umarım faydalı olmuştur. Siz de denemeler yapıp kendi projelerinizde kullanırsınız artık. Ne güzel değil mi?

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.