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
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.
/*
***************
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
***************
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 enparlak 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.
}
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ı
Diğer Arduino projelerine de bakmak isterseniz technologylaboratory.blogspot.com/search/label/Arduino
Hiç yorum yok:
Yorum Gönder