
Gerekli malzemeler:
- Arduino UNO yada Arduino Nano
- Mini Breadboard yada Breadboard
- 2 tane HC-SR04 yada JSN-SR04T (su geçirmez versiyon) mesafe sensörleri
- NewPing kütüphanesi (Arduino ya kütüphane ekleme)
- 2 tane Led (siz isterseniz çoğaltabilirsiniz)
- 1 tane Buzzer
Ben bu projeyi JSN-SR04T ler ile yaptım ama HC-SR04 ilede birebir aynı şekilde yapılabilir.
Aşağıdaki kodlama mantığı ile sensörleri çoğaltabilirsiniz.
Sensörleri 30,40,60 ve 100 cm lere göre ayarladım(eğer siz HC-SR04 kullanacaksanız farklı projede yani 30 değilde 5 e kadar düşebilirsiniz). 30cm den aşağı düşünce kırmızı/mavi led sabit yanacak ve devamlı bipleyecek, diğer mesafelerde kırmızı led yanıp sönecek ve aralıklı bipleyecek (mesafeleri istediğiniz gibi değişebilirsiniz). Kodlamaya göre 400cm den sonrasını ölçülmeyecek (Menzil Dışında yazacak).
Kodlamada tavsiyeleriniz olursa yorum olarak yazabilirsiniz.
Devre şeması:

Kullanacağınız kodlar:
#include <NewPing.h>
#define TRIGGER_PIN_2 6
#define ECHO_PIN_2 7
#define TRIGGER_PIN_1 8
#define ECHO_PIN_1 9
#define MAX_DISTANCE 400 //400cm den sonrası ölçülmeyecek
int buzzer=10,led=11,led2=12;
NewPing sonar1(TRIGGER_PIN_1, ECHO_PIN_1, MAX_DISTANCE);
NewPing sonar2(TRIGGER_PIN_2, ECHO_PIN_2, MAX_DISTANCE);
float duration1, distance1;
float duration2, distance2;
int iterations = 5; //Geçersiz okumaları atar ve 5 okumanın ortalamasını alır.
void setup() {
Serial.begin(9600);
pinMode(buzzer,OUTPUT);
pinMode(led,OUTPUT);
pinMode(led2,OUTPUT);
}
void loop() {
duration1 = sonar1.ping_median(iterations);
duration2 = sonar2.ping_median(iterations);
distance1 = (duration1 / 2) * 0.0343;
distance2 = (duration2 / 2) * 0.0343;
Serial.print("Mesafe 1 = ");
if (distance1 >= 400 || distance1 <= 2) {
Serial.println("Menzil Dışında");
}
else {
Serial.print(distance1);
Serial.println(" cm");
}
Serial.print("Mesafe 2 = ");
if (distance2 >= 400 || distance2 <= 2) {
Serial.println("Menzil Dışında");
}
else {
Serial.print(distance2);
Serial.println(" cm");
}
Serial.println(" "); //serial mönitörde 1 satır boşluk için
if(distance1<=30) //30cm altına düşünce devamlı yanıp bipleyecek. sensör 1.
{
digitalWrite(buzzer,HIGH);
digitalWrite(led,HIGH);
digitalWrite(led2,HIGH);
}
else if(distance2<=30) //30cm altına düşünce devamlı yanıp bipleyecek. sensör 2.
{
digitalWrite(buzzer,HIGH);
digitalWrite(led,HIGH);
digitalWrite(led2,HIGH);
}
else if(distance1<=40)
{
digitalWrite(buzzer,HIGH);
digitalWrite(led,HIGH);
delay(40);
digitalWrite(buzzer,LOW);
digitalWrite(led,LOW);
digitalWrite(led2,LOW);
delay(40);
}
else if(distance2<=40)
{
digitalWrite(buzzer,HIGH);
digitalWrite(led,HIGH);
delay(40);
digitalWrite(buzzer,LOW);
digitalWrite(led,LOW);
digitalWrite(led2,LOW);
delay(40);
}
else if(distance1<=60)
{
digitalWrite(buzzer,HIGH);
digitalWrite(led,HIGH);
delay(60);
digitalWrite(buzzer,LOW);
digitalWrite(led,LOW);
digitalWrite(led2,LOW);
delay(60);
}
else if(distance2<=60)
{
digitalWrite(buzzer,HIGH);
digitalWrite(led,HIGH);
delay(60);
digitalWrite(buzzer,LOW);
digitalWrite(led,LOW);
digitalWrite(led2,LOW);
delay(60);
}
else if(distance1<=100)
{
digitalWrite(buzzer,HIGH);
digitalWrite(led,HIGH);
delay(100);
digitalWrite(buzzer,LOW);
digitalWrite(led,LOW);
digitalWrite(led2,LOW);
delay(100);
}
else if(distance2<=100)
{
digitalWrite(buzzer,HIGH);
digitalWrite(led,HIGH);
delay(100);
digitalWrite(buzzer,LOW);
digitalWrite(led,LOW);
digitalWrite(led2,LOW);
delay(100);
}
else if(distance1>=31) //30cm de devamlı yanan ledleri ve buzzeri 30cm den uzaklaşınca susturuyoruz. sensör 1 için.
{
digitalWrite(buzzer,LOW);
digitalWrite(led,LOW);
digitalWrite(led2,LOW);
delay(50);
}
else if(distance2>=31) //30cm de devamlı yanan ledleri ve buzzeri 30cm den uzaklaşınca susturuyoruz. sensör 2 için.
{
digitalWrite(buzzer,LOW);
digitalWrite(led,LOW);
digitalWrite(led2,LOW);
delay(50);
}
}
NewPing kütüphanesini yüklemeden kodları çalıştırmaya kalkarsanız aşağıdaki hatayı alırsınız;
fatal error: NewPing.h: No such file or directory
#include "NewPing.h"
^~~~~~~~~~~~
compilation terminated.
exit status 1
NewPing.h: No such file or directory
This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
Benim yaptığım;


Kaynak: https://dronebotworkshop.com/hc-sr04-ultrasonic-distance-sensor-arduino/
Güzel çalışma vatan
teşekkürler çoğusu tek sensör ile yapmış, farklı şeyler yapmaya çalışanlara yardımı olur inşallah.