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ı:
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.
Kerem hocam çok sağolun iki gündür bununla uğraşıyordum sonunda hızır gibi yetiştin 🙂
File “ldr.py”, line 18
reading + = 1
^
IndentationError: expected an indented block
böyle bir hata alıyorum sürekli…
Bu linkten de denedim olmadı.
File “ldr.py”, line 18
reading + = 1
^
IndentationError: expected an indented block
Sürekli bu hatayı veriyor.
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.
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.
kaç faradlık kondansatör olmalı?