TinkerCAD ile Sıralı LED Uygulaması
Diziler, dizi elemanlarına index ya da indis numarası ile erişebildiğimiz değişkenler kümesidir. Programlamada arrays[] şeklinde kullanılan diziler birden fazla değişkeni bir küme haline getirerek, bu değişkenlerin kontrolünü ve işlenmesini kolaylaştırır.
Merhabalar,
Bu uygulamamızda birden fazla LED’i dizi dediğimiz değişkenler kümesinde tanımladık ve sıralı yakma-söndürme işlemlerini de for döngüsüyle gerçekleştirdik.
Diziler, dizi elemanlarına index ya da indis numarası ile erişebildiğimiz değişkenler kümesidir. Programlamada arrays[] şeklinde kullanılan diziler birden fazla değişkeni bir küme haline getirerek, bu değişkenlerin kontrolünü ve işlenmesini kolaylaştırır.
Diziler aşağıdaki gibi tanımlanır:
veriTürü dizininAdı [eleman sayısı] = {veriler};
Örnek: int ledPinleri[] = {2,3,4,5,6,7,8,9}; gibi…
Dizi tanımlamalarında köşeli parantez [] kullanımı zorunludur.
Bu uygulamamızda 8 tane ledi yukarıdaki gibi bir dizi kümesine dahil ederek programladık. Örnekte süslü parantezler içindeki değerler, LED’lerin bağlı olduğu dijital pinleri ifade etmektedir. İstediğimiz LED’i işleme alabilmek için adresleme kullanmak durumundayız.
Dizi içerisindeki bir elemana bulundukları adresi (indisi, index numarası) yardımı ile ulaşılır. İlk elemanın indisi 0, ikinci elemanın indisi 1, vs. Bir elemana ulaşmak için “ledPinleri[x]” komutunu kullanarak x yerine o elamanın indisi yazılır. Aşağıdaki örnekte 2 numaralı dijital pin(yani dizideki 0 numaralı indis) HIGH yapılmaktadır.
digitalWrite(ledPins[0], HIGH);
Devremizin şeması:

Devremize ait kodlar:
/* BlogKod - TinkerCAD ile Sıralı LED Uygulaması */
/*
* “array” yani dizi; çok fazla değişkeni gruplar haline getirerek
yönetilmesini kolaylaştıran en kullanışlı yöntemdir.
Diziler köşeli parantezler kullanılarak tanımlanır.
Burada sekiz eleman içeren integer değerler için bir array
oluşturuyoruz ve buna ledPinleri adını veriyoruz.
*/
int ledPinleri[] = {2,3,4,5,6,7,8,9};
// Dizinin ilk elemanının indis değeri "0" (Sıfır)'dır.
// 0 numaralı indis değeri bu tanımlamada 2 değerini ifade eder.
// 1 numaralı indis değeri bu tanımlamada 3 değerini ifade eder.
// Bu sırasıyla devam eder.
// En son indis 7 numaralı indistir ve değeri 9'dur.
// Bu uygulamada LED pinlerini diziye atadık.
// LED-0 2 numaralı dijital pine,
// LED-1 3, LED-2 4, LED-3 5, LED-4 6, LED-5 7, LED-6 8,
// ve LED-7 9 numaralı dijital pine bağladık...
int indis;
// indis isimli global bir değişken tanımladık
// Bu değişken for döngüsüyle artan ve azalan şekilde işelm görecek
// LED'leri indis değişkeninin aldığı değerlere göre yakacağız
void setup()
{
// Diziye tanımladığımız LED'lerin pinlerini for döngüsü ile
// çıkış olarak tanımladık.
// Burada indis isimli bir değişken tanımladık.
// For döngüsünde 0'dan 7'ye indis değerini birer birer arttırarak
// LED'lerin bağlı olduğu dijital pinleri tanımlamış olduk.
for(indis = 0; indis <= 7; indis++)
{
pinMode(ledPinleri[indis],OUTPUT);
// Örneğin ledPinleri[0] 2 numaralı pine bağlı LED'i ifade edecek
}
}
void loop()
{
int delayTime = 100; // LED'lerin yanma sönme zaman aralığını tanımladık
// Saniyenin 10'da 1'i yani 100 milisaniye gecikme olacak
//Bu for döngüsü tüm LED'leri soldan sağa sırasıyla yakacak...
for(indis=0;indis<=7;indis++)
{
digitalWrite(ledPinleri[indis], HIGH);
delay(delayTime);
}
//Bu for döngüsü tüm LED'leri sağdan sola sırasıyla söndürecek...
for(indis=7;indis>=0;indis--)
{
digitalWrite(ledPinleri[indis], LOW);
delay(delayTime);
}
//Bu for döngüsü tüm LED'leri soldan sağa doğru sırasıyla önce yakacak, sonra söndürecek...
for(indis = 0; indis <= 7; indis++)
{
digitalWrite(ledPinleri[indis], HIGH);
delay(delayTime);
digitalWrite(ledPinleri[indis], LOW);
}
//Bu for döngüsü tüm LED'leri sağdan sola doğru sırasıyla önce yakacak, sonra söndürecek...
for(indis = 7; indis >= 0; indis--)
{
digitalWrite(ledPinleri[indis], HIGH);
delay(delayTime);
digitalWrite(ledPinleri[indis], LOW);
}
}
TinkerCAD ile Sıralı LED Uygulama Simülasyonu
https://www.tinkercad.com/embed/44mr9qMegXb?editbtn=1
Bir sonraki uygulamamızda görüşmek üzere…
grallll