Arduino ile Darbe / Tıklama Sensörü Modülü (KY-031 Knock Sensor) Kullanımı
Bu rehberde, Arduino Uno kontrol kartı ve KY-031 Darbe / Tıklama Sensör Modülü (Knock Sensor) kullanarak fiziksel vuruş, tıklama ve doğrudan darbeleri algılama uygulamasını inceleyeceğiz.
Gerekli Malzemeler:
1 x Arduino Uno R3
1 x KY-031 Darbe / Tıklama Sensör Modülü
1 x Breadboard (Devre Tahtası)
Yeterli miktarda Jumper Kablo
Devre Bağlantı Detayları
Görseldeki devre şemasına göre bağlantılar şu şekilde yapılmaktadır:
Sensör S (Sinyal): Arduino Digital 3 Pini (Mavi Kablo)
Sensör - (GND): Breadboard üzerinden Arduino GND Pini (Siyah Kablo)
Çalışma Prensibi
KY-031 modülü, içerisinde bir yay ve yay içindeki kontak elemanından oluşan mekanik bir vuruntu/darbe anahtarı barındırır. Çalışma mantığı şu şekildedir:
1. Normal (Durağan) Durum: Sensör yüzeyine doğrudan bir fiziksel darbe uygulanmadığı sürece dahili yay serbest haldedir. Kart üzerindeki pull-up direnci vasıtasıyla S sinyal çıkışı HIGH (5V) seviyesinde bekler.
2. Darbe ve Tıklama Anı: Sensör kılıfına bir tıklama, vuruntu veya sert bir darbe geldiğinde, iç kısımdaki esnek yay anlık olarak yer değiştirerek kontak bacağına temas eder. Bu temas devreyi anlık olarak toprağa çeker ve S pini lojik LOW (0V) seviyesine düşer.
3. Algılama Farkı (KY-002 vs KY-031): Titreşim sensörlerine (KY-002) kıyasla KY-031, genel sarsıntılardan ziyade yüzeye yapılan doğrudan vuruntu ve tıklama gibi noktasal fiziksel darbelere daha hassas tepki verecek mekanik yapıya sahiptir.
Örnek Arduino Kodu
const int darbePin = 3; // KY-031 Sinyal Pini
const int ledPin = 13; // Dahili Arduino LED'i
int darbeDurumu = 0;
void setup() {
Serial.begin(9600);
pinMode(darbePin, INPUT); // Sensör pini giriş yapıldı
pinMode(ledPin, OUTPUT); // LED pini çıkış yapıldı
}
void loop() {
// Sensörden dijital okuma yap
darbeDurumu = digitalRead(darbePin);
// Darbe veya vuruntu algılandığında sinyal LOW seviyesine düşer
if (darbeDurumu == LOW) {
digitalWrite(ledPin, HIGH); // Vuruntu var: Dahili LED'i yak
Serial.println("Darbe / Tıklama Algılandı!");
delay(100); // Tetiklemeyi net görebilmek için kısa bekleme
} else {
digitalWrite(ledPin, LOW); // Normal durum: LED'i söndür
}
}
Geliştirme Önerileri ve İpuçları
KY-031 darbe sensörünü projelerinizde efektif şekilde kullanmak için şu ipuçlarını değerlendirebilirsiniz:
Tıklama İle Çalışan Akıllı Anahtarlar: Kapıya, masaya veya bir kutu yüzeyine monte edilerek "iki kere tıklatıldığında" ışıkları yakan veya kilit açan akıllı ev sistemlerinde kullanılabilir.
Donanımsal Kesme (Interrupt) Entegrasyonu: Fiziksel darbe anlık bir iletim sağladığı için loop döngüsündeki gecikmelerden etkilenmemek adına Arduino'nun 3. pininde donanımsal kesme (attachInterrupt) kullanmanız tavsiye edilir.
Debounce (Sıçrama) Filtresi: Yaylı mekanizma temas anında milisaniyelik ark/sıçrama (bounce) yapabilir. Yazılım tarafında iki darbe okuması arasına kısa bir bekleme (örneğin 50-100ms) koyarak tek bir tıklamanın birden fazla sayılmasını engelleyebilirsiniz.