Arduino Programlama Dili – for Döngüsü

2
15951
Okunma

For döngüsü


for döngüsü

for döngüsü, tırnaklı parenteze eklenmiş bir kod bloğunu tekrarlamak için kullanılır. Döngüyü artırmak ve sonlandırmak için genellikle bir artış sayacı kullanılır.for döngüsü tekrar eden işlemler için yararlıdır ve genellikle veri / pin kombinaysonu üzerinde çalışmak için dizilerle birlikte kullanılır. Genellikle artış veya azalış sayacı olarak kullanılır.

Bir değerden başka bir değere kadar artıp yada azalarak son değerden sonra döngüyü bitiren operatördür.

for (başlangıç; bitiş; artış veya azalış) {

 //kod(lar);

}

Başlangıç x okunur ve atanan değer verilir. Döngüde her defasında bitiş değeri test edilir; Eğer doğruysa, artış devam eder. Bitiş yanlış olduğunda, döngü sona erer ve başa döner.

// Bir PWM pin kullanarak bir LED'i karartın
int PWMpin = 10; // pin 10'da 470 ohm luk bir dirençle led bağlı

void setup ()
{
   // kurulum gerektirmez
}

void loop ()
{
    for (int i = 0; i <= 255; i ++) {
       analogWrite(PWMpin, i);
       delay(10);
    }
}

Yukarıdaki örnekte; PWMpin değişkeni tanımlayıp 10. pine atama yaptık. Daha sonra for döngüsü içinde i isimli bir değişken oluşrueup değerini 0 yaptık. Eğer i 255’den küçük veya eşit ise i yi arttır.

10 mili saniyelik gecikme ile leddeki parlaklık artacak ve değer 255 olduğunda tekrar başa dönecek.C for döngüsü, BASIC dahil diğer bazı bilgisayar dillerinde bulunan döngülerden çok daha esnektir.

Noktalı virgül gerekli olsa da, üç üstbilgi elemanının herhangi biri veya tümü atlanabilir.

Ayrıca, başlatma, bitiş ve artış için kullanılan kodlar, ilgisiz değişkenlere sahip herhangi bir geçerli C ifadesi olabilir ve herhangi bir C veri türünü kullanabilir. Bu alışılmadık ifadeler, bazı nadir programlama sorunlarına çözümler sağlayabilir.

Örneğin, artım satırında bir çarpma kullanılması, bir logaritmik ilerleme oluşturur:

for(int x = 2; x < 100; x = x * 1.5){
println(x);
}

x değeri: 2,3,4,6,9,13,19,28,42,63,94 değerlerini döndürür. Başlangıç değerimiz 2(x) bitiş değerimiz ise 100. Burda farklı olan artış değerimiz her seferinde 1.5 çarpılarak artacak.

Burdaki veri tipimiz int olduğundan noktalı değerler görülmez. Bunu ilerleyen konularda göreceksiniz.

Başka bir örnek, LED önce parlaklaşır sonra yavaşca parlaklığı düşer;

void loop()
{
   int x = 1;
   for (int i = 0; i > -1; i = i + x){
      analogWrite(PWMpin, i);
      if (i == 255) x = -1;             // sınırdan yön değiştir.
      delay(10);
   } 
}

Bir x değişkeni tanımlayıp değerini 1 verdik.
for
döngüsü içinde i değişkeni tanımlayıp başlangıç değerini 0 yaptık.
Eğer i -1‘den büyük ise i‘yi x ile topla dedik.
Eğer(if) i 255‘e eşit ise x‘i –1 yap.
Bizim formülümüzde i + x kullandık. i 255‘e ulaştı ve x‘e -1 atandı. Şimdi ne olacak ? Formül devam ediyor. i + x yani 255 + (-1) = 254

Bu böyle ta ki i değeri -1 den büyük olana kadar yani 0 olana kadar devam edecek. 0 olunca sınıra takılıp döngü tekrar başlıcak. Böylece ledimizin 10 mili saniye arayla parlaklığı artacak tam tepe noktasında tam tersi 10 mili saniye arayla parlaklığı düşecektir.

Örnek Uygulama:

Arduino For Döngüsü İterasyonu (Knight Rider)


NOT: Buradaki bilgiler arduino.cc sitesinden Türkçeye çevrilmiştir.
Türkçe çevirinin tüm hakları saklıdır.
Bu web sayfası sadece link olarak paylaşılabilir.
Sayfada herhangi bir hata, öneri ve yorumlarınız için iletişim kurmanızı bekleriz.


2 YORUMLAR

  1. for döngüsünde çevirdiğimiz i değerini delay içerisinde bir sayıya atayabiilir miyiz? Örneğin şu şekilde bir kod:
    for(int i=500; i<=300 ; i=i-100){
    digitalWrite(10,HIGH);
    delay(i);
    digitalWrite(10,LOW);
    delay(i);
    }

CEVAP VER

Please enter your comment!
Please enter your name here

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.