#5 Arduino ile Gece Lambası uygulaması



Malzemeler:


1 Adet Arduino Uno(25TL)
1 Adet Fotodirenç(LDR olarak da satılır (1,5- 2 TL)
10 Adet Led (1 TL)
1 Adet 220 ohm direnç(0,10 TL)

Devre kurulumu:

LDR nedir derseniz Light Dependent Resistor derim :) Yani ışığa bağlı direnç.Aydınlık ortamda farklı değeri var karanık ortamda farklı değeri var. Gelelim devremize. Devre kurulu yine basit burada dikkat edeceğiniz nokta LDR nin hangi bacağını A0 pinine götüreceğinizdir. Neden A0 dersek Ldr bize dijital veri vermeyecektir yani ya 0 ya 1 göndermeyecektir. Artamın aydınlığına göre 0 ile 1023 arası bir değer gönderecektir. Bu aralıktaki değerleri okuyabilmemiz için analog pinine bağladık.Aşağıdaki gibi devreyi kuralım. Her bir ledin + kısmı arduinonun 0 ile 9. bacakları arası bir pine ledin - kısımları ise GND pinine gidiyor.

Programlama:

Bu kısımda yeni öğreneceğimiz şey analogRead komutudur. Ldr bize 0 ile 1023 arası bir değer göndereceğini söylemiştim. Ama tam olarak 0 ya da tam olarak 1023 göndermeyebilir. Bu değerleri görebilmemiz için Serial ekranını kullanacağız. Serial Ekranını kullanmamız Serial.print(veri); komutuyla gerçekleşir. Ancak sadece bu komutu yazmamız ekranda verileri görmemize yardımcı olmaz çünkü Serial Ekranı görmemiz için void setup kısmında Serial.begin(9600); yazmamız gerekir. Burdaki 9600 seri haberleşmemizin hızını belirtir. Bunu ayrıntılı bilmenize gerek yok genelde bu kullanılır. Peki nerden seri ekrana ulaşabilirim.
Kırmızı ile gösterdiğim yere tıklarsanız Serial ekrana ulaşabilirsiniz ve kodu arduinomuza yüklediğimizde verilerin burada görüntülüyoruz. 
Programımız:


#define led1 0
#define led2 1
#define led3 2 
#define led4 3 
#define led5 4
#define led6 5 
#define led7 6 
#define led8 7
#define led9 8 
#define led10 9
#define ldr A0


int veri;
void setup() {
pinMode(ldr,INPUT);  //ldr den veri okuyacağımız için ınput olarak tanımladık
pinMode(led1,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(led3,OUTPUT);
pinMode(led4,OUTPUT);
pinMode(led5,OUTPUT);
pinMode(led6,OUTPUT);
pinMode(led7,OUTPUT);
pinMode(led8,OUTPUT);
pinMode(led9,OUTPUT);
pinMode(led10,OUTPUT);
Serial.begin(9600);  // Seri haberleşmeyi başlattık
}

void loop() {
veri=analogRead(ldr);
Serial.print("Gelen değer: ");  //Serial.print yazdığım için bir sonraki yazılacak veriyi yanına gösterecektir
Serial.println(veri);           //Serial.println yazdığım için bir sonraki yazılacak yazıyı alt satırda gösterecektir
if(veri<5){
digitalWrite(led1,HIGH);
digitalWrite(led2,HIGH);
digitalWrite(led3,HIGH);
digitalWrite(led4,HIGH);
digitalWrite(led5,HIGH);
digitalWrite(led6,HIGH);
digitalWrite(led7,HIGH);
digitalWrite(led8,HIGH);
digitalWrite(led9,HIGH);
digitalWrite(led10,HIGH);
}
else{
digitalWrite(led1,LOW);
digitalWrite(led2,LOW);
digitalWrite(led3,LOW);
digitalWrite(led4,LOW);
digitalWrite(led5,LOW);
digitalWrite(led6,LOW);
digitalWrite(led7,LOW);
digitalWrite(led8,LOW);
digitalWrite(led9,LOW);
digitalWrite(led10,LOW);
}
delay(60000); // ldr nin her dakikada bir ölçüm almasını sağladık
}
Benim ölçümlerimde karanlık ortamda 0 ile 5 arasında değerler okudum. Aydınlık ortamda ise 5 den fazla değerler okudum. Bunun için 5 den küçükken karanlık ortam olduğu için ledi yak komutu verdim. 5 den büyük değerler için ortam aydınlık olduğu için ledi kapat komutu verdim. Okuduğunuz değerler genellikle değişkenlik gösterebilir. Sizin limit değeriniz 5 değil de 20 de olabilir. Bunu belirlemek için ldr nin aydınlık ve karanlık ortamlarda gönderdiği değerleri belirleyip limit değerinizi kendiniz oluşturun. Artık gece lambası yapmak için tek yapmanız gereken bir adaptör ile arduinomuzu prize bağlayıp gece olmasını beklemek:)

Yorumlar

Bu blogdaki popüler yayınlar

Sinyal Jeneratörü Nedir? (Function generator)

Arduino'dan Python'a veri aktarma

#12 Arduino ile Step Motor Kontrolü