Arduino #6 – LDR (Foto Direnç) ve Serial Monitor

Bu dersimizde basit bir ışık sensörü olan LDR (foto direnç) ile uygulamalar yapacağız. LDR, ortamdaki ışığın şiddetine göre üzerine düşen direnç değerini ters orantılı olarak ayarlayabilen basit bir sensördür.
Direnç değeri aydınlıkta azalır, karanlıkta ise artar. Ne kadar basit desek de hayal gücünüze bağlı olarak çeşitli şekillerde kullanabilirsiniz.

İlk uygulamamızda LDR ile elde edilen verileri bilgisayar ekranında görmemizi sağlayan Arduino IDE’ye ait “Serial Monitor”ü kullanacağız. Daha sonra LDR ile elde edilen verilere göre LED lambaları kontrol edeceğiz.

LDR

https://medium.com/franzininho/sensor-de-luz-com-ldr-d974326aa65d

LDR’yi azda olsa tanıdınız peki bu “Serial Monitor” nedir?

Serial Monitor (Seri Port Ekranı) – Arduino ile diğer bilgisayarlar ve cihazlar arasındaki iletişimi sağlar. Örneğin, sensörlerden alınan verileri okuruz veya Arduino veya başka bir cihaz çalışırken o cihaza herhangi bir ileti gönderebiliriz. Serial Monitor’e aşağıdaki hareketli resimde olduğu gibi de ulaşabilirsiniz, Ctrl+Shift+M kısayolunu kullanarakta ulaşabilirsiniz.

Serial Monitor (Serial Port Ekranı)

Sanırım bu dersle alakalı ön bilgimiz oluştu. Şimdi LDR’nin devreye nasıl bağlanacağına bakalım.

LDR Bağlantısı
  • Arduino UNO
  • Breadboard
  • LDR
  • 10K ohm direnç
  • Jumper Kablolar

LDR’nin bir bacağını +5V’a (kırmızı kablo), diğer bacağını 10K ohm’luk direnç ile birlikte GND’ye (yeşil kablo) bağlıyoruz. Direnç ve LDR bacaklarının ortak olarak bulunduğu hattan ise Arduino’ya veri göndermek için analog girişlerden herhangi birine (A0, A1, A2, A3, A4, A5) kablo (mavi kablo) çekiyoruz.


ARDUINO IDE

void setup() {
    Serial.begin(9600);
    //Seri port ekranını başlatır.
    //9600-Saniye başına gönderilen ve alınan bit. Genellikle 9600 yazılır.
}

void loop() {
    int ldr_deger=analogRead(A4);
    //A4 pininden okunan değeri ldr_deger değişkenine atadık.
    
    Serial.println(ldr_deger);
    //Seri port ekranına ldr_deger değişkeni üzerindeki değeri yazdırdık.
    
    delay(1000);//1 sn'ye beklettik.
}

Serial.begin(…) – Seri iletişimi başlatmak için kullanırız. void setup() bölümüne yazılır. Parantez içindeki değer saniye başına gönderilen ve alınan bit anlamına gelmektedir. Genellikle 9600 yazılır fakat seri iletişime geçilecek cihaza göre yazılacak değer değişebilir. Hangi değer yazıldıysa Seri Monitor’de de o değer ilgili kısımdan seçilmelidir.1

Seri Monitor “Baud Rate”

Serial.println(…) – Seri Monitor’e herhangi bir şey yazdırmak için kullanırız. Komut her işleyişinden sonra imleç bir alt satıra iner. Eğer bir alt satıra inmeden yazmasını istersek Serial.print(…) şeklinde kullanmalıyız.

LDR’nin elde ettiği verileri Serial Monitor’de görüyoruz.

Bu uygulamamızda herhangi fiziki bir sonuç göremeyeceğiz. Sadece devrenizi kurup kodlarınız yükledikten sonra yukarıdaki görseldeki gibi LDR’nin belirli ışık seviyelerinde ölçtüğü verileri Serial Monitor’de göreceğiz.

NOT – LDR’nin ölçtüğü veriler kullanılan LDR cinsine veya bağlanan direncin büyüklüğüne göre 0-1023 arasında değişen değerler almaktadır.

UYGULAMA 2 – LDR ile LED Kontrolü

Bu uygulamada LDR’yi kullanarak 3 tane LED’i kontrol edelim. Bir önceki uygulamada LDR’nin ışık seviyesini ölçmesi sonucu elde edilen sayıları Serial Monitor’de gördük. Bu sayıları baz alarak LEDleri ayrı ayrı kontrol edelim. Mesela karanlık bir ortamda sadece kırmızı LED yansın, loş bir ortamda sadece sarı LED yansın, aydınlık bir ortamda sadece yeşil LED yansın.

Bu uygulamaya ait devre görselini ve Arduino kodlarını gizlenmiş olarak aşağıya ekleyeceğim. Artık belli bir seviyeye geldiğinize göre bu uygulamayı aşağıya bakmadan yapabileceğinize inanıyorum 🙂 Daha sonra kontrol etmek için “… GÖSTER”e tıklayarak görüntüleyebilirsiniz.


TINKERCAD


LDR ve bundan sonra sık sık kullanacağımız Serial Monitor’den bahsetmeye çalıştım. Bu konu ile alakalı değerli soru ve görüşlerinizi yorum olarak paylaşın.

Kaynaklar:

1.Dökmetaş, Gökhan. Arduino Eğitim Kitabı, 2017

You may also like...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

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