Bu kara şimşek projesini yapmak için sizlerle birlikte for döngüsüne ve ne işe yaradığına bakacağız.
Neden mi kara şimşek projesi dedik, çünkü hepinizin belki bildiği kara şimşek filmindeki arabada ledlerin sırası ile yandığını gözlemlemişsinizdir o yüzden bu projenin adı oldu 🙂
Bu projeyi 2 farklı kod ile yapabilirsiniz önce for döngüsü olmadan kodumuza bakalım sonrasında for döngüsünü kullanalım ve karşılaştıralım. Şimdi devre şemasına bir bakalım.
int led1= 8; //led1’i 8. pin olarak atadık
int led2= 9; //led2’yi 9. pin olarak atadık
int led3= 10; //led3’ü 10. pin olarak atadık
void setup() {
pinMode(led1, OUTPUT); //led1’i yani 8.pini çıkış pini olarak ayarladık
pinMode(led2, OUTPUT); //led2’yi yani 9.pini çıkış pini olarak ayarladık
pinMode(led3, OUTPUT); //led3’ü yani 10.pini çıkış pini olarak ayarladık
}
void loop() {
digitalWrite(led1, HIGH); //led1 5v ver
delay(100); //100ms bekle
digitalWrite(led1, LOW); //led1 0v ver
delay(100); //100ms bekle
digitalWrite(led2, HIGH); //led2 5v ver
delay(100); //100ms bekle
digitalWrite(led2, LOW); //led2 0v ver
delay(100); //100ms bekle
digitalWrite(led3, HIGH); //led3 5v ver
delay(100); //100ms bekle
digitalWrite(led3, LOW); //led3 0v ver
delay(100); //100ms bekle
}//Loop içinde olduğu için tekrarlanacaktır
Gördüğünüz gibi bu kod ile 3 ledi 100ms ara ile ve sırasıyla açıp kapattık bu olayı tekrarlattık. Fakat kod gerçekten oldukça uzun böyle basit bir şey için bu kadar kod yazmaya değmez işte burada for bizi karşılıyor. For bir döngüdür nasıl kullanıldığına bir bakalım aynı işi yapması için kodlayalım.
int led1= 8;
int led2= 9;
int led3= 10;
void setup() {
pinMode(led1, OUTPUT); //led1’i yani 8.pini çıkış pini olarak ayarladık
pinMode(led2, OUTPUT); //led2’yi yani 9.pini çıkış pini olarak ayarladık
pinMode(led3, OUTPUT); //led3’ü yani 10.pini çıkış pini olarak ayarladık
}
void loop() {
for ( int i=7 ; i < 11 ; i++){ //i=7 olarak başlat 11 den küçükse 1 arttır aşağı indir döngü bitince i=8 11den küçük 1 arttır aşağı indir i=9…
digitalWrite(i,1);//i ye 5V ver
delay(50);//50 milisaniye bekle
digitalWrite(i,0);//i ye 0V ver
delay(50);//50 milisaniye bekle
}//i 11 olduğu zaman döngünün dışına çıkacak herhangi bir şey olmayınca loop içerisinde olduğu için tekrar i=7 olarak döngüye girecek
}
Bu kod for döngüsü ile aynı projeyi yapması için kodlandı. Gördüğünüz gibi daha basit, yorum satırları üzerinden nasıl kullanıldığına değindim bu şekilde daha etkili olacağını düşünüyorum. Sizlerin de deneyerek, uygulamalı olarak gözlemlemeniz doğrultusunda daha da etkili öğrenim sağlayacaksınızdır.
For döngüsünü bilmeniz önem arz ediyor, ilerideki projelerimizde kullanacağız. Bu şekilde Arduino öğrenimine devam ederseniz başarıya ulaşacağına inanıyorum tabii ki öğrendiklerinizi uygulamalı, denemeler ile vazgeçmeden, yılmadan tekrar etmeniz doğrultusunda başarıya ulaşırsınız. İyi günler, bugsız kodlamalar.