Raspberry Pi Dersleri serimizde kullanacağımız malzemelerin tamamına sizler için hazırladığımız setler ile kolayca sahip olabilirsiniz. Raspberry Pi’ye Uzaktan Bağlantı Yöntemleri (VNC,SSH,TTL) #4 dersimize kadar olan malzemeler için Kombo Kit, Raspberry Pi 3 Röle Kartı İle Alarm Devresi Yapımı #11 dersimize kadar olan malzemeler için Süper Başlangıç Seti, tüm derslerdeki malzemeler için Proje Seti tercih edebilirsiniz.

Merhabalar. Bu dersimizde sizlerle Raspberry Pi’mize HC-SR04 ultrasonik mesafe sensörü bağlayarak uzaklık ölçümü yapacağız.

Gerekli malzemelerimiz:

HC-SR04 ultrasonik mesafe sensörü nedir?

HC-SR04 ultrasonik mesafe sensörü, neredeyse tüm robotik projelerde yer alan çok popüler bir sensördür. Kullanım kolaylığı ve ucuzluğu sebebiyle sıkça tercih edilir.

Ultrasonik sensörlerin çalışma prensibi:

Sensörün çalışma prensibi basittir: TRIG pininden sinyal verildiğinde 40kHz frekansında bir ses dalgası sensör tarafından üretilir ve bu ses dalgası bir cisme çarpıp geri döndüğünde ECHO pini aktif hale gelir. Sesin havada yayılma hızını bildiğimiz için (deniz seviyesinde ve 21 °C sıcaklıkta 343.2 m/s), TRIG pinine verilen sinyalden sonra ECHO pininin aktif olduğu zamana kadarki süreyi ölçerek aradaki mesafeyi kolayca hesaplayabiliriz.

Raspberry Pi – HC-SR04 ultrasonik mesafe sensörü devresi:

Raspberry Pi ultrasonik mesafe ölçüm Python kodu:

Kodu kopyaladığınızda sorun yaşıyorsanız buradan deneyebilirsiniz.

import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)

TRIG = 23
ECHO = 24

print "HC-SR04 mesafe sensoru"

GPIO.setup(TRIG,GPIO.OUT)
GPIO.setup(ECHO,GPIO.IN)

while True:

 GPIO.output(TRIG, False)
 print "Olculuyor..."
 time.sleep(2)

 GPIO.output(TRIG, True)
 time.sleep(0.00001)
 GPIO.output(TRIG, False)

 while GPIO.input(ECHO)==0:
 pulse_start = time.time()

 while GPIO.input(ECHO)==1:
 pulse_end = time.time()

 pulse_duration = pulse_end - pulse_start

 distance = pulse_duration * 17150
 distance = round(distance, 2)

 if distance > 2 and distance < 400:
 print "Mesafe:",distance - 0.5,"cm"
 else:
 print "Menzil asildi"

8 Yorumlar

  1. pi@abdurrahman-pi:~ $ sudo python hh.py
    File “hh.py”, line 25
    pulse_start = time.time()
    ^
    IndentationError: expected an indented block
    bu hatayı alıyorum yardımcı olabilirmisiniz

  2. Merhaba, GND pinine neden iki kablo bağlamış oluyoruz rasperry pi3 ten, Birini 2.5 w a düşürüyoruz diğerini direk bağlıyoruz sebebi nedir?

    • Merhaba. Yazıda da anlattığım üzere sensörün çalışması için TRIG pinine sinyal yollanması gereklidir. Raspberry Pi’nin GPIO pinleri 3.3V çıkış verir, bu da TRIG pini için yeterli gelmektedir. Ses dalgası cisme çarpıp geri döndüğünde ise ECHO pini aktif olacaktır. Bu pinin gerilimi 5V olduğundan, Raspberry Pi’ye zarar vermemesi için bir gerilim bölücü ile 2.5V’a düşürüyoruz. Umarım açıklayıcı olmuştur.

  3. GPIO.output(TRIG, False)
    print “olculuyor”
    time.sleep(2)

    Bu koddan sonra beklemesek ölçüm yapmaz mı? anlık olarak mesafeyi kontrol ettirip motoru durdurmak istiyorum.

CEVAP VER

Please enter your comment!
Please enter your name here