⚡ Arduino Projeleri 📅 16 Ekim 2026

Arduino ile LED Yakma ve Söndürme: Devre Şeması ve Kodları

Arduino ile LED yakıp söndürme projesi nasıl yapılır? Devre şeması, direnç hesabı, C++ kodları ve pin bağlantı tablosu ile adım adım Blink rehberi.

Arduino ile LED Yakma ve Söndürme: Devre Şeması ve Kodları

Elektronik ve gömülü sistemler programlamasına adım atan herkesin ilk yaptığı uygulama **"Blink"**, yani LED yakıp söndürme devresidir. Yazılım dünyasındaki "Hello World" (Merhaba Dünya) ne ise, donanım dünyasında da bir LED'i kendi yazdığınız kodlarla kontrol etmek odur.

Bu kapsamlı rehberde; harici bir LED'in breadboard üzerine nasıl takılacağını, neden koruma direnci kullanılması gerektiğini, devre şemasını, tam çalışan Arduino C++ kodlarını ve adım adım yapılış aşamalarını inceliyoruz.

---

1. Projenin Amacı ve Temel Mantığı

Bu projenin amacı, Arduino'nun dijital çıkış pinlerinden birini kullanarak harici bir elektronik devre elemanına (LED diyot) belirli zaman aralıklarıyla elektrik enerjisi vermek ve enerjiyi kesmektir.

Temel çalışma mantığı 3 adımdan oluşur:

1. Arduino'nun belirlenen dijital pini (örneğin 8. pin) **çıkış (OUTPUT)** olarak ayarlanır.

2. Pine 5V voltaj gönderilerek devreden akım akması sağlanır (`digitalWrite(8, HIGH);`). LED ışık verir.

3. Belirli bir süre beklenir (`delay(1000);`) ve ardından pinin voltajı 0V'a (GND) çekilerek akım kesilir (`digitalWrite(8, LOW);`). LED söner. Bu işlem sonsuz döngü içinde tekrarlanır.

---

2. Gerekli Malzemeler Listesi

Bu uygulamayı hayata geçirmek için ihtiyacınız olan temel malzemeler:

| Malzeme Adı | Miktar | Açıklama |

|---|---|---|

| **Arduino Uno R3** | 1 Adet | Ana mikrokontrolcü kartı (veya Nano) |

| **5mm Standart LED** | 1 Adet | Kırmızı, yeşil veya mavi renk |

| **220Ω veya 330Ω Direnç** | 1 Adet | LED'i aşırı akımdan korumak için (Kırmızı-Kırmızı-Kahverengi) |

| **Breadboard (Devre Tahtası)**| 1 Adet | Lehim yapmadan devre kurmak için |

| **Jumper Kablo (Erkek - Erkek)**| 2 Adet | Arduino ile breadboard arası bağlantı için |

| **USB Bağlantı Kablosu** | 1 Adet | Kodu karta yüklemek ve güç sağlamak için |

---

3. LED ve Direnç Mantığı: Neden Direnç Kullanmalıyız?

