Arduino ile LED Yakma: Devre Şeması, Kod ve Adım Adım Anlatım

Arduino ile LED Yakma: Devre Şeması, Kod ve Adım Adım Anlatım

Arduino ile LED yakma, robotik kodlama ve elektronik öğrenmeye başlayanların yaptığı ilk uygulamalardan biridir. Bu küçük proje, yalnızca bir LED’i açıp kapatmaktan ibaret değildir; aynı zamanda dijital çıkış, direnç kullanımı, breadboard bağlantısı, temel devre mantığı ve Arduino program yapısı gibi birçok temel kavramı aynı anda öğretir. Bu yüzden LED yakma çalışması, daha sonra yapılacak sensör, motor, robot ve IoT projelerinin başlangıç basamağı olarak görülmelidir.

Arduino’nun resmi başlangıç dokümanlarında da dijital pinlerin LOW/HIGH mantığıyla çalıştığı, bu pinlerin anahtar okuma veya LED açma-kapama gibi işlemlerde kullanıldığı belirtilir.1 Benzer şekilde resmi Blink örneği, Arduino kart üzerindeki dahili LED’in veya harici bir LED’in belirli aralıklarla yanıp sönmesini sağlayan temel program yapısını gösterir.2 Bu yazıda aynı mantığı Türkçe ve uygulamaya dönük bir şekilde ele alacağız.

Bu Projede Ne Öğreneceğiz?

Bu rehberin amacı, Arduino’ya yeni başlayan bir öğrencinin veya maker adayının yalnızca kodu kopyalamasını değil, bağlantıların ve komutların neden gerekli olduğunu anlamasını sağlamaktır. LED yakma projesinde Arduino’nun bir dijital pini çıkış olarak ayarlanır, bu pin üzerinden LED’e akım gönderilir ve LED’in güvenli çalışması için seri direnç kullanılır. Daha sonra kod tarafında pinMode(), digitalWrite() ve delay() komutlarıyla LED’in davranışı kontrol edilir.

Öğrenilecek konuBu projedeki karşılığı
Dijital çıkışArduino pininden HIGH veya LOW sinyali gönderme
Devre tamamlamaLED, direnç ve GND hattıyla kapalı devre oluşturma
Direnç kullanımıLED üzerinden geçen akımı sınırlama
Program akışısetup() ve loop() fonksiyonlarının görevini anlama
Zamanlamadelay() komutuyla bekleme süresi oluşturma

Bu konular basit görünse de robotik kodlama öğrenirken sık sık karşınıza çıkar. Örneğin bir motor sürücünün yön pinini kontrol etmek, bir röleyi açıp kapatmak veya bir buzzer’ı çalıştırmak da temelde dijital çıkış mantığına dayanır.

Gerekli Malzemeler

Arduino ile LED yakma için çok az malzeme yeterlidir. Yeni başlayanlar için en rahat kart genellikle Arduino Uno veya Uno uyumlu bir geliştirme kartıdır. Ancak aynı uygulama Arduino Nano, Arduino Mega veya benzer Arduino uyumlu kartlarda da yapılabilir. Pin numaraları farklı olabileceği için kendi kartınızın pin düzenini kontrol etmeniz gerekir.

MalzemeAdetAçıklama
Arduino Uno veya uyumlu kart1Kodu çalıştıracak mikrodenetleyici kart
LED1Kırmızı, yeşil, sarı veya mavi olabilir
220 ohm veya 330 ohm direnç1LED’i korumak için seri bağlanır
Breadboard1Lehim yapmadan devre kurmak için kullanılır
Jumper kablo2-3Arduino ile breadboard bağlantısı için kullanılır
USB kablo1Arduino’yu bilgisayara bağlamak ve kod yüklemek için kullanılır

Burada özellikle direnç kullanımına dikkat etmek gerekir. LED doğrudan Arduino pinine bağlanırsa üzerinden gereğinden fazla akım geçebilir. Bu durum LED’in zarar görmesine veya Arduino pininin gereksiz yük altında kalmasına neden olabilir. Bu yüzden LED ile seri bağlı bir direnç kullanmak iyi bir uygulamadır.

LED’in Artı ve Eksi Bacağını Tanıma

