Herkese merhabalar ! Arduino dersleri serimizin bu yazısında sizlere for döngüsünden bahsedeceğiz ve sonrasında da for döngüsünü kullanarak birlikte kara şimşek uygulaması yapacağız.

Arduino Analog Read ve Seri Haberleşme yazımıza göz atın ! >> Potansiyometre ile değer okuyalım !

Önce For Döngüsünün Mantığına Bakalım

For döngüsü, programlama dillerinde en sık kullanılan döngülerden biridir. Arduino programlamada da sıkça kullanılır ve uygulamaları daha pratik bir yapıda kodlamamızı sağlar. For döngüsü uygulanması istenen işlemin kaç kez tekrar edileceğinin belli olduğu durumlarda kullanılır. Daha net bir ifade ile for döngüsü sayesinde işlemin kaç kez tekrar edileceğini, başlangıç/bitiş değerlerini ve değerler arasındaki artış/azalış miktarını kontrol edebiliriz. Aşağıdaki kod parçacığındaki gibi özetleyebiliriz.

for (başlangıç değeri; döngünün devam etme koşulu; değerdeki değişim)
{
işlemler...
}

Arduino İle Kara Şimşek Uygulaması Yapalım

Kara şimşek devresini kurmadan önce for döngüsünün buradaki işleyişinden bahsetmek istiyorum. Yazının başında da bahsettiğim gibi for döngüsü sayesinde işlemin başlangıç ve bitişini, döngü koşulunu ve değişimini kontrol edebiliyoruz. Kara şimşek devresi: sırayla bir yöne doğru yanma/sönme işlemi yapan, son LED’e geldiğinde ise bu işlemi ters yönde gerçekleştiren bir LED dizisinden oluşmaktadır. Hadi şimdi bu devre için neler gerektiğinden ve devreyi nasıl kuracağımızdan bahsedeyim.

Gerekli malzemeler: ( Not: Kara Şimşek Uygulaması ve 10. Derse Kadar Olan Dersleri “Arduino Başlangıç Seti” İle Yapabilirsiniz. Malzemeler Bu Sette! >)

Eğer malzemelerimiz de hazırsa kara şimşek devresini aşağıdaki gibi kuralım.

Arduino Kara Şimşek Devresi
Arduino Kara Şimşek Devresi

Şimdi de devreyi çalıştırabilmek için gerekli Arduino kodunu yazalım.

int ledler[] = {2,3,4,5,6,7}; //Değişkenleri belirttiğimiz bir dizi tanımlıyoruz.

void setup() 
{
  for(int i=0; i<6; i++) {//For döngüsünün 6 kez tekrarlanmasını istiyoruz.
  pinMode(ledler[i], OUTPUT); //i değişkenlerini "çıkış" olarak tanımlıyoruz.
  }
}
void loop() 
{
 for(int i=0; i<6; i++) { 
 digitalWrite(ledler[i], HIGH);
 delay(20);
 digitalWrite(ledler[i], LOW);
} //İlk ledden beşinci lede kadar ledler sırasıyla yanıyor. Yani döngüde ilk led yanar, söner ve ikinci led yanar. İkinci led söndüğünde ise üçüncü led yanar ve döngü bu şekilde devam eder.
 for(int j=5; i>-1; i--) {
 digitalWrite(ledler[j], HIGH);
 delay(20);
 digitalWrite(ledler[j], LOW);
} //Bu kez ters döngü yapıyoruz. Yani dizinin 5.elemanı olan 7 pinine bağlı led yanar, söner ve bu kez bir önceki led yanar. İşlem bu şekilde devam eder.
} //Bu iki döngü sırası birbirinin tersidir. Bu şekilde ledler sırasıyla ileri ve geri yanıp sönerler.

5 Yorumlar

    • void setup() {
      pinMode(2,OUTPUT); //2 ile 7 arasındaki pinleri çıkış pini olarak tanımladık
      pinMode(3,OUTPUT);
      pinMode(4,OUTPUT);
      pinMode(5,OUTPUT);
      pinMode(6,OUTPUT);
      pinMode(7,OUTPUT);}
      void loop() {
      digitalWrite(2,HIGH);
      delay(100);
      digitalWrite(2, LOW);
      delay(100);
      digitalWrite(3,HIGH);
      delay(100);
      digitalWrite(3, LOW);
      delay(100);
      digitalWrite(4,HIGH);
      delay(100);
      digitalWrite(4, LOW);
      delay(100);
      digitalWrite(5,HIGH);
      delay(100);
      digitalWrite(5, LOW);
      delay(100);
      digitalWrite(6,HIGH);
      delay(100);
      digitalWrite(6, LOW);
      delay(100);
      digitalWrite(7,HIGH);
      delay(100);
      digitalWrite(7, LOW);
      delay(100);
      digitalWrite(6,HIGH);
      delay(100);
      digitalWrite(6, LOW);
      delay(100);
      digitalWrite(5,HIGH);
      delay(100);
      digitalWrite(5, LOW);
      delay(100);
      digitalWrite(4,HIGH);
      delay(100);
      digitalWrite(4, LOW);
      delay(100);
      digitalWrite(3,HIGH);
      delay(100);
      digitalWrite(3, LOW);
      delay(100);
      }

  1. Ben bu devrenin röle li olanını yapmak istiyorum parçaları aldım 8 çıkışlı bi rölem var kod olarak ne yazmalıım 220 ampullerde yapmak istiyorum

CEVAP VER

Please enter your comment!
Please enter your name here