Piezo Disk ile Kırılma ve Darbe Dedektörü (Cam / Yüzey Güvenliği)

👤 Yazar: ozcan 📅 Tarih: 19.07.2026 14:08 👁️ Görüntüleme: 25

Piezo Disk ile Kırılma ve Darbe Dedektörü (Cam / Yüzey Güvenliği)

Akıllı ev güvenlik sistemlerinde, vitrin korumalarında veya hırsız alarm projelerinde cam kırılmasını ya da kapı/pencerelere yönelik sert darbeleri algılamak için piezoelektrik diskler (piezo sensörler) kullanılır. Piezo diskler, üzerlerine mekanik bir baskı, titreşim veya darbe uygulandığında uçlarında mikrovolt-milivolt seviyelerinde anlık bir gerilim (voltaj) üreten elementlerdir. Bu yapıları sayesinde, yüzeydeki şok dalgalarını çok hızlı bir şekilde elektriksel veriye dönüştürürler.

Piezo Disk ile Kırılma ve Darbe Dedektörü bağlantı şeması

Kritik Yüksek Voltaj Uyarısı: Piezo diskler sert bir darbeye maruz kaldıklarında (örneğin üzerine doğrudan vurulduğunda veya cam kırıldığında) anlık olarak 10V ila 50V arasında yüksek voltaj pikleri üretebilirler. Arduino'nun analog pinleri en fazla 5V giriş gerilimine dayanabilir. Bu ani yüksek voltajın Arduino'yu yakmasını engellemek için piezo diskin iki ucuna paralel olarak mutlaka 1MΩ (Megaohm) değerinde bir direnç ve koruma amacıyla bir zener diyot veya voltaj sınırlayıcı eklenmelidir.

A0-A1-A2 Sıralı Pin Mimarisini Kullanan Darbe Dedektörü Kod Bloğu

Serideki önceki çalışmalarımıza sadık kalarak, bu projede de donanımsal yerleşimi analog blokta (A0, A1, A2) topluyoruz. Sistem, piezo diski sürekli dinleyerek darbenin şiddetini A2 pininden ölçer, eşik aşımında Kırmızı LED ve Buzzer ile (9, 8, 7 pinleri) kesintili alarm verir, normal durumda ise Yeşil LED aktif kalır:

/**
 * @file Piezo_Darbe_Dedektoru.ino
 * @brief Piezo Disk ile Yüzey Titreşim ve Darbe Analiz Algoritması
 * 
 * Pin Eşleşmeleri:
 * - Arduino A0 -> Boşta / Gelecek Geliştirmeler İçin Ayrıldı
 * - Arduino A1 -> Boşta / Dijital Eşik Kartı Girişi İçin Ayrıldı
 * - Arduino A2 -> Piezo Disk Analog Çıkış Hattı (+)
 * - Arduino D9 -> Kırmızı LED (Alarm Durumu)
 * - Arduino D8 -> Yeşil LED (Güvenli Durum)
 * - Arduino D7 -> Buzzer (Sesli Uyarı)
 */

// Donanımsal Pin Tanımlamaları
const int PIEZO_ANALOG_PIN = A2; // Piezo diskin bağlandığı analog okuma pini

const int kirmiziLed = 9;
const int yesilLed   = 8;
const int buzzer     = 7;

// Sistemsel Değişkenler ve Hassasiyet Eşikleri
int darbeDegeri = 0;
const int darbeEsigi = 50; // Darbe olarak kabul edilecek eşik değeri (0-1023 arası)

void setup() {
  // Gelişmiş veri takibi için seri port başlatılıyor
  Serial.begin(9600);
  
  // İndikatör ve alarm pinlerinin yönelimleri ayarlanıyor
  pinMode(kirmiziLed, OUTPUT);
  pinMode(yesilLed, OUTPUT);
  pinMode(buzzer, OUTPUT);
  
  // Sistem ilk açılışta güvenli modda başlar
  digitalWrite(yesilLed, HIGH);
  digitalWrite(kirmiziLed, LOW);
  digitalWrite(buzzer, LOW);
  
  Serial.println(F("[SISTEM] Darbe ve Kirilma Dedektoru Aktif."));
}