LED, kutuplu bir elektronik elemandır. Yani her iki yönde aynı şekilde bağlanmaz. LED’in uzun bacağı genellikle anot olarak adlandırılır ve artı tarafa bağlanır. Kısa bacağı ise katot olarak adlandırılır ve eksi veya GND tarafına bağlanır. LED gövdesinin düz kenarı da çoğu zaman katot tarafını gösterir.

LED yanmıyorsa ilk kontrol edilmesi gereken noktalardan biri LED yönüdür. LED ters bağlandığında genellikle yanmaz; bu durumda bacakların yerini değiştirip devreyi tekrar deneyebilirsiniz.

Bu projede Arduino’nun 13 numaralı dijital pininden LED’in anot tarafına sinyal göndereceğiz. LED’in katot tarafı ise direnç üzerinden GND hattına bağlanacak. Direnç LED’in artı tarafında da eksi tarafında da seri bağlı olabilir; önemli olan LED ile aynı akım yolunda yer almasıdır.

Devre Bağlantısı Nasıl Yapılır?

Harici LED kullanarak devre kurmak için aşağıdaki bağlantıyı yapabilirsiniz. Bu anlatımda Arduino Uno üzerinde D13 pini kullanılmıştır. D13 pini aynı zamanda birçok Arduino kartında dahili LED ile ilişkilidir; bu nedenle Blink örneklerinde sık tercih edilir.2

Arduino bağlantısıDevredeki karşılığı
D13LED’in uzun bacağına, yani anot tarafına gider
LED kısa bacağıDirence bağlanır
Direncin diğer ucuArduino GND pinine bağlanır
USB bağlantısıArduino’ya güç verir ve kod yüklemeyi sağlar

Bağlantıyı kurarken Arduino’nun USB kablosunu bilgisayardan çıkarabilirsiniz. Devreyi tamamladıktan sonra USB kablosunu takmak daha güvenlidir. LED’in bacakları breadboard üzerinde aynı satıra yanlışlıkla kısa devre olacak şekilde takılmamalıdır. Breadboard’un orta kanalını kullanarak LED’in iki bacağını farklı satırlara yerleştirmek yeni başlayanlar için daha anlaşılır olur.

Aşağıdaki kod, LED’i bir saniye yakar ve bir saniye söndürür. Bu döngü Arduino çalıştığı sürece devam eder. Kodda LED_PIN adında bir sabit tanımladık. Böylece ileride LED’i başka pine taşımak isterseniz yalnızca bu satırı değiştirmeniz yeterli olur.

const int LED_PIN = 13;

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_PIN, HIGH);
  delay(1000);
  digitalWrite(LED_PIN, LOW);
  delay(1000);
}

Bu kod Arduino IDE’ye yazılıp karta yüklendiğinde LED’in düzenli aralıklarla yanıp söndüğünü görmelisiniz. Eğer kartınızda dahili LED varsa, harici LED bağlamasanız bile kart üzerindeki küçük LED’in de yanıp söndüğünü fark edebilirsiniz.

Kod Satırları Ne Anlama Geliyor?

Arduino programları temel olarak iki ana fonksiyon üzerine kurulur: setup() ve loop(). Resmi Arduino başlangıç rehberi, mikrodenetleyiciye yüklenen programın güç verildiğinde çalışmaya başladığını ve loop() fonksiyonu içinde sensör okuma, ışık yakma veya koşul kontrolü gibi işlemlerin döngüsel yürütüldüğünü açıklar.1

Kod parçasıGörevi
const int LED_PIN = 13;LED’in bağlı olduğu pin numarasını sabit olarak tanımlar
void setup()Arduino ilk açıldığında bir kez çalışır
pinMode(LED_PIN, OUTPUT);13 numaralı pini çıkış olarak ayarlar
void loop()Arduino açık kaldığı sürece sürekli tekrar eder
digitalWrite(LED_PIN, HIGH);LED pinine 5V seviyesinde dijital sinyal gönderir
delay(1000);Programı 1000 milisaniye, yani 1 saniye bekletir
digitalWrite(LED_PIN, LOW);LED pinini 0V seviyesine çeker ve LED’i söndürür

Bu yapı basit olsa da ileride çok işe yarar. Örneğin bir sensörden okunan değere göre LED yakmak istediğinizde digitalWrite() komutunu bir if koşulu içinde kullanabilirsiniz. Böylece devre yalnızca zamanla değil, çevreden gelen verilere göre de tepki verir.

