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

15.02.2012

Arduino Project 4 - Analog Input And Serial Com. Level 1

Herkese tekrardan merhaba

Bu çalışmada Arduino ile potansiyometreden gelen analog değerleri okuyacağız. Ardından Arduino'yu bilgisayarın seri portu ile haberleştirip bu bilgileri ekranda yazacağız. Daha önce potansiyometre kullanmadıysanız, potansiyometre nedir bilmiyorsanız ya da nasıl kullanıldığı hakkında bilgi edinmek istiyorsanız potansiyometre isimili yazımı okumanız faydalı olacaktır.

Parça Listesi


- 1K Ohm Potansiyometre
- 1x Breadboard
- Arduino Mega 2560 ya da diğer Arduinoboradlarından biri
- Arduino Yazılımı


Kod :

/*
****************
H.Melih ERDOĞAN
****************
Project 4
Name : Analog Input And Serial Com. Level 1
*/
int potPin =6;  // Analog değerlerin okunacağı bacak numarası
void setup (){
 analogReference(DEFAULT);
 Serial.begin(9600);
// Arduinonun PC ile USB üzerinden haberleşmesi için gerekli
}
void loop(){
 Serial.println(analogRead(potPin)); 

// 6 numaralı pinden okunan değerler Serial.print fonksiyonu ile bilgisayara gönderiliyor.
 delay(500);
// 500 ms bekleme yapılıyor. Bu sayede değişen değerleri gözlemlemek kolaylaşacaktır.
}


Kod derlenip Ardunio'ya yüklendikten sonra Arduino yazılımındaki en sağda bulunan serial port simgesine tıklanır. Ardından aşağıdaki resimde görünen COM11 (benim Arduino'yu bağladığım USB port numarası) penceresi açılır. Bu pencere üzerinde benim bilgisayarın seri portuna gönderdiğim değerler görülmetedir. Gönderdiğim değerler analog değerlerin dijital değerlere (1024 bitlik) olarak dönüştürülmüş halidir. Dolayısıyla ekranda okunan değerler 0 ile 1023 arasında olacaktır. Bu çözünürlük istenilirse değiştirilebilinir. İleri çalışmalarda bununla ilgili fonksiyonlarıda  kullanacağım. Şimdilik sade ve basit bir kod olmasını istedim :P

Aşadığaki resimde projenin çalıştırılmış hali ve potansiyometre sağa ve sola çevrildikçe üretilen analog değerlerin dijital değerlere dönüştürlmüş halleri görülmektedir.



Devre Tasarımı : 

Devrenizi aşağıdaki şekilde tasarlayabilirsiniz. Ben projede altı numaralı analog girişi kullandım.


Devrenin kurulmuş ve çalıştırılmış halinin fotoğrafları aşağıdaki resimlerdedir.




Projenin çalışmış şekli aşağıdaki videodan izlenebilir. Herkese yi seyirler. bir sonraki çalışmada görüşmek üzere.



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