Ana Sayfa Raspberry Pi Raspberry Pi ile Mesafe Ölçümü

Raspberry Pi ile Mesafe Ölçümü

4 min read
1
0
260

Merhaba Arkadaşlar;

Bu uygulamada HC-SR04 ile mesafe ölçümü yapacağım. Bunun için ilk önce HC-SR04 ü biraz tanıyalım.

4 pinden oluşmaktadır. VCC- GND ve pals pinleri. Trig pini ile pals verip Echo pinini dinleriz ve gelen sinyalin uzunluğuna göre bize sonuncu bildirir.

Şekilde görüldüğü gibi 10uS lik pals den sonra 8 defa 40 khz de ölçüm alarak bize Echo pininden çıkış vermektedir.

Raspberry Pi bağlantısı için ben Trig ->GPIO  0 ve Echo için GPIO 1 nolu gpio pinlerine bağladım. Pinleri hatırlamak gerekirse aşağıdaki resmi inceleyebilirsiniz. Vcc -> 5V  ve GND yide bağladıktan sonra programa geçebiliriz.

Netbeans ile yeni proje açıp Pi mizi seçelim. (Netbans kurulumu ve proje oluşturmak için önceki yazılarıma bakabilirsiniz.) İlk olarak pinleri giriş çıkış ayarladıktan sonra Trig pinine gerekli pals verilir.

        digitalWrite(TRIG, HIGH);
        delayMicroseconds(20);
        digitalWrite(TRIG, LOW);
daha sonra echo pini palsi bağşatıncaya kadar bekleriz
        while(digitalRead(ECHO) == LOW);
Pals başlayınca sistem timer  daki değer başka bir değişkene yedeklenir.
        long startTime = micros();
ve Pals 0 oluncaya kadar beklenir.
        while(digitalRead(ECHO) == HIGH);
Echo 0 olduktan sonra sistem timer daki değerden yedeklediğimiz çıkartılır.
        long travelTime = micros() - startTime;
Sonuç Elde edilir.
        int distance = travelTime / 58;
Programın tam halini aşağıda veriyorum.

 

#include <stdio.h>
#include <stdlib.h>
#include <wiringPi.h>

#define TRIG 13
#define ECHO 12
void setup()
{
   wiringPiSetup();
   pinMode(TRIG, OUTPUT);
   pinMode(ECHO, INPUT);

   //TRIG pini başlangıç için low
   digitalWrite(TRIG, LOW);
   delay(30);
}

int getCM()

{
   //trig pals gönder
   digitalWrite(TRIG, HIGH);
   delayMicroseconds(20);
   digitalWrite(TRIG, LOW);

   //echo başlangıcına kadar bekle
   while(digitalRead(ECHO) == LOW);

   //echo bitene kadar bekle
   long startTime = micros(); 
   while(digitalRead(ECHO) == HIGH);
   long travelTime = micros() – startTime;

   //mesafeyi olc
   int distance = travelTime / 58;

   return distance;
}
int main(int argc, char** argv)
{
   setup();
   printf(“Uzunluk: %dcm\r\n”, getCM());
   return (EXIT_SUCCESS);
}

 

Netbeans üzerinden programımızı çalıştırırsak sonuncu görmüş olacağız.

 

Bir sonraki uygulamada görüşmek üzere…

Buna Benzer Yazılar Göster !
Daha Fazlasını Yükle - Umut Kazanç
Daha Fazla Göster -  Raspberry Pi

1 Yorum

  1. […] 6 gün önce Raspberry Pi ile Mesafe Ölçümü […]

    Reply

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Bak Bakalım ?

Raspberry Pi ile ADC ve DAC Uygulaması

Merhaba Arkadaşlar, Bu yazımda sizlere Raspberry Pi ile ADC ölçümünden bahsedeceğim. Bildi…