Arduino ile HB100 Doppler Radar Hız/Hareket Sensörü Kullanımı

👤 Yazar: ozcan 📅 Tarih: 20.07.2026 17:07 👁️ Görüntüleme: 32

HB100 Doppler Radar Hız/Hareket Sensörü ve Sinyal İşleme Altyapısı

Projelerimizde şimdiye kadar kullandığımız ultrasonik mesafe sensörleri veya piezo darbe dedektörleri yüzey ve akustik dalgaları temel alırken, HB100 Doppler Radar Modülü mikrodalga (10.525 GHz) elektromanyetik dalgalar kullanarak çalışır. Hareket eden bir nesneden yansıyan dalgaların frekans kaymasını (Doppler Etkisi) ölçerek çalışan bu sensör; duvar arkasından algılama yapabilmesi, hava şartlarından etkilenmemesi ve doğrudan hız tespiti yapabilmesiyle öne çıkar. yenidir.com portalınızın modüler yapısını koruyarak, bu ileri seviye sensörü sistemimize entegre ediyoruz.

HB100 Doppler Radar Hız/Hareket Sensörü bacak bağlantıları

Kritik Donanım ve Sinyal Kuvvetlendirme Uyarısı: HB100 modülünün IF (Intermediate Frequency) çıkışından ürettiği voltaj sinyali mikrovolt-milivolt (µV-mV) seviyesindedir ve frekansı çok düşüktür. Bu sinyali doğrudan Arduino'nun analog veya dijital pinlerine bağlayarak okuyamazsınız. Araya mutlaka LM358 gibi bir op-amp (operasyonel yükselteç) entegresi içeren pre-amplifier (ön yükseltici) devresi kurulmalıdır. Piyasada satılan hazır "HB100 Amplifikatör Modülleri" bu yükseltme işlemini yaparak sinyali Arduino'nun okuyabileceği 0-5V kare dalgaya dönüştürür.
Arduino ile HB100 Doppler Radar Hız/Hareket Sensörü bağlantı şeması



A0-A1-A2 Sıralı Mimari ve Kesme (Interrupt) Tabanlı Hız Ölçüm Kod Bloğu

HB100 amplifikatör kartından çıkan kare dalga sinyalinin frekansı, nesnenin hızıyla doğrudan orantılıdır Fd = 2v · f0 c . Bu frekansı milisaniye kaçırmadan en hassas şekilde ölçmek için Arduino'nun donanımsal kesme (External Interrupt) pini olan Dijital 2 (veya 3) pinini frekans okuyucu olarak kullanıyoruz. A0, A1 ve A2 analog blok mimarimizi ise sistemin diğer indikatör ve kalibrasyon adımları için ayırıyoruz:

#include <Arduino.h>

/**
 * @file HB100_Radar_Hiz_Olcumu.ino
 * @brief HB100 Doppler Radar ile Donanımsal Kesme Tabanlı Hız Analiz Algoritması
 * 
 * Pin Eşleşmeleri:
 * - Arduino D2  -> HB100 Amplifikatör Çıkışı (OUT / TTL Kare Dalga) [Kesme Pini]
 * - Arduino A0  -> Boşta / Dinamik Hassasiyet Potansiyometresi Girişi İçin Ayrıldı
 * - Arduino A1  -> Boşta / Gelecek Harici Tetik Girişleri İçin Ayrıldı
 * - Arduino A2  -> Boşta / Ham Analog Sinyal Takip Hattı İçin Ayrıldı
 * - Arduino D9  -> Kırmızı LED (Hız Eşiği Aşıldı / Alarm Durumu)
 * - Arduino D8  -> Yeşil LED (Sistem Aktif / Güvenli Mod)
 * - Arduino D7  -> Buzzer (Anlık Doppler Sesi / Sesli Uyarı)
 */

// Donanımsal Pin Tanımlamaları
const int RADAR_INTERRUPT_PIN = 2; // Kesme (Interrupt 0) pini

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

// Frekans ve Hız Hesaplama Değişkenleri
volatile unsigned long sinyalDarbeSayisi = 0;
unsigned long eskiZaman = 0;
double frekans = 0;
double hesaplananHiz = 0;

// Alarm Eşik Değerleri (Örnek: 10 km/s üzerindeki hareketler)
const double HIZ_ESIGI_KMS = 10.0; 

// Donanımsal Kesme Fonksiyonu (Sinyal her yükseldiğinde tetiklenir)
void radarDarbeSayaci() {
  sinyalDarbeSayisi++;
}

