Merhaba arkadaşlar ! Arduino dersleri serimizde bolca uygulama yapmaya devam ediyoruz. Bu yazımızda kurduğumuz devredeki INPUT değerine göre OUTPUT çıkışının otonom olarak nasıl değiştiğini göreceğiz. Yani bir sensör-aktüatör algoritması yazacağız.

Daha önceki yazımızda for döngüsünden bahsetmiştik >> For Döngüsü ile Kara Şimşek Uygulaması Yapalım !

Kısaca LDR Modülüne Bakalım

LDR ‘Light Dependent Resistor’ tamlamasının kısaltmasından gelmektedir ve anlamı ışığa bağımlı dirençtir. LDR ayrıca foto direnç olarak da adlandırılır. Bir direnç çeşidi olmasının yanında aynı zamanda bir pasif sensör olan LDR, ışık şiddetine bağlı olarak yapısında değişiklik gösterir. Bu Ortamdan aldığı fiziksel değişimden faydalanarak çıkışında da bir değişiklik gösterebildiği için sensör görevi gördüğünü söyleyebiliriz.

LDR

Elektronik devrelerde LDR’yi tekli halde yukarıdaki şekilde görüldüğü gibi kullanabiliriz. Ayrıca LDR ile bir kontrolcünün daha kolay kullanımı için geliştirilen LDR modüllerini de aşağıdaki şekildeki gibi inceleyebiliriz.

LDR hakkında daha detaylı bilgi edinmek istiyorsanız yazımızı inceleyebilirsiniz >> LDR Nedir? Foto Dirençlerin Çalışma Mantığı

Arduino ile LDR Kullanımı

Bu yazımızda karanlıkta çalışan LDR devresi uygulaması yapacağız. Yani aslında LDR ile ışık kontrolü yapmış olacağız. Hemen gerekli malzeme listesini inceleyelim ve uygulamaya başlayalım.

Gerekli malzemeler: ( Not: Arduino ile LDR Kullanımı ve 10. Derse Kadar Olan Dersleri “Arduino Başlangıç Seti” İle Yapabilirsiniz. Malzemeler Bu Sette! >)

Karanlıkta LED Yakan LDR Devresini Kuralım

LDR LED devresi için ihtiyacımız olan malzemeler hazır ise aşağıdaki gibi devremizi kuralım.

Arduino ile Basit LDR Devresi

Devremiz de hazır ise Arduino LDR kodunu aşağıdaki gibi yazabiliriz. Hem kod satırlarında hem de videomuzda kodun detaylı anlatımını inceleyebilirsiniz.

#define led 3 //3.Pinde LED olduğunu tanımlıyoruz

void setup() {

    pinMode(led,OUTPUT); //LED'in çıkış elemanı olduğunu belirtiyoruz
    Serial.begin(9600); //9600 Baundluk bir seri haberleşme başlatıyoruz

}

void loop() {

  int isik = analogRead(A0); //Işık değişkenini A0 pinindeki LDR ile okuyoruz
  Serial.println(isik); //Okunan değeri seri iletişim ekranına yansıtıyoruz
  delay(50);

  if(isik > 900){ //Okunan ışık değeri 900'den büyük ise
    digitalWrite(led,LOW); //LED yanmasın
  }

  if(isik 












9 Yorumlar

  1. Merhaba, çalışmalarınızı ilgi ile takip ediyorum. Verdiğiniz emek için teşekkürler. Arduino -Ldr ile 2 ledi kontol etmek istiyorum. Örneğin; Ldr ışık aldığında yeşil led sürekli açık kırmızı led kapalı olacak. Ldr ışık almadığında Yeşil led sönecek kırmızı led yanacak. Bunu arduino ile nasıl yapabilirim?

    • if(deger<=10){
      digitalWrite(kirmizi,HIGH);
      digitalWrite(yesil,LOW);
      }
      else{
      digitalWrite(yesil,HIGH);
      digitalWrite(kirmizi,LOW);

      yeşille kırmızıyı tanımladıktan sonra değere de
      int deger=analogRead(A0);
      yaptığında doğru devre bağlantısıyla yapabilirsin
      hatta kırmızıya delay ve low kodlarını girersen yanıp yanıp sönebilir daha güzel olur.

    • /* “Merhaba, çalışmalarınızı ilgi ile takip ediyorum. Verdiğiniz emek için teşekkürler. Arduino -Ldr ile 2 ledi kontol etmek istiyorum. Örneğin; Ldr ışık aldığında yeşil led sürekli açık kırmızı led kapalı olacak. Ldr ışık almadığında Yeşil led sönecek kırmızı led yanacak. Bunu arduino ile nasıl yapabilirim?” diyen arkadaşa!!!!*/
      #define kirmizi 3 //3.pinde kirmizi led
      #define yesil 4 //4.pinde yesil led

      void setup() {
      pinMode(kirmizi, OUTPUT);
      pinMode(yesil, OUTPUT);
      }

      void loop() {
      int isik = analogRead(A0); //Analog A0 sensor bagli
      delay(50);

      //Bu 900 sayisini duruma gore degistirebilirsiniz
      int seviye = 900;

      if(isik >= seviye ){ //isik siddeti seviyeden buyuk isik alma
      digitalWrite(kirmizi, LOW); //kirmizi yanma
      digitalWrite(yesil, HIGH); //yesil yan
      }

      if(isik < seviye ){ //isik siddeti seviyeden kucuk isik almama
      digitalWrite(kirmizi, HIGH); //kirmizi yan
      digitalWrite(yesil, LOW); //yesil yanma
      }

      }

  2. #define kirmizi 3 //3.pinde kirmizi led
    #define yesil 4 //4.pinde yesil led

    void setup() {
    pinMode(kirmizi, OUTPUT);
    pinMode(yesil, OUTPUT);
    }

    void loop() {
    int isik = analogRead(A0); //Analog A0 sensor bagli
    delay(50);

    //Bu 900 sayisini duruma gore degistirebilirsiniz
    int seviye = 900;

    if(isik >= seviye ){ //isik siddeti seviyeden buyuk isik alma
    digitalWrite(kirmizi, LOW); //kirmizi yanma
    digitalWrite(yesil, HIGH); //yesil yan
    }

    if(isik < seviye ){ //isik siddeti seviyeden kucuk isik almama
    digitalWrite(kirmizi, HIGH); //kirmizi yan
    digitalWrite(yesil, LOW); //yesil yanma
    }

    }

  3. rip murrayımı coh ozledim bana onu getirrr çaabbbbukkkkk.
    dışardan gördüğün gibi değil
    bir kez olsun buradan bakmadın
    üzüldüm zannediyorsan şunu bil
    canım yandı geçti çok yakmadın
    yaz gelir içimi sarar aynı telaşlar
    kim bilir belki de bir aşk başlar
    dalgalanır deniz ne çıkar durur yavaşlar
    kim bilir belki de bir aşk başlar
    ben özledim galiba seni
    bu yüzden bu kadar sitemlerim
    sen üzülme acıdan bu sözlerim
    karşımda görsem dolar gözlerim

  4. LDR ile 2 ledi sırasıyla yakma istiyorum

    LDR değeri 800 değerine eşit ve üstündeyken mavi, 800 değerinin altındayken kırmızı led yanan devrenin kodunu yaza bilen yada bilen var mı? yanyana iki adet led olacak şekilde biri mavi, diğeri kırmızı

CEVAP VER

Please enter your comment!
Please enter your name here