back to top

Raspberry Pi 3 LDR İle Işık Şiddeti Ölçme #7

Raspberry Pi Dersleri serimizde kullanacağımız malzemelerin tamamına sizler için hazırladığımız setler ile kolayca sahip olabilirsiniz. Raspberry Pi’ye Uzaktan Bağlantı Yöntemleri (VNC,SSH,TTL) dersimize kadar olan malzemeler için Kombo Kit, Raspberry Pi 3 Röle Kartı İle Alarm Devresi Yapımı dersimize kadar olan malzemeler için Süper Başlangıç Seti, tüm derslerdeki malzemeler için Proje Seti tercih edebilirsiniz.

Merhabalar. Bu dersimizde Raspberry Pi’miz ile LDR kullanarak ışık şiddeti ölçmeyi öğreneceğiz.

Gerekli Malzemeler:

 

LDR Nedir?

LDR, çoğunlukla fotosel diye bildiğimiz ışık şiddetini ölçmeye yarayan iki uçlu bir devre elemanıdır. Üzerine düşen ışık miktarına göre iki ucun arasındaki direnç değeri değişir. Bu özelliği sayesinde ışık miktarını ölçebiliriz.

Eğer daha önce Arduino ile benzer bir uygulama yaptıysanız LDR’yi analog girişe bağlandığını biliyorsunuzdur. Fakat Raspberry Pi’mizde analog giriş mevcut değil. Bu duruma bir çözüm olarak bir RC devresi kurmamız gerekiyor.

LDR ölçümü için RC devresi:

RC devresi, bir kapasitör ve dirençten oluşur. Kapasitörler, elektrik devrelerinde yük depolama görevinde kullanılırlar. Akım, kapasitörü şarj ederek geriliminin yükselmesine sebep olur. Direnç ise kapasitöre giden akımı limitleyerek, kapasitörün şarj olmasını yavaşlatır. Yani kapasitörün dolacağı süreyi, direncin değeri belirler. LDR’nin direnci üzerine düşen ışığa göre değişeceği için, kapasitörün şarj olma süresini ışık miktarı belirleyecektir. Kapasitör 1.8V değerine ulaştığında Raspberry Pi’miz bunu lojik 1 seviyesi olarak algılayacağından, GPIO pininin lojik 1 seviyesine gelme süresi bize ışık seviyesini bildirecektir.

Raspberry Pi – LDR RC devre şeması:

rpi-ldr
Raspberry Pi – LDR devre şeması

Raspberry Pi – LDR ölçümü Python kodu:

Alternatif kod linki:https://zerobin.net/?f00504abb6c64e96#qq211wc+u+VvhQvyREMpG2LniL8kpBD/vSmkSN+wb7o=

import time 
import RPi.GPIO as GPIO

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)

ldr_pin = 3

def RCtime (RCpin):
 reading = 0
 GPIO.setup(RCpin, GPIO.OUT)
 GPIO.output(RCpin, GPIO.LOW)
 time.sleep(.1)
 
 GPIO.setup(RCpin, GPIO.IN)
 while (GPIO.input(RCpin) == GPIO.LOW):
 reading += 1
 return reading
 
while True: 
 LDRReading = RCtime(3)
 print LDRReading
 time.sleep(1)

Kodumuz aslında çok basitçe GPIO3 nolu pin lojik 1 olana kadar geçen süreyi ölçüyor. LDR’nin üzerine düşen ışık miktarı arttıkça direnci azalacağından dolayı, kapasitör daha hızlı şarj olacak; dolayısıyla ölçüm değeri düşecektir.

Program kodunun detaylı anlatımına aşağıdaki videodan ulaşabilirsiniz:

Kodu çalıştırmak için

python ldr.py

komutunu veriyoruz.

Raspberry Pi Hakkında Daha Fazlasını Öğrenmeye Devam Et

Raspberry Pi pek çok yönüyle avantaj sahibi ve geliştiriciler tarafından çok sevilen bir platform. Elektronik projelerinde, bilgisayar bilimlerinde ve robotik çalışmalarında sağladığı destek ve rahatlık ile öğrenmeyi sevdiren Raspberry Pi hergün daha da çok gelişiyor. 

Peki siz de daha fazla gelişmek istemez misiniz? Linux bilginizi geliştirmek, elektronik dünyasına atılmak ve eğlenceli projelere imza atmak için sizi Raspberry Pi ile yolculuğa çıkarıyoruz! Sizler için hazırladığımız Raspberry Pi eğitim serisine devam edin :

RPi ve Buzzer ile Ses Çıkışı Alma 

Raspberry ile ses çıkışı alabileceğinizi biliyor muydunuz? 6. dersimizde yalnızca basit bir pasif buzzer kullanarak kendi melodilerimizi oluşturduk. RPi ve Buzzer ile Ses Çıkışı Alma  yazımızda buzzer kullanımının detaylarını anlattık.

Raspberry Pi ile DHT11 Kullanımı

DHT11 ortamdaki sıcaklık ve nem değerlerini yorumlayabilen ve dijital birimlere dönüştürebilen yetenekli bir sensördür.
8. ve bir sonraki dersimizde, Raspberry Pi ile DHT11 Kullanımını göreceğiz, sıcaklık ve nem sensörü sayesinde sıcaklık ölçümü yapacağız.

Son Çıkan Yazılar

6 YORUMLAR

    • Bu linkten de denedim olmadı.

      File “ldr.py”, line 18
      reading + = 1
      ^
      IndentationError: expected an indented block

      Sürekli bu hatayı veriyor.

  1. Merhaba hocam, raspberry pi ile ldr kontrolü yapıp, output olarak infrared ışığı dimmer gibi kontrol edebilirmiyim..? . Amacım belli bir alanı infrared ile aydınlatıp ve günışığını ldr ile kontrol edip, alandaki ışıklandırma hep aynı lüx değerinde tutmak istiyorum. Ayrıca ldr ölçüm değerlerini bir dosyaya zaman tarih ile kaydetmek istiyorum.

  2. Kerem bey , bu devre ile 12v luk 10 ledli bir infrared projetörün ışık şiddetini otomatik dimmer gibi kullanabilirmiyim? daha açık olmak gerekirse, belirli bir alanı kamera ile kontrol etmek istiyorum fakat hiç birşekilde o alanın gün ışığından bile etkilenmeden ışık şiddetini hep sabit tutmak istiyorum .bu konuda bana yardımcı olabilirmisiniz? teşekkürler.

CEVAP VER

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