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.
- Raspberry Pi 3
- Breadboard
- HC-SR04 Ultrasonik Sensör
- 1 adet 1k direnç
- 1 adet 2k direnç
- 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.








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
Merhaba Bunlar C kodları mı?
Merhaba,
Kodlar python kodlarıdır.
#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;
}
buradaki while döngüsünü C# dilinde bir koda yapıştırsak çalışır mı?