Uygulama Detay
Eyl 09  -  206 Görüntülenme  -  MUSTAFA BATTALOĞLU

Arduino İle Analog-Dijital Uygulama 2

Arduino
Daha önce analog-dijital kavramını incelediğimiz bir uygulama gerçekleştirmiştik. Bu uygulama analog-dijital kavramını inceleyeceğimiz 2. uygulamamız olacak.

Öncelikle uygulamamızda kullanacağımız ldr ile ilgili kısa bir bilgi verelim. Ldr direnç değeri üzerine düşen ışık miktarına göre değişen elektronik devre elemanıdır. Ldr nin üzerine düşen ışık miktarı arttığında direnç değeri azalır, üzerine düşen ışık miktarı azaldığında ise direnç değeri artar. Bu özelliği ile ldr ışık sensörü olarak kullanılmaktadır.

Uygulamamızda 1 adet arduino uno, 1 adet ldr ve 1 adet led diyot bulunmaktadır. Devremizde, ldr nin üzerine düşen ışık miktarına göre bağlı bulunduğu A0 pinine 0-5V arasında bir analog gerilim uygulamış olacağız. Uyguladığımız bu analog gerilimi okuyarak dijitale çevireceğiz. Dijitale çevirdiğimiz bu değeri belirlediğimiz bir değer ile karşılaştırarak bu değerin altında ise ledin bağlı bulunduğu pine dijital 1 göndererek ledin yanmasını sağlayacağız.

 

Uygulamanın Kaynak Kodları

 

#define ldr A0
#define led 3

int alinan = 0;

Yukarıdaki kod satırlarında ldrnin bağlı olduğu pini, led diyotun bağlı olduğu pini tanımlıyoruz. Artık A0 yerine ldr, 3 yerine de led ifadelerini kullanacağız. En alt satırda ise analog olarak okuyacağımız değer dijitale çevirerek tutacağımız değişkeni tanımlıyoruz.

void setup()
{
  pinMode(ldr, INPUT);
  pinMode(led, OUTPUT);
}

Buradaki setup() fonksiyonu programın başlangıç ayarlarının yapıldığı fonksiyondur. Programı çalıştırdığımızda bir defa çalışır. pinMode(); fonksiyonu ile ldr pini giriş olarak ayarlanıyor. led pini ise çıkış olarak ayarlanıyor.

void loop()
{
  alinan = analogRead(ldr);
  alinan = map(alinan, 0, 1023, 0, 255);

  if (alinan < 50)
  {
    digitalWrite(led,HIGH);
  }
  else
  {
    digitalWrite(led,LOW);
  }
}

loop() fonksiyonu programda işlemlerin yapıldığı sürekli çalışan kısımdır. analogRead(); fonksiyonu ile ldr pininden alınan analog değer okunarak dijitale çevriliyor ve alinan değişkenine aktarılıyor.

Analog değer 0-5V arasında dijital değer ise 0-1023 arasındadır. Bu değeri 0-255 arasına çevirerek uygulamalarımızda kullanabilmekteyiz. 0-1023 arası değer ikilik sistemde 10 bit lik değere karşılık gelmektedir. Arduino da 8 bit ile çalışacağımızdan dolayı 0-255 arasına çevirmemiz gerekmektedir. map(); fonksiyonu bunu yapabilmemizi sağlar. Burada birinci parametre çevrilecek değer, ikinci parametre çevrilecek değerin minimumu, üçüncü parametre çevrilecek değerin maksimumu, dördüncü parametre yeni değerin minimumu, son parametre ise yeni değerin maksimum değeridir.

Son kısımda ise if koşul ifadesi ile alinan değerini kontrol ediyoruz. Eğer değer 50 den küçük ise digitalWrite(); fonksiyonu ile led pinine dijital 1 gönderiyoruz ve ledin yanmasını sağlıyoruz. Fakat değer 50 den küçük değil ise led pinine dijital 0 gönderiyoruz ve ledin sönmesini sağlıyoruz. Burada LOW ifadesi 0, HIGH ifadesi 1 anlamında kullanılmıştır.

 

Uygulamanın kaynak kodları ve devre şeması aşağıda verilmiştir. Böylelikle uygulamamızı tamamlamış olduk bir sonraki uygulamada görüşmek üzere iyi çalışmalar.

 

#define ldr A0
#define led 3

int alinan = 0;

void setup()
{
  pinMode(ldr, INPUT);
  pinMode(led, OUTPUT);
}

void loop()
{
  alinan = analogRead(ldr);
  alinan = map(alinan, 0, 1023, 0, 255);

  if (alinan < 50)
  {
    digitalWrite(led,HIGH);
  }
  else
  {
    digitalWrite(led,LOW);
  }
}

 

Uygulamanın Devre Şeması

 

 

 

 

Elektrik-Elektronik Teknolojisi, C# Nesne Tabanlı Programlama, ASP.net Web Uygulamaları

mustafabattaloglu@gmail.com

Uygulamaya mesaj gönder

Ad-Soyad:
Eposta:
Mesaj:
 
Benzer Uygulamalar
Arduino

Arduino millis() Fonksiyonu Kullanımı

Eyl 11  -  265 Görüntülenme
Temel Elektronik

Lojik Kapılar

Eyl 10  -  257 Görüntülenme
© 2018 | elektrohareket.com sitesindeki tüm yazılar yazarların sorumluluğundadır. Sitede yayınlanan içerik ve görseller kaynak gösterilmeden kullanılamaz.