Macademia'nın robotik ve mühendislik programı · ücretsiz seviye tespiti ve kişisel öğrenme yolu
Sensör

HC-SR04 ultrasonik mesafe sensörü

Ses dalgasının gidiş-dönüş süresini ECHO bacağının HIGH kalma süresi olarak veren mesafe sensörü; tipik aralığı 2-400 cm.

Laboratuvarda dene

Nasıl çalışır?

HC-SR04'ün önünde iki silindir vardır: biri ultrasonik (insan kulağının duyamayacağı, bu sensörde 40 kHz) ses yollar, öbürü yankıyı dinler. Kart TRIG'e 10 µs'lik bir HIGH darbesi verince sensör bir ses demeti yollar ve ECHO bacağını yükseltir. Ses bir nesneye çarpıp dönünce ECHO tekrar LOW olur.

Sensör mesafeyi söylemez, bir süre verir. Süreyi pulseIn(ECHO, HIGH, 30000) ile mikrosaniye olarak ölçersin ve çevirirsin:

mesafe (cm) = süre (µs) × 0,0343 / 2

İkiye bölünür, çünkü süre gidiş ve dönüşü kapsar. Kısa yol: yaklaşık 58 µs = 1 cm.

İleri düzey: Ses hızı sıcaklığa bağlıdır (yaklaşık c = 331,3 + 0,606 × T m/s). Programın 343 m/s varsayması soğukta mesafeyi büyük, sıcakta küçük gösterir; 0 °C ile 40 °C arasında 100 cm'de yaklaşık 7 cm fark oluşur. Sensör koni biçiminde bir alana bakar (veri sayfasında tipik olarak yaklaşık 15°). Eğik, yumuşak ya da çok ince yüzeyler yankıyı zayıflatır ya da yana kaçırır; bu yüzden aykırı değerleri ayıklamak için medyan filtre kullanılır (ders 38).

Laboratuvarda nasıl bağlanır?

NeredenNereye
HC-SR04 VCCUno 5V
HC-SR04 GNDUno GND
HC-SR04 TRIGUno D9
HC-SR04 ECHOUno D10

Özellik panelindeki Mesafe değeri (2-400 cm) sensörün önündeki nesnenin uzaklığıdır ve program çalışırken değiştirilebilir. Bu aralığın dışında laboratuvar yankı üretmez, pulseIn zaman aşımına uğrar ve 0 döndürür. Laboratuvardaki sensör kusursuzdur: Mesafe'ye ne yazarsan onu okur, ses hızı sabittir ve gürültü yoktur. TRIG ve ECHO doğrudan Uno pinlerine bağlanmalıdır.

Sık yapılan hatalar

  • Süreyi ikiye bölmemek. Mesafe iki kat çıkar.
  • TRIG ile ECHO'nun yerini değiştirmek. Hiçbir ölçüm gelmez, hep 0 okunur.
  • pulseIn'e zaman aşımı vermemek. Yankı gelmezse varsayılan 1 saniye boyunca beklenir.
  • 0 dönüşünü 0 cm sanmak. 0, yankı yok demektir.
  • VCC ya da GND'yi bağlamamak. Sensör beslenmez ve tetikleyince cevap vermez.
  • Servo ya da motoru aynı zayıf 5 V hattından beslemek (gerçek devre). Gerilim çökmesi ölçümü bozar; ayrı besleme ve ortak GND kullan.
Esc
  • PanelAna sayfaSayfa
  • ModüllerTüm modüllerSayfa
  • ParçalarParça ansiklopedisiSayfa
  • Mühendislik yoluBüyükler için robotik: 128 parça, 7 seviyeSayfa
  • Robotik dersi (ESOF 323)Üniversite robotik dersi, 14 haftaSayfa
  • TestlerimMini testler ve puanlarSayfa
  • Blok atölyesiSerbest blok programlamaAraç
  • Devre laboratuvarıSanal Arduino ve devreAraç
  • Robot arenasıSanal robot sürüşüAraç
  • OyunlarBloklarla 8 öğretici oyunAraç
  • Mikro Kart atölyesiSanal LED kartı bloklarla programlaAraç
  • Robot atölyesiMikro Kart'ı robota tak, bloklarla görev yapAraç