Ultrasonik Mesafe Sensörü Kullanımı
HC-SR04 ultrasonik mesafe sensörü ile mesafe ölçüp sonucu Seri Port Ekranı’na santimetre olarak yazdıracağız.
Bu derste ultrasonik mesafe sensörünün kullanımı anlatılmıştır. Seri port ekranına cm olarak yazdırılmıştır.
- Arduino Uno
- HC-SR04 Ultrasonik Mesafe Sensörü
HC-SR04 sensöründe genellikle VCC, Trig, Echo ve GND pinleri bulunur. VCC 5V’a, GND GND hattına, Trig dijital çıkış pinine, Echo ise dijital giriş pinine bağlanır.
Ultrasonik mesafe sensörü, Trigger pininden kısa bir tetikleme sinyali aldıktan sonra ses dalgası gönderir. Ses dalgası bir cisme çarpıp geri döndüğünde Echo pininden bir süre değeri okunur.
Okunan süre değeri kullanılarak mesafe santimetre cinsinden hesaplanır ve Seri Port Ekranı’na yazdırılır.
HC-SR04 için Trigger sinyalinin 10 mikro saniye HIGH yapılması yaygın kullanımdır. Mesafe hesabında (sure / 2) / 29.1 veya pratik olarak sure / 58 kullanılabilir.
Aşağıdaki kod, verdiğin orijinal kod yapısını korur. Trigger pininden sinyal gönderilir, Echo pininden süre okunur ve mesafe Seri Port Ekranı’na yazdırılır.
int sure ;
int mesafe ;
int trigger = 13;
int echo = 12;
void setup() {
Serial.begin(9600);
pinMode(trigger , OUTPUT);
pinMode(echo , INPUT);
}
void loop() {
digitalWrite(trigger , HIGH);
delayMicroseconds(10);
digitalWrite(trigger , LOW);
sure = pulseIn(echo , HIGH);
mesafe = (sure / 2) / 29.1;
Serial.print(mesafe);
Serial.println(" cm");
delay(500);
}
Bu sürümde ölçümden önce Trigger pini kısa süre LOW yapılır, pulseIn() için zaman aşımı eklenir ve ölçüm alınamazsa Seri Port Ekranı’na bilgi yazdırılır.
const int trigger = 13;
const int echo = 12;
long sure;
int mesafe;
void setup() {
Serial.begin(9600);
pinMode(trigger, OUTPUT);
pinMode(echo, INPUT);
digitalWrite(trigger, LOW);
}
void loop() {
digitalWrite(trigger, LOW);
delayMicroseconds(2);
digitalWrite(trigger, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);
sure = pulseIn(echo, HIGH, 30000);
if (sure == 0) {
Serial.println("Olcum alinamadi");
} else {
mesafe = sure / 58;
Serial.print(mesafe);
Serial.println(" cm");
}
delay(500);
}
Düzenlenmiş kod, aynı uygulama mantığını korur; sadece ölçümün daha kararlı ve okunabilir olmasını sağlar.