HIZLI VE GÜVENİLİR KARGO
1.750 TL üzeri ücretsiz kargo
HIZLI VE GÜVENİLİR KARGO
1.750 TL üzeri ücretsiz kargo
Düğmeye Bas, Hayatı Aydınlat: İnteraktif LED Kontrolü

Düğmeye Bas, Hayatı Aydınlat: İnteraktif LED Kontrolü

İlk projemizde LED'i otomatik olarak yakıp söndürdük, ancak bu kez kontrol tamamen sizin elinizde olacak. Bir butona basarak ışığı yakıp söndürmek, Arduino'nun gerçek hayatta nasıl etkileşimli sistemler oluşturduğunu gösteren harika bir örnektir.

Gerekli Malzemeler

  • Arduino Uno: Projemizin beyni.
  • 1 adet LED: Işık saçacak olan eleman.
  • 1 adet Buton (Push Button): Sizin kontrolünüzü sağlayacak mekanik anahtar.
  • 1 adet 220Ω Direnç: LED'inizi korumak için gerekli.
  • 1 adet 10kΩ Direnç: Butonun durumunu doğru okuyabilmek için kullandığımız pull-down direnci.
  • Breadboard: Lehim yapmadan devre kurmanızı sağlar.
  • Jumper Kablolar: Bağlantılar için gerekli.

Devre Kurulumu

Bu projenin devresi, ilkine göre biraz daha karmaşık olsa da, adımları dikkatle takip edince çok kolay olduğunu göreceksiniz.

  1. LED ve 220Ω Direnç Bağlantısı:LED'in uzun bacağını (anot) breadboard'a yerleştirin.220Ω direncin bir ucunu LED'in uzun bacağının olduğu sıraya, diğer ucunu ise breadboard üzerinde boş bir sıraya takın.LED'in kısa bacağını (katot) bir jumper kabloyla Arduino'daki GND pinine bağlayın.220Ω direncin boşta kalan ucunu bir jumper kabloyla Arduino'daki dijital Pin 13'e bağlayın.
  2. LED'in uzun bacağını (anot) breadboard'a yerleştirin.
  3. 220Ω direncin bir ucunu LED'in uzun bacağının olduğu sıraya, diğer ucunu ise breadboard üzerinde boş bir sıraya takın.
  4. LED'in kısa bacağını (katot) bir jumper kabloyla Arduino'daki GND pinine bağlayın.
  5. 220Ω direncin boşta kalan ucunu bir jumper kabloyla Arduino'daki dijital Pin 13'e bağlayın.
  6. Buton ve 10kΩ Direnç Bağlantısı:Butonu breadboard'ın orta boşluğuna (orta kanala) takın.Butonun bir bacağını bir jumper kabloyla Arduino'daki 5V pinine bağlayın.Butonun aynı taraftaki diğer bacağını bir jumper kabloyla Arduino'daki dijital Pin 2'ye bağlayın.Şimdi 10kΩ direnci alın. Direncin bir ucunu az önce 5V ve Pin 2'ye bağladığınız aynı sıradaki bacaklardan birine, diğer ucunu ise Arduino'daki GND pinine bağlayın. Bu dirence pull-down direnci denir ve buton basılı değilken pini stabil bir şekilde "LOW" (0V) seviyesinde tutar.
  7. Butonu breadboard'ın orta boşluğuna (orta kanala) takın.
  8. Butonun bir bacağını bir jumper kabloyla Arduino'daki 5V pinine bağlayın.
  9. Butonun aynı taraftaki diğer bacağını bir jumper kabloyla Arduino'daki dijital Pin 2'ye bağlayın.
  10. Şimdi 10kΩ direnci alın. Direncin bir ucunu az önce 5V ve Pin 2'ye bağladığınız aynı sıradaki bacaklardan birine, diğer ucunu ise Arduino'daki GND pinine bağlayın. Bu dirence pull-down direnci denir ve buton basılı değilken pini stabil bir şekilde "LOW" (0V) seviyesinde tutar.

Kodlama Zamanı!

Devre kurulumu tamamlandıysa, sıra geldi kontrolü ele almaya. Arduino IDE'yi açın ve aşağıdaki kodu kopyalayıp yapıştırın.

C

// Değişken tanımlamaları
const int ledPin = 13;      // LED'in bağlı olduğu pin
const int buttonPin = 2;    // Butonun bağlı olduğu pin

// Değişken tanımlamaları: Butonun durumunu takip etmek için
int buttonState = 0;        // Butonun mevcut durumunu tutacak değişken

