Arduino Led Yakma Uygulamaları 2

Bir önceki Arduino Led Yakma Uygulamaları 1 yazımızda başlangıç olarak Arduino temel kod yazımını ve bazı kodları anlattık. Bunun yanı sıra programlama mantığından biraz bahsettik. Bu yazımızda ise yeni kodlar ve farklı uygulamalar göreceğiz. İlk uygulamamızda ledin periyodik olarak yanıp sönmesini sağlayacağız. Geçmiş yazımızdaki kodumuza çok benzer olan bu programda ekstradan bir kod kullanacağız o da "delay(ms)" kodu yani bekleme-gecikme kodu.



int Led = 5;  // 5 nolu pine "Led" adı verildi.
void setup() 
{
  pinMode(Led, OUTPUT); // 5 numaralı "Led" pini çıkış olarak ayarlandı.
}
void loop() 
{
   digitalWrite(Led, HIGH);  // Ledi Yak !
   delay(1000);                         // 1000 milisaniye (1 saniye) Bekle !
   digitalWrite(Led, LOW);  // Ledi Söndür !
   delay(1000);                        // 1000 milisaniye (1 saniye) Bekle !
}

Uygulamanın kodları basit, bekleme kodu ledin 1 saniye yanıp ardından 1 saniye sönmesini sağlıyor. Böylece ledimiz 2 saniyelik bir periyotla yanıp sönmüş oluyor. 

Başka bir örnekle de led sayımızı arttırarak yapalım. Farklı örneklerle ledlerimizin farklı sıralarda yanması sonucu eğlenceli efektler yapabilirsiniz.

Bu uygulamamız da sıralı led yakma olsun.  Birden fazla ledi sırasıyla yakalım.



int Led1 = 1 ;
int Led2 = 2 ;
int Led3 = 3 ;
int Led4 = 4 ;
void setup() 
{
  pinMode(Led1, OUTPUT);
  pinMode(Led2, OUTPUT); 
  pinMode(Led3, OUTPUT); 
  pinMode(Led4, OUTPUT); 
}
void loop() 
{
   digitalWrite(Led1, HIGH); // 1 Nolu Led yanarken diğerleri sönük durumda.
   digitalWrite(Led2, LOW);
   digitalWrite(Led3, LOW);
   digitalWrite(Led4, LOW);
   delay(1000);                         
   digitalWrite(Led1, LOW);
   digitalWrite(Led2, HIGH); // 2 Nolu Led yanarken diğerleri sönük durumda.
   digitalWrite(Led3, LOW);
   digitalWrite(Led4, LOW);
   delay(1000);                         
   digitalWrite(Led1, LOW);
   digitalWrite(Led2, LOW); 
   digitalWrite(Led3, HIGH); // 3 Nolu Led yanarken diğerleri sönük durumda.
   digitalWrite(Led4, LOW);
   delay(1000);                         
   digitalWrite(Led1, LOW);
   digitalWrite(Led2, LOW); 
   digitalWrite(Led3, LOW); 
   digitalWrite(Led4, HIGH); // 4 Nolu Led yanarken diğerleri sönük durumda.
   delay(1000);
}
Program uzun görünse de aslında tekrarlardan oluştuğunu göreceksiniz. 4 Ledten her seferinde sırasıyla birine +5V gönderip yakıyoruz, diğerleri sönük durumda oluyor.

Son olarak da hepimizin duymuş görmüş yada filminden bildiğimiz Kara Şimşek uygulamasını yapalım. Bu uygulamamızda 6 tane led kullanalım.



int Led1 = 1 ;
int Led2 = 2 ;
int Led3 = 3 ;
int Led4 = 4 ;
void setup() 
{
  pinMode(Led1, OUTPUT); 
  pinMode(Led2, OUTPUT); 
  pinMode(Led3, OUTPUT); 
  pinMode(Led4, OUTPUT); 
}
void loop() 
{
   digitalWrite(Led1, HIGH); // #
   digitalWrite(Led2, LOW);  // 0
   digitalWrite(Led3, LOW);  // 0
   digitalWrite(Led4, LOW);  // 0
   delay(300);                         
   digitalWrite(Led1, HIGH); // #
   digitalWrite(Led2, HIGH); // #
   digitalWrite(Led3, LOW);  // 0
   digitalWrite(Led4, LOW);  // 0
   delay(300);                         
   digitalWrite(Led1, HIGH); // #
   digitalWrite(Led2, HIGH); // # 
   digitalWrite(Led3, HIGH); // # 
   digitalWrite(Led4, LOW);  // 0
   delay(300);                         
   digitalWrite(Led1, LOW);   // 0
   digitalWrite(Led2, HIGH);  // #
   digitalWrite(Led3, HIGH);  // # 
   digitalWrite(Led4, HIGH);  // # 
   delay(300);
   digitalWrite(Led1, LOW);   // 0
   digitalWrite(Led2, LOW);   // 0 
   digitalWrite(Led3, HIGH);  // # 
   digitalWrite(Led4, HIGH);  // # 
   delay(300);
   digitalWrite(Led1, LOW);  // 0
   digitalWrite(Led2, LOW);  // 0
   digitalWrite(Led3, LOW);  // 0 
   digitalWrite(Led4, HIGH); // # 
   delay(300);
   digitalWrite(Led1, LOW);   // 0
   digitalWrite(Led2, LOW);   // 0 
   digitalWrite(Led3, HIGH);  // # 
   digitalWrite(Led4, HIGH);  // # 
   delay(300);                         
   digitalWrite(Led1, LOW);   // 0
   digitalWrite(Led2, HIGH);  // #
   digitalWrite(Led3, HIGH);  // # 
   digitalWrite(Led4, HIGH);  // # 
   delay(300);                         
   digitalWrite(Led1, HIGH); // #
   digitalWrite(Led2, HIGH); // # 
   digitalWrite(Led3, HIGH); // # 
   digitalWrite(Led4, LOW);  // 0
   delay(300);                         
   digitalWrite(Led1, HIGH); // #
   digitalWrite(Led2, HIGH); // #
   digitalWrite(Led3, LOW);  // 0
   digitalWrite(Led4, LOW);  // 0
   delay(300);
}
Kara Şimşek örneğinde 3 led sanki kayarcasına hareket ederek sırayla yanar bunun mantığını anlayabilmek adına biraz uzun yol olsa da böyle tüm ledlere değer vererek yaptık. Daha rahat anlaşılması açısından kodların yanına yanan ledler için # sönük olanlar için de 0 koyduk.
Göresel olarak da bir animatif resim paylaşalım..



Bu uygulamayı uygun döngüler ve diziler kullanarak daha kısa bir algoritmayla da yapabiliriz. Bunu ilerleyen yazılarda göstereceğiz. Şimdilik hoşçakalın. Yeni çalışmalarla görüşmek üzere..