Mekatronik Mühendisliği Forum


Arduino ile Işık Seviye Ölçümü
Değerlendir:
  • 0 Oy - 0 Yüzde
  • 1
  • 2
  • 3
  • 4
  • 5


Konu: 56
Mesaj: 64
Cinsiyet: Erkek
Kıdem: Sep 2014

Gerekli malzemeler:
  • Linki görebilmek için giriş yapmanız ya da üye olmanız gerekir.
  • Linki görebilmek için giriş yapmanız ya da üye olmanız gerekir.
  • Linki görebilmek için giriş yapmanız ya da üye olmanız gerekir.
  • Linki görebilmek için giriş yapmanız ya da üye olmanız gerekir.
  • Linki görebilmek için giriş yapmanız ya da üye olmanız gerekir.
  • Linki görebilmek için giriş yapmanız ya da üye olmanız gerekir.
  • Linki görebilmek için giriş yapmanız ya da üye olmanız gerekir.

Foto direnç, üzerine düşen ışığın şiddetine bağlı olarak değişen dirence sahip bir elemandır. Direnci, üzerine düşen ışık miktarıyla ters orantılı olarak değişir. Gündelik kullandığımız çoğu elektronik alette “fotosel” ismiyle yaygın olarak kullanılır. Bu uygulamamızda 4 adet LED’imiz, LDR’nin algıladığı ışık miktarına göre değişik sayılarda yanarak ışık seviyesi göstergesi gibi çalışacak.
Kartımızın bağlantı şeması şu şekilde:
[Resim: ders4_bb.png]

Kodumuz ise şu şekilde:


int ledler[] = {4, 5, 6, 7};
int led_sayisi = 4;
int ldr_pin = A0;
int deger = 0;
 
void setup()
{
  for (int i = 0 ; i < led_sayisi ; i++)
  {
    pinMode(ledler[i], OUTPUT);
  }
}
 
void loop()
{
  deger = analogRead(ldr_pin);
  if (deger > 0 && deger <= 255)
  {
    digitalWrite(ledler[0], HIGH);
    digitalWrite(ledler[1], LOW);
    digitalWrite(ledler[2], LOW);
    digitalWrite(ledler[3], LOW);
  }
  if (deger > 256 && deger <= 511)
  {
    digitalWrite(ledler[0], HIGH);
    digitalWrite(ledler[1], HIGH);
    digitalWrite(ledler[2], LOW);
    digitalWrite(ledler[3], LOW);
  }
  if (deger > 512 && deger <= 767)
  {
    digitalWrite(ledler[0], HIGH);
    digitalWrite(ledler[1], HIGH);
    digitalWrite(ledler[2], HIGH);
    digitalWrite(ledler[3], LOW);
  }
  if (deger > 768 && deger <= 1023)
  {
    digitalWrite(ledler[0], HIGH);
    digitalWrite(ledler[1], HIGH);
    digitalWrite(ledler[2], HIGH);
    digitalWrite(ledler[3], HIGH);
  }
  delay(100);
}
Bu uygulamamızda, analog giriş kullanarak LDR’nin algıladığı ışık seviyesini sayısal bir değere dönüştürdük. Bu sayısal değer 0 ile 1023 arasında değiştiğinden, her 255 adımda bir fazla LED’in yanmasını sağladık.
Celal Bayar Üniversitesi-Mekatronik Mühendisliği

Cevapla
Teşekkür Edenler
.


Benzeyen Konular
Konu: Yazar Cevaplar: Gösterim: Son Mesaj
  uno ile iç dış hava ölçümü serdari 2 801 18-02-2017, 08:32 AM
Son Mesaj: serdari

Foruma atla:


Konuyu görüntüleyenler: 1 Misafir

Türkçe Çeviri : MyBB Türkiye
MyBB, © 2002-2018 MyBB Group.