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ı?