for döngüsü, ifadeleri önceden belirlenmiş bir sayıda yürütür. Döngü için kontrol ifadesi, tamamen döngü parantezleri içinde başlatılır, test edilir ve manipüle edilir. Döngünün içindeki aktiviteden bağımsız olduğu için yapının döngü davranışını ayıklamak kolaydır.
Her döngü için, çalışmasını belirleyen üç ifade vardır. Aşağıdaki örnek, döngü sözdizimi için genel gösterimdir. for döngüsü argüman parantezindeki üç ifadenin noktalı virgülle ayrıldığına dikkat edin.
Kural:
1 2 3 4 5 |
for ( başlatma; kontrol; değişim) { // kod bloğu } |
Örnek:
1 2 3 4 5 |
for(int sayac = 1;sayac <= 10;sayac++) { //ifade(ler) 10 sefer çalıştırılacaktır. } |
Şimdi bunu bir görsel üzerinde açıklayalım.
Yukarıdaki örnekte i=0 ile i değişkenine ilk değer olarak 0(sıfır) girilmiştir. i<=10 yani i değeri 10 ve altında olduğu sürece Serial ekranına (süslü parantez içinde sadece bu kod mevcut şuan) i değerini yazdıracaktır. i++ kısmında ise i değeri döngü her çalıştırıldığında bir arttırılmaktadır.
i=0 : döngünün başlangıç değerini ifade eder. Burada i bir değişkendir. Başka değişkenlerde başlangıç için kullanılabilir.
i<=10 : bu kısım döngünün şart kısmıdır. İlk değer verildikten sonra şart kontrol edilir. Şart doğru ise süslü parantez içindeki kodlar çalıştırılır. Sonra her artım yada azalımdan sonra şart tekrar kontrol edilir. Şart sağlanıyorsa süslü parantezler arası tekrar çalıştırılır.
i++: Döngünün kırılması için şart içinde kullanılan değişkenin değiştirildiği bölümdür. Bu örnekte şart 1 arttırılmıştır.
Arduino for döngüsü Örnekleri
Örnek 1: Arduino for döngüsü örneği: Şekildeki gibi 5 tane led 2,3,4,5,6 numaralı dijital pinlere bağlanmıştır. For döngüsü kullanarak bu LEDleri sırası ile 0.1(100ms) saniye yakıp söndüren kodu yazalım.
Arduino Kod:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
int sure = 100; void setup() { for (int ledPin = 2; ledPin < 7; ledPin++) { pinMode(ledPin, OUTPUT); } } /*algoritmaornekleri.com*/ void loop() { for (int ledPin = 2; ledPin < 7; ledPin++) { digitalWrite(ledPin, HIGH); delay(sure); digitalWrite(ledPin, LOW); delay(sure); } } |
Ledler pin 2’den başlayıp pin 6’ya kadar bağlanmıştır. Bu ifade döngünü içindeki bağlangıç değerinin 2 yapılması anlamına geliyor.
setup() içinde ledPin=2 ile dijital 2 pininden başlayarak dijital 6 numaralı pinleri OUTPUT olarak ayarla anlamına geliyor. lenPin<7 şartı sağlandığı sürece ledPin++ ile ledPin değişkenini bir arttırma işlemini yapıyoruz.
loop() içinde ise OUTPUT olarak ayarladığımız pinlere bu sefer HIGH ve LOW değerlerini vermek için bir tane for döngüsü yazıyoruz. Aynı pinler ile işlem yaptığımız için for döngüsünün gövde aynı ifadeleri içeriyor. ledPin değişkeninin her bir değeri için ledPin içindeki değere ait pine HIGH ve LOW değerlerini veriyoruz. burada sure değişkeni ledin yanıp ardından sönmesi için beklenen süreyi ifade ediyor.
Örnek 2: Kara şimşek devresi olarak da geçen uygulamada 5 tane led sıra ile 2,3,4,5,6 numaralı pinlere bağlanmıştır. Ledler 250ms süreyle sırayla yanmaktadır. Tüm ledler yandıktan sonra sırayla geriye doğru 250ms süreyle sönmektedir.
Arduino Kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
int sure = 250; void setup() { //pinler for döngüsü ile çıkış olarak ayarlanmıştır. for (int ledPin = 2; ledPin < 7; ledPin++) { pinMode(ledPin, OUTPUT); } } /*algoritmaornekleri.com*/ void loop() { //çıkış olarak ayarlanan pinler 250ms süreyle eklenerek yanmaktadır. for (int ledPin = 2; ledPin < 7; ledPin++) { digitalWrite(ledPin, HIGH); delay(sure); } //azalan for döngüsü ile 6. pinden geriye doğru ledler söndürülemktedir. for (int ledPin = 6; ledPin >0; ledPin--) { digitalWrite(ledPin, LOW); delay(sure); } } |
Yukarıdaki uygulamada setup() içindeki for döngüsü ile arduino pinlerindeki 2-6 numaralı pinler çıkış olarak ayarlanmıştır. loop() içindeki ilk for döngüsünde ikinci pinden başlayarak ledler 250ms arayla yanmaktadır. loop() içindeki ikinci for döngüsünde ise aktif olan ledler geriye doğru 250ms süreyle söndürülmektedir.
Örnek 3: for döngüsü ile yapın en basit örneklerden bir tanesi de ekrana belirli bir ifadeyi istenilen sayıda yazdırmaktır. Aşağıdaki örnekte ekrana 10 sefer Merhaba yazdırılmaktadır. Burada döngünün ne kadar döneceği önemlidir. i=0 ile sayfama bağlayıp i<10 şartı bozulana kadar sayma işlemi yapılmaktadır.
Arduino Kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
void setup() { Serial.begin(9600); int i; for(i=0;i<10;i++) { Serial.println("Merhaba"); } } void loop() { } |
Örnek 4: Döngü örneklerinde en çok kullanılan örneklerden bir tanesi de döngü ifadelerinin ekrana yazdırmaktır. Arduino kartında ekran yerine çıkış pinleri yada Serial ekranı kullanılmaktadır. Bu örenkte serial ekranına 0’dan 20( 20 dahil değil)’ye kadar olan sayıları serial ekranına yazdırmaktadır.
Arduino Kodu:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
void setup() { Serial.begin(9600); for(int i=0;i<20;i++) { Serial.print("i:"); Serial.println(i); } } void loop() { } |
Add Comment