void setup() {
  // Yüksek hızlı veri lojistiği için seri port başlatılıyor
  Serial.begin(115200);
  
  // İndikatör pin yönelimleri
  pinMode(kirmiziLed, OUTPUT);
  pinMode(yesilLed, OUTPUT);
  pinMode(buzzer, OUTPUT);
  
  // Radar sinyal giriş pini dahili pull-up ile kararlı hale getirilir
  pinMode(RADAR_INTERRUPT_PIN, INPUT_PULLUP);
  
  // D2 pinine sinyal yükselirken (RISING) çalışacak harici kesme bağlanıyor
  attachInterrupt(digitalPinToInterrupt(RADAR_INTERRUPT_PIN), radarDarbeSayaci, RISING);
  
  // İlk durum ayarlamaları
  digitalWrite(yesilLed, HIGH);
  digitalWrite(kirmiziLed, LOW);
  digitalWrite(buzzer, LOW);
  
  eskiZaman = millis();
  Serial.println(F("[SISTEM] HB100 Doppler Radar Modulu Aktif. Dinleniyor..."));
}

void loop() {
  // 1. AŞAMA: 1 SANİYELİK ZAMAN PENCERESİNDE FREKANS HESAPLAMA
  unsigned long simdikiZaman = millis();
  
  if (simdikiZaman - eskiZaman >= 1000) { // Her 1 saniyede bir hesaplama yap
    
    // Hesaplama esnasında kesme verisinin bozulmaması için kesmeleri geçici olarak durdur
    noInterrupts();
    unsigned long anlikDarbe = sinyalDarbeSayisi;
    sinyalDarbeSayisi = 0; // Bir sonraki saniye için sayacı sıfırla
    interrupts(); // Kesmeleri tekrar aç
    
    // 1 saniyedeki darbe sayısı doğrudan frekansı (Hz) verir
    frekans = anlikDarbe; 
    
    // 2. AŞAMA: FREKANSTAN HIZA DÖNÜŞÜM (DOPPLER MATEMATİĞİ)
    if (frekans > 5) { // Düşük parazit gürültülerini filtrelemek için
      hesaplananHiz = frekans / 19.49;
      
      Serial.print(F("Dopler Frekansi: "));
      Serial.print(frekans);
      Serial.print(F(" Hz | Hesaplanan Hiz: "));
      Serial.print(hesaplananHiz);
      Serial.println(F(" km/s"));
      
      // 3. AŞAMA: HIZ SINIRI VE ALARM TETİKLEME LOGİĞİ
      if (hesaplananHiz > HIZ_ESIGI_KMS) {
        Serial.println(F("[ALARM] HIZ SINIRI ASILDI!"));
        
        digitalWrite(yesilLed, LOW);
        digitalWrite(kirmiziLed, HIGH);
        
        // Hızla orantılı ton üreten buzzer tetiklemesi
        tone(buzzer, 880, 200); 
        
        delay(200);
        digitalWrite(kirmiziLed, LOW);
      } else {
        digitalWrite(yesilLed, HIGH);
        digitalWrite(kirmiziLed, LOW);
        noTone(buzzer);
      }
    } else {
      // Hareket yoksa veya frekans çok düşükse değerleri sıfırla
      hesaplananHiz = 0;
      digitalWrite(yesilLed, HIGH);
      digitalWrite(kirmiziLed, LOW);
      noTone(buzzer);
    }
    
    eskiZaman = simdikiZaman;
  }
}

Frekans Hesaplama Formülü ve Çalışma Prensibi

HB100 modülünün ürettiği sinyali anlamlandırmak için kullanılan matematiksel arka plan şu şekildedir:

1. Doppler Kayma Prensibi: Modül sürekli olarak 10.525 GHz frekansında mikrodalga yayar. Karşıdan yaklaşan veya uzaklaşan bir nesne olduğunda, yansıyan dalganın frekansı değişir. Modülün üzerindeki mikser (karıştırıcı) devresi, yayılan frekans ile yansıyan frekans arasındaki farkı alarak IF çıkışından bir fark frekansı (Fd) üretir.

2. Hız Dönüşüm Katsayıları: Tasarımlarınızda kullanabileceğiniz standart HB100 dönüşüm formülleri şunlardır:

  • km/s (Kilometre/Saat) Hesaplama: V = Fd 19.49 (Frekans değerini 19.49'a böldüğünüzde doğrudan saatteki hız kilometresini alırsınız).
  • mph (Mil/Saat) Hesaplama: V = Fd 31.36

3. Gürültü Filtreleme (Deadband): Mikrodalga sensörler ortamdaki floresan lambaların kırpışmalarından, rüzgarın salladığı perdelerden veya şebeke gürültülerinden (50Hz/60Hz) etkilenebilir. Kodda yer alan if (frekans > 5) kontrolü, bu tarz küçük ortam salınımlarının ve statik gürültülerin sistemi yanlışlıkla tetiklemesini önleyen bir yazılımsal filtre görevi görür.

💬 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