Bir LED (Light Emitting Diode - Işık Yayan Diyot), üzerinden akım geçtiğinde foton üreten yarı iletken bir elemandır:

  • **Kutupları Vardır:** LED'in iki bacağı bulunur. **Uzun bacak Anot (+)**, **kısa bacak Katot (-)** kutbudur. Ayrıca LED'in şapkasının içindeki küçük plaka anot, geniş üçgen plaka katottur.
  • **Ohm Kanunu ve Koruma Direnci:** Standart bir kırmızı LED yaklaşık 1.8V - 2.2V gerilimde ve maksimum 20 miliamper (mA) akımda güvenle çalışır. Arduino pinleri ise doğrudan 5V gerilim üretir. Eğer LED'i araya hiçbir direnç koymadan doğrudan 5V ve GND arasına bağlarsanız, aşırı akım çeker ve saniyeler içinde karararak patlar. Araya seri bağlanan **220 ohm'luk bir direnç**, voltaj fazlasını kendi üzerine alarak akımı güvenli seviyede sınırlar.
  • ---

    4. Devre Şeması ve Pin Bağlantı Tablosu

    Devre bağlantılarını yaparken şu adımları takip edin:

    [Arduino Pin 8] ---> [220Ω Direnç] ---> [LED Anot (Uzun Bacak)]
                                           [LED Katot (Kısa Bacak)] ---> [Arduino GND Pini]

    Bağlantı Adımları:

    1. LED'i breadboard üzerine takın. Bacaklarının farklı dikey delik hatlarına geldiğinden emin olun.

    2. 220 ohm'luk direncin bir bacağını LED'in uzun bacağının (Anot) bulunduğu hatta takın.

    3. Direncin diğer boştaki bacağını bir jumper kablo ile Arduino'nun **8 numaralı dijital pinine** bağlayın.

    4. LED'in kısa bacağının (Katot) bulunduğu hatta bir jumper kablo takıp diğer ucunu Arduino'nun **GND (Toprak)** pinine bağlayın.

    ---

    5. Tam ve Çalışan Arduino C++ Kodları

    Aşağıdaki kodu Arduino IDE programına yapıştırıp kartınıza yükleyebilirsiniz:

    /*
     * RobotKodla.com - Temel Arduino Dersleri
     * Proje: Harici LED Yakıp Söndürme (Blink)
     * Pin: Dijital Pin 8
     */
    
    const int ledPini = 8; // LED'in bağlı olduğu dijital pini sabit olarak tanımla
    
    void setup() {
      // setup fonksiyonu kart ilk açıldığında sadece bir kez çalışır.
      pinMode(ledPini, OUTPUT); // 8 numaralı pini ÇIKIŞ olarak yapılandır
    }
    
    void loop() {
      // loop fonksiyonu elektrik olduğu sürece sonsuz kez tekrarlanır.
      
      digitalWrite(ledPini, HIGH); // LED pinine 5V ver (LED yansın)
      delay(1000);                 // 1000 milisaniye (1 saniye) bekle
      
      digitalWrite(ledPini, LOW);  // LED pininden voltajı kes (LED sönsün)
      delay(1000);                 // 1 saniye bekle
    }

    Kod Satırlarının Ayrıntılı Analizi:

  • `const int ledPini = 8;`: Kodun içinde sürekli 8 sayısını yazmak yerine bunu anlamlı bir kelimeye atarız. Yarın pini 9 yapmak istediğimizde sadece burayı değiştirmemiz yeterli olur.
  • `pinMode(ledPini, OUTPUT);`: Arduino'ya bu pinden elektrik çıkışı yapacağımızı bildirir.
  • `digitalWrite(ledPini, HIGH);`: Pini lojik 1 (5V) seviyesine çeker.
  • `delay(1000);`: İşlemciyi 1000 ms duraklatır; bu sayede insan gözü LED'in yandığını rahatça fark eder.
  • ---

    6. Sık Yapılan Hatalar ve Sorun Giderme

    | Sorun | Nedeni | Çözüm |

    |---|---|---|

    | LED hiç yanmıyor | LED ters takılmış olabilir | LED'in uzun ve kısa bacaklarının yönünü kontrol edip ters çevirin. |

    | LED sürekli yanıyor, hiç sönmüyor | Kod karta yüklenmemiş olabilir | Arduino IDE'de "Yükleme tamamlandı" mesajını gördüğünüzden emin olun. |

    | LED çok zayıf yanıyor | Direnç değeri çok yüksek | 100kΩ gibi yüksek bir direnç takmış olabilirsiniz; 220Ω veya 330Ω direnç takın. |

    | Port hatası alıyorum | USB kablosu tam oturmamış | Kabloyu çıkarıp takın, Araçlar > Port menüsünden doğru COM portunu seçin. |

    ---

    7. Kendini Geliştirme Görevleri (Challenges)

    Temel devreyi çalıştırdıktan sonra kendinizi geliştirmek için şu görevleri deneyin:

    1. **Flaşör Hızı:** `delay(1000);` değerlerini `delay(100);` olarak değiştirin ve LED'in nasıl bir polis tepe lambası gibi hızla çaktığını gözlemleyin.

    2. **Mors Alfabesi ile S.O.S:** 3 kısa yanma (200ms), 3 uzun yanma (800ms) ve 3 kısa yanma ile uluslararası acil durum sinyali oluşturan kodu yazın.

    3. **İki LED'li Karaşimşek:** Devreye ikinci bir LED ekleyin (örneğin 9. pine); biri yanarken diğeri sönsün, sırayla yer değiştirsinler.

    ---

    ---

    8. PWM (Darbe Genişlik Modülasyonu) ile LED Parlaklığı Ayarlama

    Sadece LED'i açıp kapatmak (HIGH/LOW) yerine onun parlaklığını kademeli olarak artırıp azaltmak da mümkündür. Arduino'nun yanında tilde (~) işareti bulunan dijital pinleri (3, 5, 6, 9, 10, 11) PWM çıkışı verebilir:

  • **PWM Mantığı:** 5V gerilimi saniyede yüzlerce kez çok hızlı açıp kapatarak ortalama bir voltaj simülasyonu yaratır.
  • **analogWrite() Fonksiyonu:** 0 ile 255 arasında bir değer alır. 0 verdiğinizde LED tamamen söner, 127 verdiğinizde yarı parlaklıkta yanar, 255 verdiğinizde tam parlaklığa ulaşır.
  • **Nefes Alan LED (Fade) Kodu:** Bir `for` döngüsü kurarak LED'in parlaklığını 0'dan 255'e yavaşça artırıp tekrar azaltabilir, tıpkı uyuyan bir dizüstü bilgisayarın gösterge ışığı gibi estetik bir "nefes alma" efekti oluşturabilirsiniz.
  • ---

    Sonuç

    İlk harici devrenizi kurup kodla kontrol etmeyi başardınız! Bu temel prensip, ileride yapacağınız devasa robotik projelerin, motor kontrollerinin ve ekran yönetimlerinin yapı taşıdır. Daha fazla sensörlü ve eğlenceli projeler için sitemizin [Arduino Dersleri](/dersler) bölümünü takip etmeye devam edin!