Arduino LDR ile Renkli Gece Lambası Projesi

 LDR ve RGB LED kullanarak karanlık ortamlarda yanan ve renk değiştiren bir devre yapacağım bu yazımda.

 

 Malzemeler 

– 1 adet Arduino Uno

– 7 adet Jumper kablolar 

– 1 adet RGB LED

– 1 adet LDR

– 1 adet 10K ohm direnç 

-1 adet 330 ohm direnç

– Breadboard

– A4 veya istediğiniz rulo yapabileceğiniz bir adet kağıt

Çalışma Prensibi

Devremizde amacımız karanlık bir ortamda lambanın otomatik olarak yanması ve belirli sürelerde rengini değiştirmesidir. LDR karanlık bir ortamda bulunduğunda direnç miktarı azalacak ve bu sayede LED yanacak. LDR’nin çalışma prensibi hakkında daha fazla bilgi edinmek için LDR Nedir ? yazımıza bakmayı unutmayın . Haydi devremizi yapmaya başlayalım !

Devre

 

  1. Adım : LDR’yi breadboarda yerleştiriyoruz.

     LDR’nin bir bacağından arduino üzerinde bulunan GND pinine bağlantımızı sağlıyoruz.

     Diğer bacağından ise arduino üzerinde A0 ile birleştirdikten sonra tekra aynı bacağa 10K ohm direnç takıyoruz ve direncin boşta kalan bacağını ise arduino üzerinde bulunan 5V ile birleştiriyoruz.

 

          2. Adım: RGB LED’i yerleştiriyoruz.

   Öncelikle uzun bacağına 330 ohm’luk direncimizi yerleştiriyoruz ardından direncin boşta kalan bacağını arduino üzerinde bulunan GND pini ile değiştiriyoruz.

   Daha sonrasında RGB’nin kırmızı bacağını( yani fotoğrafta gözüken bir numaralı bacağı) arduino üzerinde  11 numaralı pin ile 

     Mavi bacağını ( fotoğaraftaki 4. pin ve unutmayınız bazı RGB LED’ler de yeşil ve mavi bacağın yeri farklı olabilir.) 9. pin ile

    En son da yeşil ( yani fotoğraftaki 3. bacak) bacağını arduino üzerinde bulunan 10. pinle birleştirdik ve devremiz tamamlandı. 

   A4 kağıdını kullanacağımız yere geldik . A4 kağıdını rulo yapıp ışığın daha iyi yayılması için RGB LED’in etrafına yerleştirin.

Kod

 

float RGB[3];

int ldrPin = 0;     // LDR’nin bağlı olduğu pin

int ambientLight;   //ortam ışığının değişkenini tanımlıyoruz

int redLed   = 11;  //kırmızı bacağın bağlı olduğu pin

int greenLed = 10;  // yeşil bacağın bağlı olduğu pin

int blueLed  = 9;   // mavi bacağın bağlı olduğu pin

 

void setup(){

  pinMode(redLed,OUTPUT);  // RGB LED’in bacaklarını çıkış olarak ayarladık

  pinMode(greenLed,OUTPUT);

  pinMode(blueLed,OUTPUT); 

 

 

  digitalWrite(redLed,LOW);

  digitalWrite(greenLed,LOW);

  digitalWrite(blueLed,LOW);

}

 

void loop(){

  for (float x=0;x<PI;x=x+0.00001){

    RGB[0]=255*abs(sin(x*(180/PI)));           // ışığın seviyesini ölçüyoruz kırmızı led için

    RGB[1]=255*abs(sin((x+PI/3)*(180/PI)));    // ışığın seviyesini ölçüyoruz yeşil led için

    RGB[2]=255*abs(sin((x+(2*PI)/3)*(180/PI)));// ışığın seviyesini ölçüyoruz mavi led için

    ambientLight=analogRead(ldrPin); // ortamdaki ışık seviyesini okuma

    if(ambientLight>600){ // eğer ortamdaki ışık çok düşükse ise aşağaki komutlar uygulanıyor

      analogWrite(redLed,RGB[0]);

      analogWrite(greenLed,RGB[1]);

      analogWrite(blueLed,RGB[2]);

    }

    else{

      digitalWrite(redLed,LOW);

      digitalWrite(greenLed,LOW);

      digitalWrite(blueLed,LOW);

    }

    for(int i=0;i<3;i++){

      if(RGB[i]<1){

        delay(100); // bekleme

      }

      if(RGB[i]<5){

        delay(50);

      }

      if(RGB[i]<10){

        delay(10);

      }

      if(RGB[i]<100){

        delay(5);

      }

    }

    delay(1);

  }

}

Leave a Comment

Your email address will not be published. Required fields are marked *

Scroll to Top