16.02.2012

Arduino Project 5 Analog Input Level 2 - LDR

Herkese tekrar merhaba

Bu projede LDR nin ürettiği analog değerleri Arduino ile okuyacağız ve bu değerleri baz alarak led ışığının parlaklığını kontrol edeceğiz. LDR aydınlıkta az direnç, karanlıkta yüksek direnç gösteren devre elemanıdır. Bu sayede LDR ile ortamın aydınlığı hakkında bilgi elde edebiliyoruz. Aşağıdaki resim bir LDR ye aittir.

LDR

Not : Bu yazıdan önce LDR ve PWM ile ilgili yazılarımı okumanız projeyi tam olarak anlamayı kolaylaştıracaktır.

Devrede kullanılacak olan elemanlar

Parça Listesi :

- 1 Adet 220 Ohm Direnç
- 1 Adet Led
- 1 Adet 1K Ohm Direnç
- 1 Adet LDR 
- 1 Adet Breadboard
- 1 Adet Arduino Mega 2560 ya da diğer Arduino boardlarından biri
- Arduino Yazılımı

Devrede kullanılcak olan elemanlar elmizde varsa yazılımı yazmaya başlayalım. Ardındanda  gerekli olan devre tasarımını oluşturacağız.

Kod :

/*
***************
H.Melih Erdoğan
***************
Project 5
Name : "Analog Input Level 2"
*/

int sensePin = 0; // LDR bağlanılan Analog Pin numarası
int ledPin = 8; // Led bağlanacak olan pin numarası
int val; // LDR den gelecek olan değerlerin saklanacağı değişken
int ledLevel; // Led parlaklığını kontrol edeceğimiz değişken

void setup(){  // Gerekli olan ayarlar
  analogReference(DEFAULT);
  Serial.begin(9600); // USB Seri bağlantı baud rate 9600 olarak ayarlandı.
  pinMode(ledPin, OUTPUT); //8 numaralı pin çıkış olarak ayarlanıyor.
}
void loop(){ 
  val = analogRead(sensePin);
// Okunan analog değer val isimli değişkene atılıyor
/*Okunan değerlerden yalnızca belirli aralıkta olanlar kabul ediliyor. Burada aralık (750-900)
   Bu aralık değerini belirlemek için LDR nin ürettiği analog değerleri seriport üzerinden okuyup çıkarasaya
   biliriz. Ör; bir önceki çalışma
  Bu çalışmada LDR nin en aydınlık durumda 900 değeri en karanlık durumda ise 750 değeri ürettiği gözlemlenmiştir.   
    LDR eğer bu aralık dışında bir değer üretirse bu aşamada elenir. Bunun yapılmasının amacı bizim için en
    parlak ve en karanlık hangi değerler nedir onu belirlemek.*/
  val = constrain(val,750,900);
// Ardından analog değer 256 bit çözünürlüğe sahip dijital değeri dönüştürlüyor.
  ledLevel = map(val,750,900,255,0);
  analogWrite(ledPin, ledLevel);
//Ardından bu değerler Led bağlı olan bacağa PWM olarak gönderiliyor.
}

Yapılması gerekli olan devre tasarımı :


Projenin kurulmuş  halinin fotoğrafları





Projenin çalıştırılmış halinin videosu aşağıdadır herkese iyi seyirler. Diğer çalışmalarda görüşmek üzere.

                                        

Diğer Arduino projelerine de bakmak isterseniz technologylaboratory.blogspot.com/search/label/Arduino

Hiç yorum yok:

Yorum Gönder