bugün sizlerle arduino ile eskilerin bileceği kara şimşek'in önündeki ışıkları yapmaya çalışacağız. Biraz daha genç arkadaşları bunu Cem Yılmaz'ın zamanında opet reklamında oynadığı ve kullandığı arabanın önündeki ışık olarak da bilir.
Gerekli malzemeler
-Bir kaç adet kırmızı led (Ben 5 adet kullanacağım)
-Led sayısı kadar 330 ohm direnç
-Bread Board
-Arduino uno
-Jumper Kablolar
Bağlantı Şeması
Kullanılacak Kodlar
void setup(){
pinMode (13, OUTPUT);
pinMode (12, OUTPUT);
pinMode (11,OUTPUT); // Burada pinleri çıkış yaptığımızı belirttik
pinMode (10, OUTPUT);
pinMode (9, OUTPUT);
}
void loop(){
digitalWrite (9, HIGH);
delay (50);
digitalWrite (9, LOW);
digitalWrite (10, HIGH);
delay(50);
digitalWrite (10, LOW);
digitalWrite (11 , HIGH);
delay(50); // Burada ise aynı blinkte yaptığımız gibi sürekli voltaj
digitalWrite (11, LOW); // verip alarak sıra sıra yaktık
digitalWrite (12, HIGH);
delay(50);
digitalWrite (12, LOW);
digitalWrite (13, HIGH);
delay(50);
digitalWrite (13, LOW);
digitalWrite (12, HIGH);
delay(50);
digitalWrite (12, LOW);
digitalWrite (11, HIGH);
delay(50);
digitalWrite (11, LOW);
digitalWrite (10, HIGH);
delay(50);
digitalWrite (10, LOW);
delay(50); //Bu komuttan sonra program kenidi en başa alacaktır
}
Tabi ki arkadaşlar bunun çok uzun olduğunun hepimiz farkındayızdır. Bundan kurtulmak için For döngüsünü kullanacağız bununla birlikte arduino üzerinde bir işlem tanımlamayı göreceğiz.
For döngüsü öncelikle 3 bölümden oluşur
- Başlangıç İşlemi
- Her bir çevrim için gereken şart
- Güncelleme işlemi.
Örneğin
for(baslangic islemi; devam şarti; guncelleme islemi)
{
.........................
Yapılacak işlemler
...........................
}
Şimdi programımıza geri dönelim ve bunu For ile yapalım
const int ledPini [] = {9,10,11,12,13}; // Bir dizi halinde ledlerin bacaklarını tanımladık
void setup () {
for(int i=0; i<5;i++) // burada i harfini 0 a eşit olarak tanımladık / i nin 5 den küçük olduğunu söyledik / ve sürekli devam etmesini istedik
{
pinMode(ledPini [i], OUTPUT); // LED pinlerini çıkış olarak tanımladık
}
}
void loop() {
for(int i=0; i<5; i++){
digitalWrite(ledPini[i],HIGH);
delay(10);
digitalWrite(ledPini[i],LOW);
}
for(int a=4;a>-1; a--)
{
digitalWrite(ledPini[a],HIGH);
delay(10);
digitalWrite(ledPini[a], LOW);
}
}
Bu kadar az kodlada işimizi görebildik umarım işinizi görmüştür buda 2. projemizdir hepinize iyi çalışmalar dilerim
BlueTesla