Arduino Ders 7 (Işık Seviyesi Ölçmek)

mithat999

Katılımcı Üye
20 Ağu 2011
346
0
Istanbul
Gerekli malzemeler:
  • Arduino UNO
  • Breadboard
  • 4 adet LED
  • 4 adet 330Ω direnç
  • 1 adet 10kΩ direnç
  • 1 LDR (fotosel)
  • İki ucu erkek jumper kablo
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:

6qdR53.png


Kodumuz ise şu şekilde:

Kod:
int ledler[] = {4, 5, 6, 7};
int led_sayisi = 4;
int ldr_pin = A0;
int deger = 0;
 
**** setup()
{
  for (int i = 0 ; i < led_sayisi ; i++)
  {
    pinMode(ledler[i], OUTPUT);
  }
}
 
**** 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.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.