Categories: PythonRaspberry Pi

Raspberry Pi Ultrasonik Mesafe Sensörü

Merhaba Arkadaşlar,

Bugün birlikte Raspberry Pi 3 kullanarak ultrasonik sensör yardımıyla mesafe ölçeceğiz. Ultrasonik sensörlerin çalışması hakkında geniş bilgiye buradan ulaşabilirsiniz. Bu işlem için ihtiyaç duyduğumuz malzemeler aşağıdaki gibidir.

  1. Raspberry Pi 3
  2. Breadboard
  3. HC-SR04 Ultrasonik Sensör
  4. 1 adet 1k direnç
  5. 1 adet 2k direnç
  6. 8 adet dişi-erkek jumper kablo

Devremizi aşağıdaki şekilde göründüğü gibi Breadboard üzerinde kuruyoruz.

Şimdide değerleri okuyabilmek için kodumuzu yazıyoruz.

# -*- coding: utf-8 -*-

import RPi.GPIO as GPIO
import time
import datetime

GPIO.setmode(GPIO.BCM)

TRIG=20
ECHO=26

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

GPIO.output(TRIG,False)
time.sleep(2)

while True:
   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)

   print("-------------------------------------------")
   print("Tarih: " + str(datetime.datetime.now()))
   print"Ölçülen Mesafe:",distance," cm"

   time.sleep(15)

GPIO.cleanup()

# -*- coding: utf-8 -*-

 

Kodu çalıştırdığımızda aşağıdaki gibi her 15 saniyede bir mesafeyi ölçüp tarih ile birlikte ekrana yazdığını görüyoruz.

Semih DURAN

View Comments

  • Merhaba.
    Proğram Raspberry pi 4 te çalışırmı. Birde Breadboard olmadan nasıl bağlayabilirim küçük bir terif edebilirmisiniz rica etsem. Teşekkür eder iyi çalışmalar dilerim

  • #include
    #include
    #include

    #define TRIG 22
    #define ECHO 25

    void setup()
    {
    wiringPiSetupGpio();
    pinMode(TRIG, OUTPUT);
    pinMode(ECHO, INPUT);

    //TRIG pin must start LOW
    digitalWrite(TRIG, LOW);
    delay(30);
    }

    int getCM() {
    //Send trig pulse
    digitalWrite(TRIG, HIGH);
    delayMicroseconds(20);
    digitalWrite(TRIG, LOW);

    //Wait for echo start
    while(digitalRead(ECHO) == LOW);

    //Wait for echo end
    long startTime = micros();
    while(digitalRead(ECHO) == HIGH);
    long travelTime = micros() - startTime;

    //Get distance in cm
    int distance = travelTime / 58;

    return distance;
    }

    int main(void) {
    setup();
    printf("Distance: %dcm\n", getCM());
    return 0;
    }
    bu kodlara while döngüsü eklemek istiyorum yardımcı olabilir misin

  • While döngüsünü nereye yazmalıyım?

    #include
    #include
    #include

    #define TRIG 22
    #define ECHO 25

    void setup()
    {
    wiringPiSetupGpio();
    pinMode(TRIG, OUTPUT);
    pinMode(ECHO, INPUT);

    //TRIG pin must start LOW
    digitalWrite(TRIG, LOW);
    delay(30);
    }

    int getCM() {
    //Send trig pulse
    digitalWrite(TRIG, HIGH);
    delayMicroseconds(20);
    digitalWrite(TRIG, LOW);

    //Wait for echo start
    while(digitalRead(ECHO) == LOW);

    //Wait for echo end
    long startTime = micros();
    while(digitalRead(ECHO) == HIGH);
    long travelTime = micros() - startTime;

    //Get distance in cm
    int distance = travelTime / 58;

    return distance;
    }

    int main(void) {
    setup();
    printf("Distance: %dcm\n", getCM());
    return 0;
    }

Recent Posts

Türkiye Bankalar ve Ödeme Kuruluşları BIN Numaraları Listesi – 2025 Güncel

Merhaba Arkadaşlar, Sizinle Türkiye'de faaliyet gösteren bankalar ve ödeme kuruluşlarının kartlarının güncel BIN numaraları listesini…

10 ay ago

Asp.Net Array List Veri Gönderme

Bu yazımda size Asp.Net üzerinden bir api'ye nasıl dizi (Array List) veri gönderebileceğinizden bahsetmek istiyorum.…

5 yıl ago

Postman ile Array List Veri Gönderme

Merhaba Arkadaşlar, Bu yazımda size Postman üzerinden bir diziyi (Array List) nasıl post olarak göndereceğinizden…

5 yıl ago

Google Sheets Komut Dosyası Tetikleyiciler

Merhaba Arkadaşlar, Google Sheet üzerinden hazırladığınız bir uygulamanızı nasıl belirli saatlerde çalışmasını sağlayabileceğinizi paylaşmak istiyorum.…

5 yıl ago

Google Sheets Komut Dosyası Mysql Veritabanından Veri Çekme

Merhaba Arkadaşlar, Google Sheet hepimizin kullandığı bir uygulama. Sizlerle Sheet üzerinden nasıl Mysql veritabanına bağlanıp…

5 yıl ago

İnternet Sayfasına Whatsapp Link Ekleme

Merhaba Arkadaşlar, İnternet sayfalarında aşağıdaki şekilde kolayca Whatsapp mesaj linki ekleyebilirsiniz.

5 yıl ago