Menu
CoddyTech

Ultrasonik Yankı Süresi

Coddy'nin Arduino Journey'sinin Ekranlar ve Sensörler bölümünün bir parçası. Ders 18 / 24.

HC-SR04, yarasalar gibi mesafeyi ölçer: duyamayacağımız kadar yüksek frekansta bir tık sesi gönderir ve yankının dönüş süresini ölçer. Nesne ne kadar uzaktaysa yankının dönmesi o kadar uzun sürer.

İki sinyal pini vardır. TRIG pinine gönderilen kısa bir HIGH darbesi, cihaza tık sesi çıkarmasını söyler. Ardından ECHO HIGH olur ve yankı dönene kadar HIGH kalır; bu nedenle HIGH darbesinin uzunluğu, sesin aldığı süredir.

delayMicroseconds(), saniyenin milyonda biri cinsinden bekler; bu süre, 10 mikrosaniyelik tetikleme darbesi için yeterince kısadır. pulseIn(pin, HIGH), pinin HIGH olmasını bekler ve HIGH kaldığı mikrosaniye sayısını döndürür. Bir saniye içinde darbe gelmezse beklemeyi bırakır ve 0 döndürür.

digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);     // tetikleme darbesi
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);

Yankı 38000 mikrosaniyeye kadar sürebilir; bu, bir int değişkeninin tutabileceğinden fazladır, bu yüzden değeri bir long içinde saklayın.

challenge icon

Görev

Orta

TRIG 9 numaralı pine, ECHO ise 10 numaralı pine bağlıdır. loop() içinde:

  • TRIG üzerinde 10 mikrosaniyelik HIGH darbesi gönderin
  • yankıyı pulseIn(echoPin, HIGH) ile ölçün
  • süreyi Serial.println() ile yazdırın

Run düğmesine basın, nesneyi tahtada yaklaştırıp uzaklaştırın, ardından Check düğmesine basın.

Kendin dene

const int trigPin = 9;
const int echoPin = 10;

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

void loop() {
  // TRIG üzerinden 10 mikrosaniyelik bir darbe gönder
  // pulseIn() ile yankının süresini ölç ve yazdır
  delay(200);
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Ekranlar ve Sensörler bölümündeki tüm dersler

Kendi başına pratik yap: Arduino playground