You are on page 1of 7

ISPARTA UYGULAMALI BİLİMLER ÜNİVERSİTESİ

ROBOTİK DERSİ LABORATUVAR UYGULAMASI


UYGULAMA 3 ULTRASONİC SENSÖR İLE MESAFE ÖLÇÜMÜ

1.AMAÇ
Bir objenin sensörden uzaklığının anlık olarak ölçülmesi.
2.GİRİŞ

Ultrasonik sensörler, ses dalgaları ile çalışan sensörlerdir. Yüksek frekanslı bir ses dalgası
gönderilerek, karşısına çıkan bir cisimden yansıyıp geri dönmesine kadar olan zaman
hesaplanır. Bu zaman, sesin saniyede kat ettiği mesafe ile (saniyede 343 metre) çarpılarak,
ses dalgasının toplam olarak kat ettiği mesafe bulunur. Bu mesafe değeri ikiye bölünerek de
cismin sensöre olan uzaklığı hesaplanır.
HC-SR04 serisi sensörler 2 cm ile 400 cm mesafe aralığını algılamaktadır. 5V DC voltaj ile
çalışmaktadır. 4 adet pini mevcuttur. VCC (+ 5V), GND, Trig (seslendirme gönderme pini) ve
Echo (dönen ses sinyalini okuma pini).
3.UYGULAMANIN YAPILIŞI
HC-SR04 serisi ultrasonik sensör kullanarak uzak mesafe algılayan örnek bir uygulama
yapalım.
Elemanların bağlantılarını aşağıdaki gibi gerçekleştirelim:

Sensörün Echo pinini Raspberry kartının 24 nolu pinine, Trig ucunu ise 23 nolu pinine
bağlıyoruz. Echo pini ile raspi arasında gerilim bölücü bir devre kuruldu. Bu devre 2 adet
dirençden oluşmaktadır. Uygulamada, Echo sinyali ulaştığında, 5V Vin gerilimini, 3.3. VVout
gerilimine düşürmek amacıyla kullanılmaktadır.
Çıkış gerilimi aşağıdaki gibi formüle edilmektedir.

Bu formülde Vout, Vin ve R1 değerlerini biliyoruz.


Vout = 3.3V Vin = 5V R1= 1K Ohm
Buna göre R2 direnç değerini elde edelim

Sonuçtan görüldüğü gibi R2 direnci yaklaşık 2K Ohm ‘ a karşılık gelmektedir.


Mesafeyi hesaplarken aşağıdaki formülü kullanıyoruz:
Ses Hızı = Mesafe / Zaman Farkı
Ses hızı saniyede 343 metredir. Bunu santimetreye (cm) çevirirsek formülümüz aşağıdaki gibi
olacaktır:
34300 = Mesafe / ( Zaman Farkı / 2)
Zaman farkı, sinyalin hem gidiş hem de dönüş zamanlarını da kapsadığı için gerçek farkı
hesaplamak için zaman farkını ikiye bölüyoruz.
17150 = Mesafe / Zaman Farkı
17150x Zaman Farkı = Mesafe
Sonuç olarak hesaplanan zaman farkını 17150 ile çarparak mesafe değerini elde ediyoruz.

Kullanılacak Malzemeler

 Bread Board
 3 adet Button
 Raspberry Pi
 Jumper kablo(d-e, e-e9
 Hc-SR04
 10K Ohm Direnç

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

TRIG_Pin = 23
ECHO_Pin = 24

GPIO.setup(TRIG_Pin,GPIO.OUT) # 23. Pin çıkış olarak belirlendi


GPIO.setup(ECHO_Pin,GPIO.IN) # 24. Pin giriş olarak belirlendi

while True:

    GPIO.output(TRIG_Pin, False) # Trig pin sıfırlandı.


    print "Hesaplaniyor..."
    time.sleep(2)
“””
Kodumuzda öncelikle 23 nolu pine HIGH verisini göndererek ses sinyalini 0.00001 saniye süre
ile gönderiyoruz. Aynı pine LOW verisini göndererek pini sıfırlıyoruz. Daha sonra 18 nolu
pinden GPIO.input metodu ile dönen ses dalgasının süresini okuyoruz. Sırasıyla dönen
sinyalin LOW (0) ve HIGH (1) olma sürelerini ölçerek ilk_darbe_sinyali ve son_darbe_sinyali
isimli değişkenlere aktarıyoruz.
“””

# Sensörü ölçümden önce HIGH ve LOW sıfırlamak için kullanılıyor


    GPIO.output(TRIG_Pin, True) # HIGH
    time.sleep(0.00001)
    GPIO.output(TRIG_Pin, False) # LOW

    while GPIO.input(ECHO_Pin)==0: # Echo pinine ilk sinyali


# geldiğinde
        ilk_darbe_sinyali = time.time() # sinyalin geldiği zamanı
# ilk darbe sinyali
# değişkenine aktar

    while GPIO.input(ECHO_Pin)==1: # Ses sinyali bir cisme çarpıp geri


# döndüğünde Echo pini 1 olduğunda

        son_darbe_sinyali = time.time() # sinyalin geldiği zamanı


# son darbe sinyali
# değişkenine aktar

    fark = son_darbe_sinyali - ilk_darbe_sinyali # son darbe zamanı ile


# ilk darbe zamanının
# farkını al

    mesafe = fark * 17150 # Ses sinyalinden mesafe hesaplama


# formülü yukarıda anlatılmaktadır.

    mesafe = round(mesafe, 2) # ondalıklı kısmı yuvarlamak için

#kullanılır

    if mesafe > 2 and mesafe < 400: # sensör maksimum 2 cm ile 400 cm

# arasını ölçer
        print "Olculen Mesafe:",mesafe - 0.5,"cm" # hata oranı (tolerans

else:
        print "Olculemedi !!!"

You might also like