top of page

HCSR-04 Ultrasonik Mesafe Sensörü İle Mesafeye Göre Led ve Buzzer Çalışması

  • Yazarın fotoğrafı: Mert KESER
    Mert KESER
  • 1 Oca
  • 2 dakikada okunur

Güncelleme tarihi: 2 Oca

Her yarım saniyede bir mesafe sensöründen gelen mesafe bilgisinin 30 cm'den küçük olma durumunda bağlı olan buzzer ve kırmızı ledimizi aktif eden ve 30 cm'den uzak olma durumunda sadece yeşil ledimizi aktif eden bir çalışma kodu yazacağız. Bu şekilde mesafe sensörlü ve buzzer içeren bir çalışma yapmış olacağız.

Peki mesafe sensörü nasıl çalışır ?




ree

Trig pininden çıkan ultrasonik ses dalgaları mesafe sensörünün önünde yer alan nesneye çarptıktan sonra tekrardan ultrasonik sensörün echo alıcısına gelir. Mesafe sensörü ile trig vericisinden çıkan sesin echo alıcısına gelene kadar arada geçen süreyi formüle ettiğimizde bize mesafe bilgisini vermiş olur.


Çalışmamızın bağlantı şeması şu şekildedir :



ree


Bu durumun kod şeklinde yazımı ve çalışmamızın kodları ise şöyledir :


// Mesafe sensörü için pinler
const int trigPin = 4;  // TRIG pini 4'e bağlı
const int echoPin = 3;  // ECHO pini 3'e bağlı

// LED'ler ve buzzer için pinler
const int redLedPin = 5;   // Kırmızı LED 5'e bağlı
const int greenLedPin = 6; // Yeşil LED 6'ya bağlı
const int buzzerPin = 2;   // Buzzer 2'ye bağlı

void setup() {
  // Pinlerin çıkış olarak ayarlanması
  pinMode(trigPin, OUTPUT);  // TRIG pini çıkış
  pinMode(echoPin, INPUT);   // ECHO pini giriş
  pinMode(redLedPin, OUTPUT);   // Kırmızı LED çıkış
  pinMode(greenLedPin, OUTPUT); // Yeşil LED çıkış
  pinMode(buzzerPin, OUTPUT);   // Buzzer çıkış

  // Seri haberleşmeyi başlat
  Serial.begin(9600);  // Mesafe verisini seri port üzerinden izlemek için
}

void loop() {
  // TRIG pinine kısa bir yüksek sinyal göndererek mesafe ölçümünü başlat
  digitalWrite(trigPin, LOW);  // TRIG pinini düşük yaparak başlatıyoruz
  delayMicroseconds(2);        // 2 mikrosaniye bekle
  digitalWrite(trigPin, HIGH); // TRIG pinini yüksek yap
  delayMicroseconds(10);       // 10 mikrosaniye bekle
  digitalWrite(trigPin, LOW);  // TRIG pinini tekrar düşük yap

  // ECHO pininden gelen yansıma süresini ölç
  long duration = pulseIn(echoPin, HIGH); // ECHO pininden gelen sinyalin süresi

  // Ses hızını kullanarak mesafeyi hesapla (cm cinsinden)
  long distance = duration * 0.0344 / 2; // Sesin havada gidiş dönüş mesafesi

  // Seri portta mesafeyi yazdır
  Serial.print("Mesafe: ");
  Serial.print(distance);
  Serial.println(" cm");

  // 30 cm'den kısa mesafeler için kırmızı LED ve buzzer'ı aç
  if (distance < 30) {
    digitalWrite(redLedPin, HIGH);  // Kırmızı LED'i aç
    digitalWrite(greenLedPin, LOW); // Yeşil LED'i kapat
    digitalWrite(buzzerPin, HIGH);  // Buzzer'ı çalıştır
  }
  // 30 cm'den uzak mesafeler için sadece yeşil LED'i aç
  else {
    digitalWrite(redLedPin, LOW);   // Kırmızı LED'i kapat
    digitalWrite(greenLedPin, HIGH); // Yeşil LED'i aç
    digitalWrite(buzzerPin, LOW);   // Buzzer'ı kapat
  }

  delay(500);  // Bir sonraki ölçüm için 0.5 saniye bekle
}


ree

 
 

©2024 by Mert KESER.

bottom of page