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.
Görev
OrtaTRIG 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);
}
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
1Yedi Segmentli Göstergeler
Yedi Segmentli GöstergeBaytlardaki Rakam DesenleriGöstergede SaymaSıfıra Geri SayımZar Atıcı4Sensörler
Ultrasonik Yankı SüresiYankı Süresinden SantimetreyeTermistör SıcaklığıSantigrattan Fahrenhayt'aIşık Seviyesi ÇubuğuLCD'de MesafeLCD TermometreKendi başına pratik yap: Arduino playground