🤖
ROBOT KODLA
Öğrenmeye Başla →
⚡ 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:

  • Arduino'nun belirlenen dijital pini (örneğin 8. pin) çıkış (OUTPUT) olarak ayarlanır.
  • Pine 5V voltaj gönderilerek devreden akım akması sağlanır (`digitalWrite(8, HIGH);`). LED ışık verir.
  • 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ıMiktarAçıklama
    Arduino Uno R31 AdetAna mikrokontrolcü kartı (veya Nano)
    5mm Standart LED1 AdetKırmızı, yeşil veya mavi renk
    220Ω veya 330Ω Direnç1 AdetLED'i aşırı akımdan korumak için (Kırmızı-Kırmızı-Kahverengi)
    Breadboard (Devre Tahtası)1 AdetLehim yapmadan devre kurmak için
    Jumper Kablo (Erkek - Erkek)2 AdetArduino ile breadboard arası bağlantı için
    USB Bağlantı Kablosu1 AdetKodu 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ı:

  • LED'i breadboard üzerine takın. Bacaklarının farklı dikey delik hatlarına geldiğinden emin olun.
  • 220 ohm'luk direncin bir bacağını LED'in uzun bacağının (Anot) bulunduğu hatta takın.
  • Direncin diğer boştaki bacağını bir jumper kablo ile Arduino'nun 8 numaralı dijital pinine bağlayın.
  • 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

    SorunNedeniÇözüm
    LED hiç yanmıyorLED ters takılmış olabilirLED'in uzun ve kısa bacaklarının yönünü kontrol edip ters çevirin.
    LED sürekli yanıyor, hiç sönmüyorKod karta yüklenmemiş olabilirArduino IDE'de "Yükleme tamamlandı" mesajını gördüğünüzden emin olun.
    LED çok zayıf yanıyorDirenç değeri çok yüksek100kΩ gibi yüksek bir direnç takmış olabilirsiniz; 220Ω veya 330Ω direnç takın.
    Port hatası alıyorumUSB 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:

  • 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.
  • 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.
  • İ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!

    💡

    Arduino ile LED Yakma ve Söndürme: Devre Şeması ve Kodları Hakkında Sıkça Sorulan Sorular

    Bu yazıyla ilgili en çok merak edilen noktalar ve uzman yanıtları

    Bu rehber yazıda anlatılan yöntemleri uygulamak için neler gereklidir?▼
    İçerikte belirtilen açık kaynaklı yazılım araçlarını ve temel donanım bileşenlerini temin etmeniz yeterlidir. Tüm adımlar pratik uygulamalarla desteklenmiştir.
    Bu uygulamada devre bağlantısı yaparken en çok yapılan hata nedir?▼
    Ortak toprak (GND) hattının bağlanmaması, LED ve sensör bacaklarının ters kutupla takılması ya da pin numaralarının koddaki dijital/analog tanımlarla uyuşmaması en sık karşılaşılan durumlardır. Şemadaki pin numaralarını iki kez kontrol etmek sorunu çözer.
    Arduino ile LED Yakma ve Söndürme: Devre Şeması ve Kodları çalışmasını tamamladıktan sonra nasıl daha ileri bir seviyeye taşıyabilirim?▼
    Bu çalışmaya ek sensörler (kablosuz Bluetooth/Wi-Fi modülü, OLED ekran veya sesli buzzer uyarısı) entegre edebilir; verileri internet ortamına aktararak Nesnelerin İnterneti (IoT) tabanlı akıllı bir sisteme dönüştürebilirsiniz.