LED Daha Hızlı veya Daha Yavaş Nasıl Yanıp Söner?

LED’in yanıp sönme hızını değiştirmek için delay() içindeki sayıları değiştirmeniz yeterlidir. delay() komutu milisaniye cinsinden çalışır. 1000 değeri 1 saniye, 500 değeri yarım saniye, 100 değeri ise onda bir saniye bekleme anlamına gelir.

const int LED_PIN = 13;

void setup() {
  pinMode(LED_PIN, OUTPUT);
}

void loop() {
  digitalWrite(LED_PIN, HIGH);
  delay(250);
  digitalWrite(LED_PIN, LOW);
  delay(250);
}

Bu örnekte LED daha hızlı yanıp söner. İsterseniz yanma ve sönme sürelerini farklı yapabilirsiniz. Örneğin LED’in iki saniye yanıp yarım saniye sönmesini sağlayarak uyarı lambasına benzer bir davranış oluşturabilirsiniz.

Sık Yapılan Hatalar ve Çözümleri

Arduino ile LED yakma projesi basit görünse de yeni başlayanların bazı noktalarda hata yapması çok normaldir. Hata çözmeyi öğrenmek, robotik kodlama sürecinin önemli bir parçasıdır. Aşağıdaki tablo, en yaygın sorunları hızlıca kontrol etmenizi sağlar.

SorunOlası nedenÇözüm
LED hiç yanmıyorLED ters bağlanmış olabilirLED’in uzun ve kısa bacağını kontrol edin
LED yanmıyorGND bağlantısı eksik olabilirDirencin diğer ucunun GND’ye gittiğinden emin olun
Kod yüklenmiyorYanlış kart seçilmiş olabilirArduino IDE’de doğru board seçimini yapın
Kod yüklenmiyorYanlış port seçilmiş olabilirAraçlar menüsünden doğru portu seçin
LED çok parlak veya ısınıyorDirenç kullanılmamış olabilir220 ohm veya 330 ohm direnç ekleyin
LED sürekli yanıyorKodda LOW satırı eksik olabilirdigitalWrite(LED_PIN, LOW); satırını kontrol edin

Bu kontrollerin ardından hâlâ sorun yaşıyorsanız, devreyi en baştan daha yavaş kurmak iyi bir yöntemdir. Önce yalnızca Arduino kartı bilgisayara bağlayıp dahili LED üzerinde Blink kodunu deneyin. Daha sonra harici LED devresini ekleyin. Böylece sorunun koddan mı, bağlantıdan mı kaynaklandığını daha kolay anlarsınız.

Dahili LED ile Harici LED Arasındaki Fark

Birçok Arduino kartında dahili bir LED bulunur ve bu LED genellikle D13 piniyle ilişkilidir. Bu sayede hiçbir harici devre kurmadan Blink örneğini deneyebilirsiniz. Ancak harici LED kullanmak, devre kurma becerisini geliştirmek için daha öğreticidir. Çünkü bu yöntemde LED yönünü, direnç kullanımını, breadboard satırlarını ve GND bağlantısını pratik etmiş olursunuz.

Yeni başlayanlar için en iyi yöntem önce dahili LED’i yakıp söndürmek, ardından aynı kodla harici LED devresini kurmaktır. Böylece yazılım kısmının çalıştığından emin olduktan sonra donanım bağlantısını öğrenirsiniz.

Bu Projeden Sonra Ne Yapılabilir?

LED yakma çalışmasını tamamladıktan sonra aynı devre üzerine birçok küçük geliştirme ekleyebilirsiniz. Önce hangi bağlantının hangi görevi üstlendiğini daha net görmek için Arduino Uno pinleri rehberini inceleyebilirsiniz. Ardından Arduino buton ile LED kontrolü projesine geçerek butona basıldığında LED’in yanmasını sağlayabilirsiniz. Daha sonra Arduino sensör okuma mantığını öğrenip potansiyometre veya farklı sensörlerden gelen değere göre LED davranışını değiştirebilirsiniz. PWM destekli bir pin kullanarak LED’i yavaşça artırıp azaltmak istiyorsanız Arduino PWM ile LED parlaklığını ayarlama yazısı iyi bir sonraki adımdır.

