Arduino ile buton kullanımı

👤 Yazar: ozcan 📅 Tarih: 14.05.2026 03:48 👁️ Görüntüleme: 3

Arduino ile buton kullanmak, fiziksel dünya ile kodunuz arasında iletişim kurmanın en temel ve eğlenceli yollarından biridir. Bir butonu "giriş" (input) olarak kullanırken dikkat etmeniz gereken en önemli konu, floating (yüzen) pin sorununu engellemek için direnç kullanımıdır.

İşte adım adım buton kullanımı rehberi:

1. Devre Şeması ve Bağlantı


Butona basılmadığında Arduini pini üzerinde "kararsız" bir sinyal oluşmaması için ya bir Pull-down ya da bir Pull-up direnci kullanmalıyız. En yaygın yöntem Pull-down direncidir.

Butonun bir bacağı: 5V hattına.

Diğer bacağı: Hem Arduino'nun dijital pinine (örneğin Pin 2) hem de 10k ohm'luk bir direnç üzerinden GND (Toprak) hattına bağlanır.

2. Arduino Kod Örneği

Aşağıdaki kod, butona bastığınızda Arduino üzerindeki yerleşik LED'i (Pin 13) yakar.

const int butonPin = 2;    // Butonun bağlı olduğu pin
const int ledPin = 13;     // LED'in bağlı olduğu pin

int butonDurumu = 0;       // Butonun durumunu saklayacak değişken

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

void loop() {
  // Butonun değerini oku (Hizmetli gibi sürekli kontrol eder)
  butonDurumu = digitalRead(butonPin);

  // Eğer butona basılmışsa (HIGH ise)
  if (butonDurumu == HIGH) {
    digitalWrite(ledPin, HIGH); // LED'i yak
  } else {
    digitalWrite(ledPin, LOW);  // LED'i söndür
  }
}

3. Pratik İpucu: INPUT_PULLUP

Dışarıdan direnç bağlamakla uğraşmak istemiyorsanız, Arduino'nun kendi içindeki dirençleri kullanabilirsiniz. Buna INPUT_PULLUP denir.

Bağlantı: Butonun bir bacağını Pin 2'ye, diğerini direkt GND'ye bağlayın.

Kod Değişikliği: pinMode(butonPin, INPUT_PULLUP);

Mantık: Bu modda butona basılmadığında değer HIGH, basıldığında LOW döner. Yani mantık tersine işler.

4. Dikkat Edilmesi Gerekenler: Debouncing

Butonlar mekanik parçalardır. Siz butona bir kez bastığınızda, metal plakalar milisaniyeler içinde birbirine defalarca çarpıp ayrılabilir. Arduino bunu "birden fazla basış" gibi algılayabilir.

Çözüm: Kodun içine çok kısa bir gecikme (delay(50);) eklemek veya bir "debounce" algoritması kullanmak bu paraziti önler.

💬 Yorumlar

Henüz yorum yapılmamış. İlk yorumu siz yapın!

Bir Yorum Bırakın

Güvenlik Kontrolü:

Yenidir.com
Sayfa Başı
Yenidir CMS V0.1