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.

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);
}
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.
Henüz yorum yapılmamış. İlk yorumu siz yapın!