Menu
CoddyTech

Park Sensörü: Mesafe

Coddy'nin Arduino Journey'sinin Projeler bölümünün bir parçası. Ders 9 / 24.

Arabaların, duvara doğru geri giderken daha hızlı bip sesi çıkaran park sensörleri vardır. Bu proje bir tane oluşturuyor: mesafe sensörü, üç uyarı ışığı, bir zil ve bir ekran; hepsi önceden bağlanmış durumda. İlk adım ölçümdür.

Displays and Sensors'ta olduğu gibi, TRIG pinine gönderilen 10 mikrosaniyelik bir darbe ping gönderir ve pulseIn(echoPin, HIGH), ECHO'nun ne kadar süre HIGH kaldığını mikrosaniye cinsinden döndürür. Sesin bir santimetre gidip geri gelmesi yaklaşık 58 mikrosaniye sürer; bu nedenle cm cinsinden mesafe, bu sürenin 58'e bölünmesiyle bulunur (bu, duration * 0.034 / 2 ile aynıdır). Her şeyi tek bir fonksiyonda tut:

long readDistance() {
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  long duration = pulseIn(echoPin, HIGH);
  return duration / 58;
}

Saniyede yaklaşık on kez ölçüm yap: sensörün pingler arasında kısa bir dinlenmeye ihtiyacı vardır; yoksa önceki pingden gelen gecikmiş bir yankı yeni pingin yankısı sanılabilir.

challenge icon

Görev

Kolay

Sensörde TRIG, 9 numaralı pine ve ECHO, 10 numaralı pine bağlıdır:

  • readDistance() fonksiyonunu yaz: tetikleme darbesi, pulseIn() ve sürenin 58'e bölünmesi
  • loop() içinde, Serial.println() ile mesafeyi her 100 ms'de bir yazdır

Run düğmesine bas, sensördeki mesafeyi sürükle, ardından Check düğmesine bas.

Kendin dene

// Mesafe sensörü
const int trigPin = 9;
const int echoPin = 10;

// Bir ping gönder ve mesafeyi cm cinsinden döndür.
long readDistance() {

}

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

void loop() {
  // mesafeyi yazdır, ardından 100 ms bekle

}
quiz iconKendini test et

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

Projeler bölümündeki tüm dersler

Kendi başına pratik yap: Arduino playground