void loop() {
  // -------------------------------------------------------------------------
  // 1. AŞAMA: ANLIK TİTREŞİM / DARBE VERİSİ EDİNİMİ
  // -------------------------------------------------------------------------
  // Yüzeyden gelen anlık mekanik dalgalanma voltajını A2 pininden okuyoruz
  darbeDegeri = analogRead(PIEZO_ANALOG_PIN);
  
  // Eğer piezo diskten okunan değer 0'dan büyükse seri terminale basıyoruz
  // (Gereksiz log kalabalığını önlemek için sadece hareketlilik basılır)
  if (darbeDegeri > 5) {
    Serial.print(F("Darbe Genligi (A2): "));
    Serial.println(darbeDegeri);
  }

  // -------------------------------------------------------------------------
  // 2. AŞAMA: LOJİK DEĞERLENDİRME VE ALARM TETİKLEME
  // -------------------------------------------------------------------------
  if (darbeDegeri > darbeEsigi) {
    // Eşik değeri aşıldı: Cam kırılması veya sert bir darbe algılandı!
    Serial.print(F("[ALARM] KRITIK DARBE! Algilanan Deger: "));
    Serial.println(darbeDegeri);
    
    // Güvenli indikatörünü kapat, alarm durumuna geç
    digitalWrite(yesilLed, LOW);
    
    // Kesintili alarm (Flash efekti)
    digitalWrite(kirmiziLed, HIGH);
    digitalWrite(buzzer, HIGH);
    delay(150); 
    
    digitalWrite(kirmiziLed, LOW);
    digitalWrite(buzzer, LOW);
    delay(150);
  } 
  else {
    // Yüzey stabil ve sakinse yeşil LED yanmaya devam eder
    digitalWrite(yesilLed, HIGH);
    digitalWrite(kirmiziLed, LOW);
    digitalWrite(buzzer, LOW);
  }
  
  // Piezo disklerin anlık piklerini kaçırmamak için döngü gecikmesi 
  // minimumda tutulur (Çok yüksek delay verilirse darbe anı ıskalanabilir)
  delay(10);
}

Donanımsal Koruma Devresi ve Montaj Detayları

Piezo diskin kararlı çalışması ve mikrokontrolcüyü elektriksel hasarlardan korumak için şu şemaya dikkat edilmelidir:

1. Paralel Direnç Köprüsü (Yük Direnci): Piezo diskin seramik (beyaz/iç) kısmı ile pirinç (dış) kısmına paralel olarak 1MΩ'luk bir direnç bağlanır. Bu direnç iki işe yarar: İlk olarak piezonun ürettiği yüksek voltajı sönümleyerek Arduino'yu korur. İkinci olarak, piezo üzerinde biriken statik elektriği hızla deşarj ederek analog pinin sürekli yüksek değerde asılı kalmasını (yüzen pin durumunu) engeller.

2. Arduino A2 Bağlantısı: Piezo diskin ortasındaki beyaz seramik alandan çıkan kablo (pozitif kutup), Arduino'nun A2 analog pinine bağlanır. Dıştaki pirinç yüzeyden çıkan kablo (negatif kutup) ise doğrudan Arduino'nun GND hattına çekilir.

3. Yüzeye Montaj (Mekanik Akustik): Sensörün kırılma veya darbeleri iyi yakalayabilmesi için korunacak yüzeye (örneğin pencere camının köşesine veya ahşap yüzeye) çift taraflı ince bir bant ya da silikon yardımıyla tamamen temas edecek şekilde sıkıca yapıştırılması gerekir. Hava boşluğu kalması, şok dalgalarının diske iletilmesini engelleyerek hassasiyeti ciddi oranda düşürecektir.

💬 Yorumlar

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

Bir Yorum Bırakın

Güvenlik Kontrolü:

Yenidir.com
↑ Sayfa Başı
📞 İletişim ✉ E-Posta Gönder 🟥 YouTube
© 2026 Yenidir.com
Yenidir CMS V0.1