void loop() ve analogRead açıklaması

Bkz: Önceki konular;
26 Satırda İsrafı Önleme
26 Satır Bahanesiyle, Ucundan Bit-Byte, MBit/s Meali


Kaldığımız yerden devam edelim..

// Sürekli çalışan fonksiyonumuz.
// Başlarda biraz kafa karıştırıcı olabilir.
// Zira normalde bir program akışı içinde, yazdığınız akış sona geldiğinde
// programın durmasını bekleriz.
// Ancak burada bazı dillerdeki _main_ fonksiyonları gibi,
// loop fonksiyonu sürekli çalışmaktadır.
// bu da bize “program sonu” olarak adlandıranbileceğimiz bir yer olmadığını gösterir.

// bi yerlerde başlayıp, bi yerlerde bitmesi, zihimizin çalışma mantığına daha uygun olduğu için
// şöyle denilebilir.. şu oluyor, bu oluyor.. sonra şu çalışıyor, bunu tektilliyor vs..
// en SON olarak buradaki WHILE döngüsü çalışıyor denilebilir.
// ki bu SON WHILE’ın çalışma şekli şekli şöyledir:
// while (elektrikler_var_mi) {}

 


// Cihazların üzerindeki A0, A1, A2.. şeklindeki pinlere gelen değerleri okumak için
// analogRead kullanıyoruz.
// hatırlayalım; Dijital demek 0-1 demekti.
// eğer alacağımız değerler 0-1 değilde 3 86 156 325 874 sadece var-yok sıfır-bir olmaktan
// öte değerler ifade ediyorsa lazım olan şey Analog işlemdir.
// bir ortamdaki “ışığın şiddeti” dediğimizde de böyle bir durumdan bahsediyoruz.
// sabah öğle akşam üstü gece yarısı sürekli değişecektir.
// ya da şu ayaklı, ışığı ayarlanabilir lamlarını düşünün.
// böyle bir ortamda ışık şiddetini 0-1’in ötesinde geniş bir sıkalada ifade edilecektir.

// LDR sensörü ise, ışığa duyarlı bir dirençtir. Üzerine düşen ışık değiştiğinde
// ldr’den okduğumuz direnç değerleri de değişir.

// O halde, LDR’yi dijital pinlere değil, analog pinlere bağlamak daha sağlıklı olacaktır
// ayrıca gelecek olan değer geniş bir aralıkta olduğu için biz de
// 0-300 arasındaysa şunu yap, 301 – 600 arasında bunu, 601-900 arasında şunu yap
// gibi farklı işlemler yapabileceğimiz gibi

// gelecek olan ışık şiddetini, bir servo motorun açısına eşitlemek gibi
// ışık şiddetinin az ya da çok değişimine dağlı olarak
// motorun açısını da orantılı ve anlık şekilde değiştirebiliriz.

// bu projede sabah olduğunda, sokak lambalarının sönmesi için, ışık şiddettine bağlı olarak
// çalışacak aşağıdaki kodları yazacağız.

// aşağıdaki linkten murattatar.xyz üzerinde daha okunur ve renkli olarak görebilirsiniz.

void loop() { 
  x = analogRead(A0);  
  if (x > 200) {
    while (1) {
      digitalWrite(3, LOW);
      x = analogRead(A0);
      if (x < 200) {
        break;
      }
    }
  }



  x = analogRead(A0);
  if (x < 200) {
    digitalWrite(3, HIGH);
    while (1) {
      x = analogRead(A0);
      if (x > 200) {
        break;
      }
    }
  }


}



Devam açıklamalar gelecek..
Görsel: shutterstock

Leave a Comment

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir