DIY ELECTRONICSEN

← Tüm projeler

Buzzer ile Kapı Zili

Başlangıç20 dk

Butona basınca pasif buzzer'dan dört notalı bir "ding-dong" melodisi çalan bir kapı zili; her çalış Seri Monitöre de yazılır. tone() ile ses çıkarmayı, notaları ve sürelerini dizilerde tutup bir for döngüsüyle çalmayı, işi kendi fonksiyonuna toplamayı ve butonu Arduino'nun iç direnciyle (INPUT_PULLUP) okumayı öğretir. Melodiyi koddaki notaları değiştirerek kendine göre yapabilirsin. 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. Butonun ve buzzer'ın toprak kabloları da bu sıraya bağlanacak.

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

    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; ek direnç de gerekmez, Arduino'nun iç direnci (INPUT_PULLUP) yeter.

    • 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)
  3. 3

    Buzzer'ı tak ve bağla

    Buzzer'ı tak ve bağla

    Pasif buzzer'ın + bacağını üst yarıda 15. sütuna, öbür bacağını 16. sütuna tak; + bacak genelde daha uzundur ve gövdesinde + işareti vardır. Turuncu jumper kabloyla Arduino'nun 8 numaralı pinini 15. sütuna bağla (BUZZER_PIN 8). Kısa siyah bir kabloyla da 16. sütunu üstteki (−) güç sırasına bağla. Pasif buzzer kendi başına ses çıkarmaz; tone() pine saniyede yüzlerce kez açılıp kapanan bir sinyal verir ve buzzer o sıklıkta, yani o notada titrer.

    • buzzer + bacak → 15. sütun, üst yarı
    • buzzer − bacak → 16. sütun, üst yarı
    • Arduino pin 8 → 15. sütun, üst yarı (turuncu kablo)
    • 16. sütun, üst yarı → üstteki mavi çizgili (−) sıra (siyah kablo)

Arduino kodu

// Buton ve buzzer'ın pinleri
const int BUTTON_PIN = 2;
const int BUZZER_PIN = 8;

// Zilin notaları (Hz): Mi, Do, Re, Sol
const int MELODY[] = {659, 523, 587, 392};
// Her notanın süresi (ms)
const int DURATIONS[] = {400, 400, 400, 800};
const int NOTE_COUNT = 4;

int rings = 0;

void setup() {
  // İç direnç: basılan buton LOW okur
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  pinMode(BUZZER_PIN, OUTPUT);
  Serial.begin(9600);
  Serial.println("Kapı zili hazır: butona bas");
}

// Notaları sırayla çalar
void playMelody() {
  for (int i = 0; i < NOTE_COUNT; i++) {
    tone(BUZZER_PIN, MELODY[i], DURATIONS[i]);
    // Nota bitsin, sonra kısa sessizlik
    delay(DURATIONS[i] + 50);
  }
  noTone(BUZZER_PIN);
}

void loop() {
  if (digitalRead(BUTTON_PIN) == LOW) {
    rings++;
    Serial.print("Zil çaldı: ");
    Serial.println(rings);
    playMelody();

    // Buton bırakılana kadar bekle
    while (digitalRead(BUTTON_PIN) == LOW) {
      delay(10);
    }
    // Bırakırken kontak sıçramasını bekle
    delay(50);
  }
}

Seri Monitörde göreceğin

SERIAL MONITOR · 9600 BAUD
Kapı zili hazır: butona bas
Zil çaldı: 1
Zil çaldı: 2
Zil çaldı: 3

Sonuç

Butona her basışta buzzer "ding-dong" diye dört nota çalar (Mi, Do, Re, Sol) ve Seri Monitöre kaçıncı kez çaldığı yazılır. Butonu basılı tutmak zili tekrar çaldırmaz; bırakıp yeniden basman gerekir. Hiç ses yoksa buzzer'ın pasif olduğuna, + bacağının 15. sütunda (pin 8'in kablosuyla aynı sütunda) olduğuna bak. Seri Monitöre yazı geliyor ama ses yoksa sorun buzzer tarafındadı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.

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