...

Arduino LED Devresi #5 – Buton ile LED Yakma Projesi

Proje Özeti

Bu projede, Arduino kullanarak bir buton ile LED kontrolünü öğreneceğiz. İki farklı senaryoyu uygulayacağız:

  1. Basılı tutma: Buton basılıyken LED yanar, bırakıldığında söner.
  2. Bas-çek (toggle): Butona her basıldığında LED’in durumu değişir.

Her iki yöntem de Arduino ile temel dijital giriş/çıkış kontrolünü öğrenmek için idealdir.

Gerekli Malzemeler

ParçaMiktar
Arduino UNO (veya uyumlu)1 adet
LED1 adet
220Ω direnç1 adet
10kΩ direnç1 adet (pull-down için)
Buton1 adet
Breadboard1 adet
Jumper kablolarıYeterli sayıda

Devre Bağlantısı

LED Bağlantısı:

  • Uzun bacak (Anot): Arduino pin 2
  • Kısa bacak (Katot): 220Ω direnç üzerinden GND

Buton Bağlantısı (Pull-down yöntemiyle):

  • Bir ucu: Arduino pin 3
  • Diğer ucu: +5V
  • Aynı bacak ile GND arasına: 10kΩ pull-down direnci

Pull-Down Direnci Nedir?

Arduino’da bir dijital giriş pini boşta bırakılırsa (örneğin buton basılmadığında), pinin durumu kararsız olabilir. Bu duruma floating (yüzücü) pin denir.
Pull-down direnci, pinin LOW seviyesinde kalmasını sağlar ve yanlış tetiklemeleri önler.

Genellikle 10kΩ direnç kullanılır. Butonun bir ucuyla GND arasına bağlanır.

Bağlantı Şeması:


Yöntem 1: Basılı Tutma ile LED Kontrolü

Bu yöntemde, buton basılı tutulduğu sürece LED yanar. Bırakıldığında söner.

int ledPin = 2;
int butonPin = 3;

void setup() {
  pinMode(ledPin, OUTPUT);
  pinMode(butonPin, INPUT);  // Pull-down kullanıldığı için INPUT
}

void loop() {
  int butonDurumu = digitalRead(butonPin);

  if (butonDurumu == HIGH) {
    digitalWrite(ledPin, HIGH); // LED yanar
  } else {
    digitalWrite(ledPin, LOW);  // LED söner
  }
}

öntem 2: Bas-Çek (Toggle) ile LED Kontrolü

Bu yöntemle butona her basıldığında, LED’in durumu değiştirilir:

  • İlk basışta: LED yanar
  • İkinci basışta: LED söner
  • Devamında her basışta durum değişir
int ledPin = 2;              // LED'in bağlı olduğu pin
int butonPin = 3;            // Butonun bağlı olduğu pin

bool ledDurumu = false;      // LED başlangıç durumu (kapalı)
bool oncekiButonDurumu = LOW; // Butonun önceki durumu (basılmamış)

void setup() {
  pinMode(ledPin, OUTPUT);  // LED pini çıkış olarak ayarlanır
  pinMode(butonPin, INPUT); // Buton pini giriş olarak ayarlanır
}

void loop() {
  bool butonDurumu = digitalRead(butonPin); // Butonun mevcut durumu okunur

  // Buton basıldıysa ve önceki durum basılmamışsa (yeni basış algılanır)
  if (butonDurumu == HIGH && oncekiButonDurumu == LOW) {
    ledDurumu = !ledDurumu;  // LED durumu değiştirilir (aç/kapa)
    digitalWrite(ledPin, ledDurumu ? HIGH : LOW); // LED durumu uygulanır
    delay(50);  // Debounce için kısa gecikme
  }

  oncekiButonDurumu = butonDurumu; // Butonun önceki durumu güncellenir
}

Serinin devamı için buradan devam edebilirsiniz:https://monoveri.com.tr/arduino-led-devresi-6-buton-ile-3-modlu-led-yanip-sonme-projesi/

Seraphinite AcceleratorOptimized by Seraphinite Accelerator
Turns on site high speed to be attractive for people and search engines.