back to top

Raspberry Pi 3 İle Uzaklık Ölçümü – HC-SR04 Ultrasonik Mesafe Sensörü #10

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) dersimize kadar olan malzemeler için Kombo Kit, Raspberry Pi 3 Röle Kartı İle Alarm Devresi Yapımı 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"

Raspberry Pi Hakkında Daha Fazlasını Öğrenmeye Devam Et

Raspberry Pi pek çok yönüyle avantaj sahibi ve geliştiriciler tarafından çok sevilen bir platform. Elektronik projelerinde, bilgisayar bilimlerinde ve robotik çalışmalarında sağladığı destek ve rahatlık ile öğrenmeyi sevdiren Raspberry Pi hergün daha da çok gelişiyor. 

Peki siz de daha fazla gelişmek istemez misiniz? Linux bilginizi geliştirmek, elektronik dünyasına atılmak ve eğlenceli projelere imza atmak için sizi Raspberry Pi ile yolculuğa çıkarıyoruz! Sizler için hazırladığımız Raspberry Pi eğitim serisine devam edin :

Raspberry ve PIR ile Hareket Algılama

PIR sensör, hareket algılamada oldukça sık kullanılan pratik bir sensördür. Reed rölenin ise iki ucu normal durumda açık devredir. Eğer reed röleye manyetik bir cisim yaklaştırılırsa, bu etki sayesinde reed rölenin cam tüp içerisindeki kontakları birbirine temas ederek iki ucunu kısa devre yapar.

Raspberry Dersleri serimizin 9. Dersinde Raspberry ve PIR ile Hareket Algılama yapacağız ve bir örnek proje gerçekleştireceğiz.

Röle Kartı İle Alarm Devresi

Bu dersimizde Raspberry Pi’mizle hareket algılama uygulaması yapmıştık. Şimdi ise aynı hareket sensörünü ve bir röle kartı kullanarak Raspberry Pi’mizle hareket tetiklemeli alarm devresi yapacağız.

Raspberry 11. Dersimizde Röle Kartı İle Alarm Devresini nasıl kuracağınızı adım adım sizler için anlattık.

Son Çıkan Yazılar

13 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.

  4. Merhabalar bu devreyi yaptim çalıştı cok tesekkur ederim lakin buzzer eklemem gerekiyor belli bir metraja yaklaştığında artarak ses vermeye baslamasi lazim bunu nasil yapabilirim yardimci olursanız sevinirim kodu ile birlikte :))

  5. Merhaba.Ben mesafe verilerini bilgisayara değil de LCD’ye yazdırmak istiyorum bunun için kodlarda nasıl bi değişiklik yapabilirim.Elinizde kodlar var mı.Yardımcı olursanız sevinirim.Teşekkür ederim.İyi günler

  6. merhaba
    İlk defa raspberry pi kullanıyorum. Kodları nereye yükleyeceğimi bilmiyorum. arduino uno daki gibi bir program yok anladığım kadarıyla.Yardımcı olursanız sevinirim.

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz