DIY ELECTRONICSEN

← Tüm projeler

Butonla LED Aç/Kapa

Başlangıç20 dk

Bir butonla kırmızı LED'i aç kapa: her basışta LED'in durumu değişir, kaçıncı basış olduğu ve LED'in durumu Seri Monitöre yazılır. digitalRead ile buton okumayı, Arduino'nun iç pull-up direncini (INPUT_PULLUP), butona basıldığı anı yakalamayı ve kontak sıçramasını (debounce) öğretir. Buton için ek direnç ve ek kütüphane gerekmez.

Uygulamada adım adım yap

Gerekli malzemeler

Bağlantı adımları

  1. 1

    Ortak toprağı (GND) bağla

    Ortak toprağı (GND) bağla

    Siyah jumper kabloyu Arduino'nun dijital başlığında, 13 numaralı pinin yanındaki GND pinine tak. Diğer ucunu breadboard'un üstteki mavi çizgili (−) güç sırasına bağla. LED'in direnci de butonun toprak kablosu da bu sıraya bağlanacak.

    • Arduino GND → üstteki mavi çizgili (−) sıra (siyah kablo)
  2. 2

    LED'i ve direncini tak

    LED'i ve direncini tak

    Kırmızı LED'in uzun bacağını (+) breadboard'un üst yarısında 10. sütuna, kısa bacağını (−) 11. sütuna tak. 220 Ω direncin bir ucunu 11. sütuna, öbür ucunu üstteki (−) güç sırasına tak. Sonra turuncu jumper kabloyla Arduino'nun 8 numaralı pinini 10. sütuna bağla (LED_PIN 8). Direnç LED'den geçen akımı sınırlar; o olmadan hem LED hem Arduino'nun pini zarar görebilir.

    • kırmızı LED uzun bacak (+) → 10. sütun, üst yarı
    • kırmızı LED kısa bacak (−) → 11. sütun, üst yarı
    • 220 Ω direnç (1. bacak) → 11. sütun, üst yarı
    • 220 Ω direnç (2. bacak) → üstteki mavi çizgili (−) sıra
    • Arduino pin 8 → 10. sütun, üst yarı (turuncu kablo)
  3. 3

    Butonu tak ve bağla

    Butonu tak ve bağla

    Butonu breadboard'un ortasındaki boşluğun üstüne oturt: iki bacağı üst yarıda, iki bacağı alt yarıda, 5. ve 7. sütunlarda olsun. Yeşil jumper kabloyla Arduino'nun 2 numaralı pinini alt yarıda 5. sütuna bağla (BUTTON_PIN 2). Kısa siyah bir kabloyla da üst yarıda 7. sütunu üstteki (−) güç sırasına bağla. Butonun çapraz iki bacağını kullandığın için buton hangi yöne takılırsa takılsın çalışır. Butona dirençle değil, Arduino'nun kendi iç direnciyle (INPUT_PULLUP) bakıyoruz: bırakılan buton HIGH, basılan buton LOW okunur.

    • buton → ortadaki boşluğun üstüne, 5. ve 7. sütunlar
    • Arduino pin 2 → 5. sütun, alt yarı (yeşil kablo)
    • 7. sütun, üst yarı → üstteki mavi çizgili (−) sıra (siyah kablo)

Arduino kodu

// Buton ve LED'in pinleri
const int BUTTON_PIN = 2;
const int LED_PIN = 8;

// Kontak sıçramasını bekleme süresi (ms)
const unsigned long BOUNCE_TIME = 50;

bool ledOn = false;
int lastReading = HIGH;
int presses = 0;

void setup() {
  // İç direnç: bırakılan buton HIGH okur
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  pinMode(LED_PIN, OUTPUT);
  Serial.begin(9600);
  Serial.println("Butona bas: LED yanar ya da söner");
}

void loop() {
  int reading = digitalRead(BUTTON_PIN);

  // Yalnızca buton değişince bir şey yap
  if (reading != lastReading) {
    // LOW: butona şimdi basıldı
    if (reading == LOW) {
      ledOn = !ledOn;
      digitalWrite(LED_PIN, ledOn ? HIGH : LOW);
      presses++;
      Serial.print("Basış ");
      Serial.print(presses);
      Serial.println(ledOn ? ": LED açık" : ": LED kapalı");
    }
    lastReading = reading;
    // Kontaklar sıçrarken bekle
    delay(BOUNCE_TIME);
  }
}

Seri Monitörde göreceğin

SERIAL MONITOR · 9600 BAUD
Butona bas: LED yanar ya da söner
Basış 1: LED açık
Basış 2: LED kapalı
Basış 3: LED açık

Sonuç

Butona her basışta LED'in durumu değişir: ilk basışta yanar, ikincide söner, üçüncüde yine yanar. Butonu basılı tutmak bir şey değiştirmez; sayılan, basıldığı andır. Butona basınca hiçbir şey olmuyorsa butonun ortadaki boşluğun üstüne oturduğuna, yeşil kablonun 5. sütunda, siyah kablonun 7. sütunda olduğuna bak. LED hiç yanmıyorsa uzun bacağının 10. sütunda (pin 8'in kablosuyla aynı sütunda) olduğunu kontrol et.

Uygulamada her bağlantıyı tek tek işaretle, envanterindeki parçalarla eşleştir ve kaldığın yerden devam et.

Uygulamada adım adım yap