Merhaba arkadaşlar. Arduino serimizdeki ilk uygulamamızda LED yakıp söndürmeyi öğreneceğiz.

Gerekli malzemelerimiz: Malzemelere yandaki kutucuktaki "sepete git" butonuna tıklayarak kolayca ulaşabilirsiniz.

BU DERSTEKİ TÜM ÜRÜNLERİ TEK SEPETE TOPLADIK!

Sepetten ihtiyacınız olmayanları çıkarabilirsiniz. Ya da ürün ekleyebilirsiniz. Stokta olmayan ürünler, sepette yer almaz. Liste ile sepeti kontrol edebilirsiniz. Toplam 75,56TL'ye ilk arduino projeni yapabilirsin. 

LED Nedir?

LED, ışık yayan diyot anlamına gelen Light Emitting Diode sözcüğünün baş harflerinden oluşan bir kısaltmadır. Alışık olduğumuz ve çoğu projemizde kullandığımız 6V ile çalışan ufak ampullerin aksine LED’lerin anot ve katot olmak üzere iki farklı bacağı vardır. Bunlardan anodu pozitif gerilime yani + uca,  katot ise negatif gerilime yani – uca ya da toprak hattına (GND, Ground) bağlanmalıdır.

Gerilim, Akım ve Ohm Yasası

Çeşitli devre elemanlarının farklı gerilim yani voltajlarda çalıştığını biliyoruz. Arduino kartımız ise 5V gerilimle çalışmaktadır. LED’imiz için ise bu durum biraz farklıdır. LED’in üzerinden geçecek maksimum akımın 20 mA (miliamper = amperin 1000’de 1’i) değerini geçmemesi gereklidir. Arduino’muz 5V ile çalışıyor demiştik. 5V değeri bize kartın çıkış gerilimini ifade etmektedir. Fakat LED 20 mA akıma ihtiyaç duymakta. Sanırım işler biraz karışmaya başladı. Korkmaya gerek yok! Her şeyin bir çözümü var 🙂

Eğer LED’imizi Arduino’ya doğrudan bağlayacak olursak, LED üzerinden kartın sağlayabileceği maksimum değerde akım geçecek ve LED’imiz veya kartımız bozulacaktır. Bunun için akım sınırlayıcı bir direnci LED’imize seri olarak bağlamamız gerekmekte. Peki bu direncin değeri nasıl belirlenecek? İşte burada Ohm Kanunu dediğimiz denklem devreye giriyor:

V = i x R

Bu denklemde V bize gerilimi, i akımı ve R ise direnci temsil ediyor. Eğer 20 mA akıma ihtiyaç duyan LED’i,  Arduino’muzun 5V çıkış sağlayan pinlerinden birine bağlayacak olursak;

5V = 0,020A x R

Denklemini elde etmiş oluruz. Bu denklemden R’yi çekecek olursak sonucu 250 buluruz. Bu demek oluyor ki LED’imizi 5V gerilimle kullanmak için 250 Ω (ohm) değerinde bir dirence ihtiyacımız var. Tam değeri doğru tutturmamız çok önemli değil, elimizde mevcut olan 220 Ω’luk direnci kullanabiliriz.

Bu kadar teorik bilgi şimdilik yeterli 🙂 Şimdi sıra Arduino programımızı hazırlamakta.

İlk dersimizde Arduino’yu tanıtırken, kart üzerinde 13 numaralı pine bağlı bir LED olduğundan bahsetmiştik. Bu LED’i yakıp söndürmek için herhangi bir ekstradan dirence ihtiyaç duyulmaz; direnç zaten kart üzerinde mevcuttur.

Arduino programımızı açıyoruz. Şu sırayı takip ederek “Blink” isimli örnek programı açıyoruz:

Dosya > Örnekler 01.Basics > Blink

Bu kodu beraber inceleyelim:

pinMode(13, OUTPUT);

Bu satır, kart üzerindeki 13 numaralı pini çıkış verecek şekilde ayarlıyor. Kullanacağımız pin çıkış veya giriş olarak belirlenmez ise programın devamında yazacağımız giriş veya çıkış fonksiyonları, o pini kullanamaz.

digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);

Bu kısım ise öncelikle 13 numaralı pine HIGH lojik seviyesine, yani 5V’a ayarlıyor, 1000 milisaniye (1 saniyeye eşittir) hiçbir işlem yapmadan bekliyor ve bu sefer 13 numaralı pini lojik LOW yani 0V veya toprak hattı seviyesine ayarlıyor. Bu işlemi yaptıktan sonra mikokontrolcü, delay fonksiyonu sayesinde tekrardan 1 saniye hiçbir işlem yapmadan bekliyor.

Bu koddaki delay komutlarının sürelerini değiştirerek LED’in açık ve kapalı kaldığı süreleri değiştirebiliriz. Eğer başka bir pin kullanmak istersek tek yapmamız gereken pinMode ve digitalWrite fonksiyonlarında bulunan pin numarasını kullanmak istediğimiz pin numarası ile değiştirmek. LED’imize 220 Ω’luk bir direnci seri bağlamayı unutmuyoruz!

ARDUİNO EĞİTİM DERSLERİNİN TAMAMI TEK NOKTADA

17 Yorumlar

    • İlginiz için teşekkürler, devre şeması zaten farklı bir pin kullanmak isteyenler için referans olması için eklenmiştir. “Eğer başka bir pin kullanmak istersek tek yapmamız gereken pinMode ve digitalWrite fonksiyonlarında bulunan pin numarasını kullanmak istediğimiz pin numarası ile değiştirmek.”

  1. yapmış olduğunuz açıklama sayesinde günüm kurtuldu. Moralim bozulmuştu çalıştıramadığım için. Yetkiler bilerek bu hatayı yapmamışlardır ancak yeni başlayanlar için yıldırıcı olabilir. O yüzden ricam daha dikkatli olmaları. Emeği geçenlere teşekkür ederim.

  2. 220 lik herhangi bir direnc kullanilabilirmi bu ve bundan sonraki derslerde..sitede farkli isimlerde 220 lik direnc satisi var..hangisini kullanalim..

    • Her bir dijital çıkıştan maksimum 40mA çekebileceğinizden birden fazla LED’i tek bir çıkışa bağlamamanız daha doğru olacaktır.

  3. Hocam bende digital kısmında yalnızca 13 numara ve GND çalışıyor. Kodu yazmadan da bağlasam blink yapıyor. Biri robotistandan diğeri ise burada bir elektronikçiden aldığın iki Arduino klon için de aynı durum söz konusu. Bu işte bir terslik var ama ne olduğu konusunda yardımcı olur musunuz?

  4. Çalışmanız programın 928 bayt (2 %) saklama alanını kullandı. Maksimum 32256 bayt.
    Global değişkenler belleğin 9 byte kadarını (0%) kullanıyor. Yerel değişkenler için 2039 byte yer kalıyor. En fazla 2048 byte kullanılabilir.
    avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x30
    avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x20
    avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x30
    avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x20
    avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x30
    avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x20
    avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x30
    avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x20
    avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x30
    avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x20
    Taslak yüklenirken bir hata oluştu

    Arduino’yu W7 İşletim sistemli leptap’a taktım. Kartı seçtim ardından port’u seçtim ama sadece COM3 açıktı. Dolayısıyla otomatik onu seçti. Yukarıda verilmiş olan kodu aynı şekilde yazdım. Yükleme yerine tıkladım ve sonucunda bu hatayı verdi.

CEVAP VER