Bu küçük geliştirmeler, robotik projelerde ihtiyaç duyacağınız giriş-çıkış mantığını güçlendirir. Bir robotun farlarını yakmak, sensör uyarı LED’i eklemek veya hata durumunda yanıp sönen bir gösterge yapmak aynı temel üzerine kuruludur.

Sonuç

Arduino ile LED yakma projesi, elektronik ve programlamayı bir araya getiren en temel uygulamalardan biridir. Bu çalışmada bir dijital pini çıkış olarak ayarlamayı, LED’i dirençle güvenli şekilde bağlamayı, digitalWrite() ile LED’i kontrol etmeyi ve delay() ile zamanlama oluşturmayı öğrendiniz. Proje küçük olsa da burada öğrendiğiniz mantık, sensörlü sistemlerden robotlara kadar birçok uygulamanın temelini oluşturur.

Bir sonraki adım olarak Arduino IDE kurulumu adımlarını doğru şekilde tamamlayıp kart ve port seçimini öğrenmek, ardından butonla LED kontrolü, analog sensör okuma ve PWM ile LED parlaklığı kontrolü projelerine geçmek iyi bir ilerleme yolu olacaktır.

Kaynaklar

Footnotes

  1. Getting Started with Arduino — Arduino Documentation 2

  2. Blink — Arduino Built-in Examples 2

Benzer Yazılar

Arduino Buton ile LED Kontrolü: digitalRead, Pull-up ve Pull-down Rehberi

Arduino Buton ile LED Kontrolü: digitalRead, Pull-up ve Pull-down Rehberi

Arduino buton ile LED kontrolü, LED yakma uygulamasından sonra yapılabilecek en doğru ikinci başlangıç projesidir. Çünkü bu projede Arduino artık yalnızca bir çıkış elemanını çalıştırmaz; aynı zam

Devamını Oku
Arduino IDE Kurulumu: Windows, macOS ve Linux İçin Adım Adım Rehber

Arduino IDE Kurulumu: Windows, macOS ve Linux İçin Adım Adım Rehber

Arduino IDE kurulumu, Arduino ile proje geliştirmeye başlamadan önce tamamlanması gereken ilk yazılım adımıdır. Arduino kartınıza kod yüklemek, seri porttan veri okumak, örnek projeleri açmak ve t

Devamını Oku
Arduino Nedir? Ne İçin Kullanılır? Yeni Başlayanlar İçin Kapsamlı Rehber

Arduino Nedir? Ne İçin Kullanılır? Yeni Başlayanlar İçin Kapsamlı Rehber

Arduino, hem donanım hem de yazılım tarafıyla elektronik prototipleme dünyasının en popüler açık kaynak platformudur. Hobi sahiplerinden eğitimcilere, sanatçılardan profesyonel mühendislere kadar

Devamını Oku
Arduino PWM ile LED Parlaklığını Ayarlama: analogWrite ve Fade Rehberi

Arduino PWM ile LED Parlaklığını Ayarlama: analogWrite ve Fade Rehberi

Arduino PWM ile LED parlaklığını ayarlama, LED'i yalnızca yakıp söndürmekten bir adım ileriye geçerek ışık şiddetini kademeli biçimde kontrol etmeyi öğretir. Bu uygulamada Arduino'nun dijital bir

Devamını Oku
Arduino Sensör Okuma: analogRead, A0 ve Seri Monitör ile İlk Sensör Değeri

Arduino Sensör Okuma: analogRead, A0 ve Seri Monitör ile İlk Sensör Değeri

Arduino sensör okuma, robotik kodlama öğrenirken dijital girişlerden analog değerlere geçiş yaptığınız en önemli aşamalardan biridir. [Arduino buton ile LED kontrolü](/blog/arduino-buton-ile-led-k

Devamını Oku
Arduino Uno Pinleri: Dijital, Analog, PWM ve Güç Pinleri Rehberi

Arduino Uno Pinleri: Dijital, Analog, PWM ve Güç Pinleri Rehberi

Arduino Uno pinleri, kartın sensörler, LED'ler, butonlar, motor sürücüler ve haberleşme modülleriyle bağlantı kurmasını sağlayan giriş-çıkış noktalarıdır. Arduino öğrenirken yalnızca kod yazmak ye

Devamını Oku