Döngü Kilidi

Önceki konular:
26 Satırda İsrafı Önleme
26 Satır Bahanesiyle, Ucundan Bit-Byte, MBit/s Meali
void loop() ve analogRead açıklaması
“Cihazın Algılaması” Dediğimiz Şey
Evdeki Hesap Döngüye Uymazsa
Tamam Sabah Söndü ama Akşam Olunca da Yansın


Değer okumalarımız, değişken atamalarımız ve ardından Işığın şiddetinin  çok olmasına göres Lambalar’ın sönme işine ardından akşam olduğunda yeniden yanması işlemi için gerekli kodlara bakmıştık.

Arada Sessiz Hata diyebileceğimiz, programın hatasız çalışmasına rağmen istediğimiz sonuçları alamadığımız durumlara bakmıştık.

Son olarak, istediğimiz durum da gerçekleşmişti. Ancak uygulama kısmına gelince teori kısmında iken pek görülemeyen bir saha pratiği ile karşılaşmıştık.

Kodlar üzerinden gidecek olursak

int x;

void setup() {
  Serial.begin(9600);
  pinMode(A0, INPUT);
  pinMode(3, OUTPUT);}

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

  if (x < 500) {
    digitalWrite(3, HIGH); }

}

Burada her şey normal görünüyor ve bir hata yok. Ancak korku filmi tadında durumlarla karşılaşmamız olası. Yani ışığın çok hızlı bir şekilde yanıp sönmesi durumu.

O halde, olaya yeni bir bakış açısı daha getirmemiz daha sağlıklı olabilir.

//Benzer vak’alar,
// bir düğme basılması ve sonrasındaki tutarsızlıklar
// ya da tam olarak düğmeye basma saniyeleri içinde gerçekleşen na hoş durumlar için güzel çözümlerden birisi olabilir. (Örn. şu an evdeki televizyon ve kumandası arasında böyle bir sorun var, ses düğmesine kısa kısa basınca sorun yok.. ancak basılı tutunca, fazlaca yüksek bir hızda artıyor, sesi alçaltmak için aksi yönde basınca bu kez de çok hızlı bir şekilde düşüyor.)

While kilidi

Loop döngüsü deyip duruyoruz.. peki biz kendimiz bir döngü yapsak.. bu sonsuza kadar işine manuel(?) müdahaleler yapsak.. ve bizim istediğimiz durumlar için sonsuzluk yolculuğuna çıksa.. ya da sonsuzluk yolculuğunda hangi yöne gideceğini biz söylesek 

Bilindiği (bilinmesi gerektiği) gibi, while döngüsünün for döngüsünden farkı;
for: “3-5-817 gibi belirli bir sayıda dön”, demekken
while: “koşul sağlandığı sürece dön” demek.

Peki,
While (1==1) { .. }
dersek?

Aradığımız cevap derim 😉 Arduino’daki default fonksiyonlardan olan loop() gibi, kendimizin kontrolünde olan bir sonsuzluk döngüsü elde etmiş oluruz 😉

So.. 😉
Buraya kadar düzenli takip ettiyseniz yapılacakları sezdiniz sanırım 😉

 

“Döngü Kilidi” için bir yanıt

Bir cevap yazın