Merhaba, bugünkü yazımızda Raspberry Pi ile HC-SR04 Ultrasonik Mesafe Sensörü kullanımına göz atacağız. Projemizde sensörden gelen veri ile bir ledi kontrol edeceğiz.

Malzeme Listesi

HC-SR04 Nedir? Nasıl Çalışır?

HC-SR04 ultrasonik mesafe sensörü ismini Sound Navigation and Ranging kelimelerinin kısaltmasından almaktadır. Ultrasonic ses dalgaları yoluyla karşısındaki nesneyle etkileşim kurar.

Sensör 4 tane pine sahiptir.

  • VCC -> güç pini
  • GND -> toprak hattı
  • TRIG -> ses dalgası gönderen kısım
  • ECHO -> yansıyan ses dalgasını alan kısım

TRIG pinine güç verildiğinde sensörden çıkan ultrasonik ses dalgaları sensörün önündeki cisimden yansıyarak geri döner ve dönen dalgalar ECHO pini tarafından sinyal olarak işlenecek merkeze doğru iletilir.

Biz de sesin yayılma hızından ve giden gelen dalga arasındaki zaman farkından yola çıkarak mesafeyi bulabileceğimiz bir formül üreteceğiz. bu formülün detaylarını kodun içerisindeki “distance” fonskiyonunda görebilirsiniz.

Raspberry Pi ile HC-SR04 Kullanımı Projesi Devre Şeması

 

 

Raspberry Pi ile Ultrasonik Mesafe Sensörü Kullanımı Projesi Kodları

import RPi.GPIO as GPIO
import time
#GPIO Mode (BOARD / BCM)
GPIO.setmode(GPIO.BCM) #GPIO mode
#set GPIO Pins
GPIO_TRIGGER = 4
GPIO_ECHO = 17
led=14
#setup GPIO pin (IN / OUT)
GPIO.setup(GPIO_TRIGGER, GPIO.OUT)
GPIO.setup(GPIO_ECHO, GPIO.IN)
GPIO.setup(led, GPIO.OUT)
def distance():
# set Trigger to HIGH
GPIO.output(GPIO_TRIGGER, True)
# set Trigger after 0.01ms to LOW
time.sleep(0.00001)
GPIO.output(GPIO_TRIGGER, False)
StartTime = time.time()
StopTime = time.time()
# save StartTime
while GPIO.input(GPIO_ECHO) == 0:
StartTime = time.time()
# save time of arrival
while GPIO.input(GPIO_ECHO) == 1:
StopTime = time.time()
# time difference between start and arrival
TimeElapsed = StopTime StartTime
# multiply with the sonic speed (34300 cm/s)
# and divide by 2, because there and back
distance = (TimeElapsed * 34300) / 2
return distance
try:
while True:
dist = distance()
print ("Measured Distance = %.1f cm" % dist)
time.sleep(0.5)
if dist<10: #if distance < 10 cm
GPIO.output(led, GPIO.HIGH) #led on
else :
GPIO.output(led, GPIO.LOW) #led off
except KeyboardInterrupt:
print("stopped by user")
view raw ultrasonic.py hosted with ❤ by GitHub

Sonuç

Kodu çalıştırdığınızda sensörün ölçtüğü uzaklık 10 cm‘ den az ise ledin ışık verdiğini, diğer durumlarda ise ledin kapalı olduğunu fark etmelisiniz.

Projemizin sonuna geldik. Bu proje hakkında herhangi bir sorunuz olursa bu gönderiye yorum olarak yazabilir veya mail adresimden bana ulaşabilirsiniz.

İyi çalışmalar dilerim.

🚀Diğer raspberry pi projeleri için linki ziyaret edebilirsiniz.

CEVAP VER

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