Arduino

HC-SR04 Ultrasonik Sensör ile Mesafe Ölçümü

Aykut AKMAN 7 ay önce Yorumlar (0) 5 Dakika Okuma
HC-SR04 Ultrasonik Sensör ile Mesafe Ölçümü
E-Posta : 1.5k 0

Bu projede HC-SR04 ultrasonik sensör kullanarak bir nesnenin mesafesini ölçüp seri monitörde görüntüleyeceğiz. Ultrasonik sensör, ses dalgalarını kullanarak uzaklık ölçümü yapar. Bu proje, robotik uygulamalar ve otomasyon sistemlerinde sıkça kullanılmaktadır.

Proje İçin Gerekli Malzemeler

  • 1 x Arduino Uno (veya benzeri bir Arduino kartı)
  • 1 x HC-SR04 Ultrasonik Mesafe Sensörü
  • Jumper Kablolar
  • USB Kablo (Arduino'yu bilgisayara bağlamak için)

Ultrasonik Sensör Çalışma Prensibi

HC-SR04 ultrasonik sensör, Trigger pini üzerinden ses dalgası yayar ve ses dalgasının geri dönme süresini Echo pini ile ölçer. Ölçülen süre kullanılarak uzaklık hesaplanır.

  • Ses Hızı: 343 m/s (yaklaşık 0.034 cm/mikrosaniye)
  • Mesafe Formülü: Mesafe=(SesHızı*ÖlçülenSüre)/2

Devre Bağlantısı

ultrasonik-mesafe-sensörü-örnek-bağlantı-seması

HC-SR04 Pin Bağlantıları

  • VCC: 5V (Arduino 5V pinine)
  • GND: GND (Arduino GND pinine)
  • TRIG: Arduino 9. pini
  • ECHO: Arduino 10. pini

Arduino Kodları

const int trigPin = 9;  // TRIG pini
const int echoPin = 10; // ECHO pini

long sure;        // Ses dalgasının geri dönüş süresi
float mesafe;     // Hesaplanan mesafe

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  Serial.begin(9600); // Seri iletişim başlat
}

void loop() {
  // Trigger pinine 10 mikrosaniye sinyal gönder
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  // Echo pininden veri al ve süreyi ölç
  sure = pulseIn(echoPin, HIGH);

  // Mesafeyi hesapla (cm cinsinden)
  mesafe = sure * 0.034 / 2;

  // Mesafeyi seri monitörde göster
  Serial.print("Olculen Mesafe: ");
  Serial.print(mesafe);
  Serial.println(" cm");

  delay(500); // Yarım saniye bekle
}

Kod Açıklamaları

  1. trigPin ve echoPin Tanımları: Sensörün tetikleme ve geri dönüş pinleri.
  2. pulseIn Fonksiyonu: Ses dalgasının gidiş-dönüş süresini mikrosaniye cinsinden ölçer.
  3. Mesafe Hesabı: Ölçülen süreyi ses hızına göre işleyerek mesafeyi hesaplar.
  4. Serial.print: Ölçülen mesafeyi Arduino IDE’nin seri monitöründe gösterir.

Çalışan kodu incelemek için tıklayınız.

Çalışma Prensibi

  1. Trigger pini, kısa bir sinyal gönderir.
  2. Echo pini, ses dalgasının geri dönüş süresini ölçer.
  3. Arduino, bu süreyi kullanarak mesafeyi hesaplar.
  4. Hesaplanan mesafe, seri monitörde gösterilir.

Örnek Proje: Mesafeye Göre LED Kontrolü

Bu projede, ölçülen mesafe belirli bir değerin altına düştüğünde bir LED yakacağız.

Proje İçin Gerekli Malzemeler

  • 1 x Arduino Uno (veya benzeri bir Arduino kartı)
  • 1 x HC-SR04 Ultrasonik Mesafe Sensörü
  • 1 x Breadboard
  • Jumper Kablolar
  • USB Kablo (Arduino'yu bilgisayara bağlamak için)
  • 1 x LED
  • 1 x 220 Ohm direnç

Devre Bağlantısı

ultrasonik-mesafe-sensörü-ile-led-kontrol-devre-şeması

  • LED'in Uzun Bacağı: Arduino'nun 8. pinine
  • LED'in Kısa Bacağı: 220 Ohm direnç üzerinden GND'ye

Arduino Kodu


const int trigPin = 9;  // TRIG pini
const int echoPin = 10; // ECHO pini
const int ledPin = 8;   // LED pin

long sure;
float mesafe;

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);

  sure = pulseIn(echoPin, HIGH);
  mesafe = sure * 0.034 / 2;

  Serial.print("Mesafe: ");
  Serial.print(mesafe);
  Serial.println(" cm");

  // Mesafe 10 cm'den az ise LED'i yak
  if (mesafe < 10) {
    digitalWrite(ledPin, HIGH);
  } else {
    digitalWrite(ledPin, LOW);
  }

  delay(500);
}

Proje Akışı

  1. Mesafe ölçülür.
  2. Eğer mesafe 10 cm'den küçük ise LED yanar.
  3. Mesafe bu değerin üzerine çıktığında LED söner.

Çalışan örneği görmek için tıklayınız.

Bu projede ultrasonik sensör kullanarak mesafeyi ölçtük ve bu veriyi kullanarak bir LED kontrol ettik. Bu örnek, sensörlerin otomasyon ve robotik projelerinde nasıl kullanıldığını anlamak için harika bir temel oluşturur.

Sıkça Sorulan Sorular

Arduino'da ultrasonik sensör (HC-SR04), ses dalgalarını kullanarak mesafe ölçer. "Trigger" pini ses dalgası gönderir ve "Echo" pini, dalganın geri dönüş süresini ölçer. Arduino, bu süreyi kullanarak mesafeyi hesaplar.

Aşağıdaki kod ultrasonik sensörle mesafe ölçümünü sağlar:

const int trigPin = 9;  
const int echoPin = 10;  
long duration;  
int distance;  

void setup() {  
  pinMode(trigPin, OUTPUT);  
  pinMode(echoPin, INPUT);  
  Serial.begin(9600);  
}

void loop() {  
  digitalWrite(trigPin, LOW);  
  delayMicroseconds(2);  
  digitalWrite(trigPin, HIGH);  
  delayMicroseconds(10);  
  digitalWrite(trigPin, LOW);  

  duration = pulseIn(echoPin, HIGH);  
  distance = duration * 0.034 / 2;  

  Serial.print("Mesafe: ");  
  Serial.print(distance);  
  Serial.println(" cm");  
  delay(500);  
}

HC-SR04 ultrasonik sensör, 2 cm ile 400 cm arasındaki mesafeleri ölçebilir. Ancak ölçümlerde en doğru sonuç, 4 cm - 300 cm aralığında alınır.

Mesafe belirli bir değerin altına düştüğünde LED'i yakmak için şu kod kullanılır:

const int trigPin = 9, echoPin = 10, ledPin = 13;  
long duration;  
int distance;  

void setup() {  
  pinMode(trigPin, OUTPUT);  
  pinMode(echoPin, INPUT);  
  pinMode(ledPin, OUTPUT);  
  Serial.begin(9600);  
}

void loop() {  
  digitalWrite(trigPin, LOW);  
  delayMicroseconds(2);  
  digitalWrite(trigPin, HIGH);  
  delayMicroseconds(10);  
  digitalWrite(trigPin, LOW);  

  duration = pulseIn(echoPin, HIGH);  
  distance = duration * 0.034 / 2;  

  if (distance < 20) {  
    digitalWrite(ledPin, HIGH); // LED yanar  
  } else {  
    digitalWrite(ledPin, LOW);  // LED söner  
  }

  Serial.print("Mesafe: ");  
  Serial.println(distance);  
  delay(500);  
}

  • Sensörün açı pozisyonu yanlış olabilir.
  • Ölçülen yüzey düzgün ve düz değilse ses dalgaları geri yansımaz.
  • Sensöre çok yakın (<2 cm) veya çok uzak (>400 cm) nesneler ölçüm hatasına neden olabilir.
  • Elektronik bağlantılar gevşek veya kablolar hatalı olabilir.
  • Evet, HC-SR04 sensörü Tinkercad üzerinde simüle edilebilir. Tinkercad'de sensörü yerleştirip "Trigger" ve "Echo" pinlerini Arduino'ya bağladıktan sonra uygun kod ile mesafe ölçüm simülasyonu yapılabilir.

    • Robotik projeler: Engel algılama
    • Güvenlik sistemleri: Mesafe bazlı alarm sistemi
    • Akıllı park sistemi: Park sensörü
    • Mesafe ölçüm cihazları: Yükseklik veya genişlik ölçümleri
    • Su seviyesini ölçme projeleri: Tanklardaki sıvı seviyesini tespit etme

    HC-SR04 ultrasonik sensör 4 pine sahiptir:

    1. VCC: 5V güç girişi
    2. GND: Toprak bağlantısı
    3. Trigger: Ses dalgası başlatma pini
    4. Echo: Ses dalgası dönüş pini
    Aykut AKMAN

    Aykut AKMAN

    Bilişim Öğretmeni

    Bu Gönderiye Yorum Yapılmamış

    Yorum Yap

    E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlendi.

    Diğer Yazılar

    PHP Temel Bilgileri ve Sözdizimi Php

    PHP Temel Bilgileri ve Sözdizimi

    Aykut AKMAN 11 ay önce