HCSR-04 Ultrasonik Mesafe Sensörü İle Mesafeye Göre Led ve Buzzer Çalışması
- 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 ?

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 :

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
}




