Arduino – Ultrasonik Sensör ile Mesafe Ölçümü

Hcsr04_led_buzzer_bb

Arduino – Ultrasonik Sensör ile Mesafe Ölçümü

Sesle engel tanıma veya uzaklık ölçümü ultrasonik (ses ötesi) ses dalgaları ile yapılabilir. Ultrasonik sensör çevresine ses dalgaları yayıp , engele çarpıp geri gelen yankı dalgalardan menzil ölçümü yapan bir algılayıcı türüdür. Menzilleri diğer sensörlere göre çok daha fazladır. Bu uygulamada ultrasonik sensöründen gelen mesafe 0-20 cm arasında ise buzzer ötüp kapanacak ve led yanıp sönecek. Bunu 200 milisaniyede bir tekrar edecek. Mesafe 20-40 arasında ise led yanacak. Eğer mesafe 40 cm den büyük ise led yanmayacak ve buzzer kapalı duracak.

Hcsr04_led_buzzer_bb

Program Kodları

#define Led 13 // Led 13 numaralı pine tanımlandı.
#define Buzzer 12 // Buzzer 12 numaralı pine tanımlandı.
#define Trig 10 // Ultrasonik Sensörün Trig pini 10 numaralı pine tanımlandı.
#define Echo 11 // Ultrasonik Sensörün Echo pini 11 numaralı pine tanımlandı.

void setup() {
pinMode(Led,OUTPUT); //Ledin bulunduğu pin çıkış olarak tanımlandı.
pinMode(Buzzer,OUTPUT); //Buzzer ın bulunduğu pin çıkış olarak tanımlandı.
pinMode(Trig,OUTPUT); //Trig pini çıkış oarak tanımlandı.
pinMode(Echo,INPUT); //Echo pini giriş olarak tanımlandı.
Serial.begin(9600); //Haberleşme hızı ayarlandı.
}

void loop() {
long sure, mesafe; //sure ve mesafe adında değişken tanımladık.
digitalWrite(Trig, LOW); //Trig pini pasif halde.
delayMicroseconds(2); //2 milisaniye bekledi.
digitalWrite(Trig, HIGH); //Trig pini ses dalgası üretti.
delayMicroseconds(10); //10 milisaniye bekledi.
digitalWrite(Trig, LOW); //Trig pini pasif halde.
sure = pulseIn(Echo, HIGH); //Ses dalgasının ne kadar sürede döndüğü ölçülüyor.
mesafe = (sure/2) / 29.1; // Ölçülen süre cm’ye çevriliyor.
Serial.println(mesafe); //Seri port ekranına mesafe yazdırılıyor.
if(mesafe <= 20) // Mesafe 20 cm’ye küçük ve eşit ise buzzer ve led belli sürede yanıp sönecek.
{
tone(Buzzer,100); //Buzzer ötecek.
digitalWrite(Led,HIGH);// Led yandı.
delay(200); //200 mili saniye bekle.
noTone(Buzzer); //Buzzer kapatıldı.
digitalWrite(Led,LOW); //Led söndü.
}
else if(mesafe <= 40) //Eğer mesafe 40 cm’den küçük ve eşit ise led yanacak ve buzzer kapalı duracak.
{
digitalWrite(Led,HIGH); //Led yandı.
noTone(Buzzer); // Buzzer kapatıldı.
}
else //Eğer hiç bir durum olmadı ise Led sönük duracak ve buzzer kapalı duracak.
{
digitalWrite(Led,LOW); //Led söndü.
noTone(Buzzer); //Buzzer kapatıldı.
}
}

0 Yorum

Kimliğiniz ile giriş yapın

veya    

Ayrıntılarınızı unuttunuz mu?

Create Account