Merhaba arkadaşlar, bu uygulamamızda yürüyen led uygulaması yapacağız. Yürüyen led uygulaması, ledlerin sırayla yanıp söndüğü (karaşimşek) bir uygulamadır.

Malzeme Listesi

Malzeme listesindeki malzemeleri kullanarak devremizi aşağıdaki şemaya uygun olarak kuralım. Devremizi kurarken ledlerin kutuplarına ve direnç değerlerimize dikkat etmeliyiz. Dirençler kutupsuz olduğu için ters veya düz takmanız fark etmeyecektir.

Devre şeması çizimi yapılırken – (gnd) için mavi veya siyah, +(vcc) için ise kırmızı renk kullanılır. Buradaki kırmızı kablolar +(vcc) değil ama ledimizin anot(+) ucuna denk geldiğini görmemiz için ve +(vcc) çıkışı olmasa bile biz kod ile bu çıkışları vereceğiz.Sizin daha iyi anlamanız için kırmızı renk kullandım. Siz istediğiniz renkleri kullanabilirsiniz. Bu devremizde 6 Adet led kullandım. Bu led sayısını azaltabilir veya yükseltebilirsiniz. Bu işlemleri yaparken kod kısmında da değişiklik yapmanız gerekiyor.

Ledleri en baştaki pinlerden takmaya başladım. Neden 0’dan başlamadık diye aklınızda bir soru oluşursa, 0 ve 1 TX RX pinleri olduğu için haberleşmede kullanılıyor. Projemizde yeterli pin sayısı olduğu için ve 0 1 pinleri haberleşmede kullanıldığı için bu pinleri kullanmadık.

Yürüyen Led Uygulaması Kodları

İlk önce ledlerin pin numaralarını çıkış olarak tanımlayacağız. 6 adet ledimiz olduğu için bunları int Led1=2;   int Led2=3; gibi tanımlayabiliriz ama daha kısa ve anlaşılır olması için ledPinleri isminde bir dizi(liste) tanımlıyoruz ve bu diziye ledlerimizin pin numaralarını giriyoruz.

Setup fonksiyonunda bu ledleri çıkış olarak tanımlamamız gerektiği için for döngüsü ile bu tanımlama işlemini yapıyoruz. İ değişkenimiz 0 dan başlıyor ve 6 ya kadar gidiyor. Ama burada 6 dahil olmuyor. Dizimizin elemanlarına erişmek için ledPinleri [indis] şeklinde kullanmalıyız.

Buradaki indis değeri 0 dan başlıyor ve dizini sonuna kadar. Bizim dizimizde 6 eleman olduğu için 0-5 arası indis değerlerini kullanacağız. Burada dikkat etmeniz gereken  6.ledin pinine erişmek için 6. İndisi kullanmayacağız. Nedeni de indis değerleri 1 den değil de 0 dan başladığı için 6.ledin pinine ulaşmak için 5 indis numarasını kullanmalıyız.

Loop fonksiyonunda ise bu ledlere sırası ile enerji verip, bir süre bekleyip, enerjiyi kesmemiz gerekiyor. Bu işlemi 1. Lede uyguladıktan sonra 2. 3. 4. 5. 6. ledlere de uygulamamız lazım. Bu yüzden for döngüsü kullanıyoruz. Dizimizin uzunluğu 6 olduğu için for döngüsü  0-5 arasında çalışacaktır. digitalWrite(ledPinleri[i],HIGH); kodu ile ledimize enerji veriyoruz. delay(150);  kodu ile 150 milisaniye bekliyoruz. 1 sn beklemek için bu değeri 1000 yapmanız gerekiyor. 150 milisaniye geçtikten sonra ise ledimizdeki enerjiyi LOW ile kesiyoruz. Bu işlemi for döngüsü 6 adet led için aynı şekilde yapıyor. En sondaki led söndükten sonra başa döndüğü için bu devreye yürüyen ışık devresi deniyor.

int ledPinleri[] = {2,3,4,5,6,7};
void setup() {
for(int i=0;i<6;i++){
pinMode(ledPinleri [i],OUTPUT);
}
}
void loop() {
for(int i=0;i<6;i++){
digitalWrite(ledPinleri [i],HIGH);
delay(150);
digitalWrite(ledPinleri [i],LOW);
}
}

Kodları yazdıktan sonra arduinomuzu bilgisayara bağlayıp yükleme işlemini yapabiliriz.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz