DIY ELECTRONICSEN

← Tüm projeler

HC-SR04 Ultrasonik Mesafe Ölçer

Başlangıç20 dk

HC-SR04 ultrasonik sensörle önündeki nesneye olan mesafeyi santimetre cinsinden ölçüp saniyede yaklaşık 10 kez Seri Monitöre yazdıran proje. Sensör gönderdiği ses dalgasının yankısının dönüş süresini ölçer; kod bu süreyi 58’e bölerek santimetreye çevirir. Ek kütüphane gerekmez.

Uygulamada adım adım yap

Gerekli malzemeler

Bağlantı adımları

  1. 1

    Sensöre güç ver

    Sensöre güç ver

    Kırmızı jumper kabloyu Arduino’nun POWER başlığındaki 5V pinine tak. Diğer ucunu HC-SR04’ün Vcc pinine bağla.

  2. 2

    Tetik (Trig) hattını bağla

    Tetik (Trig) hattını bağla

    Yeşil jumper kabloyu Arduino’nun dijital 2 numaralı pinine tak. Diğer ucunu HC-SR04’ün Trig pinine bağla. Arduino bu pinden 10 mikrosaniyelik bir darbe göndererek ölçümü başlatır (HC_TRIG 2).

  3. 3

    Yankı (Echo) hattını bağla

    Yankı (Echo) hattını bağla

    Mavi jumper kabloyu Arduino’nun dijital 3 numaralı pinine tak. Diğer ucunu HC-SR04’ün Echo pinine bağla. Sensör, ses dalgası gidip dönene kadar bu pini HIGH tutar; kod bu süreyi pulseIn ile ölçer (HC_ECHO 3).

  4. 4

    Toprak (GND) bağlantısı

    Toprak (GND) bağlantısı

    Siyah jumper kabloyu Arduino’nun POWER başlığındaki GND pinine tak. Diğer ucunu HC-SR04’ün Gnd pinine bağla. Böylece sensörün dört bağlantısı da tamamlanır.

Arduino kodu

#define HC_TRIG 2   
#define HC_ECHO 3   

unsigned long duration; 
uint16_t distance;    

void setup() {
  Serial.begin(9600);             
  pinMode(HC_TRIG, OUTPUT);        
  pinMode(HC_ECHO, INPUT);         
  digitalWrite(HC_TRIG, LOW);      
}

void loop() {
  digitalWrite(HC_TRIG, LOW);      
  delayMicroseconds(2);            
  digitalWrite(HC_TRIG, HIGH);     
  delayMicroseconds(10);           
  digitalWrite(HC_TRIG, LOW);      

  // Timeout set to 30,000 uS (approx. 5 meters)
  duration = pulseIn(HC_ECHO, HIGH, 30000);   
  
  if (duration == 0) {
    Serial.println("Distance: Out of Range!");
  } else {
    distance = duration / 58;           
    Serial.print("Distance = ");       
    Serial.print(distance);
    Serial.println(" cm");
  }
  
  delay(100);
}

Seri Monitörde göreceğin

SERIAL MONITOR · 9600 BAUD
Distance = 12 cm
Distance = 13 cm

Bir kablo yerinde değilse

SERIAL MONITOR · 9600 BAUD
Distance: Out of Range!

Uygulamada her bağlantıyı tek tek işaretle, envanterindeki parçalarla eşleştir ve kaldığın yerden devam et.

Uygulamada adım adım yap