// Bu fonksiyon, kod çalışmaya başladığında bir kez çalışır.
void setup() {
  // LED pinini ÇIKIŞ olarak ayarla
  pinMode(ledPin, OUTPUT);
  
  // Buton pinini GİRİŞ olarak ayarla
  pinMode(buttonPin, INPUT);
}

// Bu fonksiyon, Arduino çalıştığı sürece sürekli tekrar eder.
void loop() {
  // Butonun durumunu oku (HIGH veya LOW)
  buttonState = digitalRead(buttonPin);

  // Eğer buton basılıysa (HIGH ise)...
  if (buttonState == HIGH) {
    // LED'i yak
    digitalWrite(ledPin, HIGH);
  } else {
    // Aksi takdirde (buton basılı değilse)...
    // LED'i söndür
    digitalWrite(ledPin, LOW);
  }
}

Kodu Anlayalım

  • const int ledPin = 13; ve const int buttonPin = 2;: LED ve butonu bağladığımız pin numaralarını tanımladık.
  • int buttonState = 0;: Butonun anlık durumunu (basılı olup olmadığını) tutacak bir değişken tanımladık.
  • void setup() { ... }:pinMode(ledPin, OUTPUT);: LED'i yakıp söndüreceğimiz için 13 numaralı pini çıkış olarak belirledik.pinMode(buttonPin, INPUT);: Butonun durumunu okuyacağımız için 2 numaralı pini giriş olarak ayarladık.
  • pinMode(ledPin, OUTPUT);: LED'i yakıp söndüreceğimiz için 13 numaralı pini çıkış olarak belirledik.
  • pinMode(buttonPin, INPUT);: Butonun durumunu okuyacağımız için 2 numaralı pini giriş olarak ayarladık.
  • void loop() { ... }:buttonState = digitalRead(buttonPin);: Bu komut, butona bastığımızda 5V voltajı okur ve buttonState değişkenine "HIGH" değerini atar. Basmadığımızda ise 10kΩ'luk pull-down direnci sayesinde 0V okur ve "LOW" değerini atar.if (buttonState == HIGH) { ... }: Bu bir koşul ifadesidir. Eğer buttonState değişkeninin değeri "HIGH" ise (yani butona basılmışsa), süslü parantez içindeki kod çalışır.digitalWrite(ledPin, HIGH);: LED'i yakar.else { ... }: Eğer if koşulu sağlanmıyorsa (yani buton basılı değilse), else bloğu içindeki kod çalışır.digitalWrite(ledPin, LOW);: LED'i söndürür.
  • buttonState = digitalRead(buttonPin);: Bu komut, butona bastığımızda 5V voltajı okur ve buttonState değişkenine "HIGH" değerini atar. Basmadığımızda ise 10kΩ'luk pull-down direnci sayesinde 0V okur ve "LOW" değerini atar.
  • if (buttonState == HIGH) { ... }: Bu bir koşul ifadesidir. Eğer buttonState değişkeninin değeri "HIGH" ise (yani butona basılmışsa), süslü parantez içindeki kod çalışır.
  • digitalWrite(ledPin, HIGH);: LED'i yakar.
  • else { ... }: Eğer if koşulu sağlanmıyorsa (yani buton basılı değilse), else bloğu içindeki kod çalışır.
  • digitalWrite(ledPin, LOW);: LED'i söndürür.

Kodu Yükleme

  1. Arduino'nuzu USB kablosuyla bilgisayarınıza bağlayın.
  2. Arduino IDE'de Araçlar > Kart menüsünden Arduino Uno'yu seçin.
  3. Araçlar > Port menüsünden doğru portu seçtiğinizden emin olun.
  4. Kodu derlemek ve yüklemek için sağ üstteki ok işaretine (Yükle) tıklayın.

Kodu yükledikten sonra butona bastığınızda LED'in yandığını, elinizi çektiğinizde ise söndüğünü göreceksiniz. Tebrikler! Artık basit bir mekanik eylemi, elektronik bir çıkışa dönüştürmeyi başardınız.

Bu proje, bir sonraki adımlar için kapı aralayan temel bir anahtardır. Artık sadece kod yazmakla kalmıyor, fiziksel dünyayı da kodunuzla kontrol ediyorsunuz. Peki, bu butona basınca ışığın farklı renklerde yanması nasıl olurdu? Denemek isterseniz, bir sonraki projemiz RGB LED olabilir!