Arduino İle HC-SR04 İle Mesafe Ölçme

0
3017
Arduino İle HC-SR04 İle Mesafe Ölçme
Arduino İle HC-SR04 İle Mesafe Ölçme

Arduino İle HC-SR04 İle Mesafe Ölçme

Allah (azze ve celle), bütün varlıkları bir sebep dairesinde yaratmıştır. Teknoloji bu kaide üzerine insanları, hayvanları ve bitkileri inceler. Bu projemizde yarasaların en önemli özelliğinden faydalanacağız. Yarasaların doğasını ilk kez bilim adamı Lazzaro Spallanzani araştırmıştır. 18. yüzyılda yaptığı araştırmada yarasaların gözleri kapalı olsa bile nesnelere çarpmadığını fark etmiştir. Yönlerini seslerden faydalanarak bulduğunu öne sürmüştür. Yarasalar ortama bir ses sinyali göndererek sesin gidiş ve geliş süresine göre bulunan nesnelerin mesafelerini ölçerler. HC-SR04 sensörüde bu kurala dayanan bir mesafe ölçüm aparatıdır.

Kullanılan Malzemeler

  • Bir adet Arduino Uno Kartı,
  • Bir adet HC-SR04 Mesafe Ölçüm Sensörü,
  • İki adet led (yeşil ve kırmızı),
  • İki adet direnç (560 ohm),
  • Board ve devre tasarım elemanları.

Tasarım

HC-SR04, 2 cm‘den 400 cm‘ye kadar 3 mm hassasiyetle ölçüm yapabilen, çeşitli projelerde uzaklık okuma, radar ve robot uygulamalarında kullanılan bir mesafe ölçüm sensörüdür. Sensörün geniş özellikleri aşağıda sıralanmıştır:

Arduino İle HC-SR04 İle Mesafe Ölçme
Arduino İle HC-SR04 İle Mesafe Ölçme

Çalışma Voltajı: DC 5V,

Çektiği Akım: 15 mA,

Çalışma Frekansı: 40 Hz,

Maksimum Görme Menzili: 4m,

Minimum Görme Menzili: 2cm,

Görme Açısı: 15°,

Tetik Bacağı Giriş Sinyali: 10 us TTL darbesi,

Echo Çıkış Sinyali: Giriş TTL sinyali ve mesafe Oranı, Boyutları: 45mm x 20mm x 15mm.

HC-SR04 sensörünün 4 adet pini bulunmaktadır. Bunlar 5 volt gerilimin ,alındığı VCC pini, ses sinyalinin gönderildiği Trig pini, ses sinyalinin alındığı Echo pini ve topraklama için kullanılan GND pinidir. Sensör önce ortama ses sinyali gönderir. Bir nesneye çarpan ses geri döner. Bu dönme mesafesine göre nesnenin sensöre olan uzaklığı ölçülür.

Devremizin kurulumu şu şekilde olacaktır: Bir board’un üzerine HC-SR04 sensörünün 4 pini bağlanır. Board’un üzerinde ayrıca yeşil ve kırmızı ledler ile bunlara bağlı 560 ohm dirençler vardır. Arduino Uno kartının 5 volt çıkışından gelen bağlantı board’un pozitif besleme şeridine, GND çıkışından gelen bağlantı negatif besleme şeridine bağlanır.

Arduino İle HC-SR04 İle Mesafe Ölçme
Arduino İle HC-SR04 İle Mesafe Ölçme

Devrede en başta yeşil led yanma durumunda olacaktır. Eğer bir nesne, sensöre 2 cm veya daha yakın bir mesafede durursa, yeşil led sönüp kırmızı led yanacaktır. Durum eski haline dönüp nesne 1 metreye kadar uzaklaşırsa, kırmızı sönüp yeşil led yanar. Nesne 1 metreden daha uzağa veya sensörün ölçüm yapamayacağı kadar yakına gelirse, “Nesne ölçüm dışında” uyarısı verilecektir. Şimdi kodlara bakalım.

Kodlar

Sensörün sesi gönderip/alması için gerekli şey Trig pinine bağlı olan sensörün içindeki dalganın mikrosaniyeler içinde yükselip alçalmasıdır. Bunu sağlayan komut şu şekildedir.

#define trigPin 13 //trig pini sabit olarak tanımlandı

#define echoPin 12 // echo pini sabit olarak tanımlandı

#define kirmizi_led 11 // kırmızı ledin bağlı olduğu pin

#define yesil_led 10 //yeşil ledin bağlı olduğu pin



void setup() {

  Serial.begin (9600); //seri iletişim başlatılıyor.

  pinMode(trigPin, OUTPUT); // ses sinyali görderme pini çıkış

  pinMode(echoPin, INPUT); // sinyali geri alma pini giriş

  pinMode(kirmizi_led, OUTPUT); //led ler çıkış

  pinMode(yesil_led, OUTPUT);

}



void loop() {

  long sure, mesafe; // ses sinyalinin hesabı için sure ve mesafe değişkenleri

  digitalWrite(trigPin, LOW);  // ses sinyali beklemede

  delayMicroseconds(2); // 2 mikrosaniye sonra

  digitalWrite(trigPin, HIGH); // ses sinyali yükseltiliyor

  delayMicroseconds(10); // 10 mikrosaniye sonra

  digitalWrite(trigPin, LOW); // ses sinyali alçaltılıyor

  sure = pulseIn(echoPin, HIGH); // ses sinyalinin alınması sorgulanıyor

  mesafe = (sure/2) / 29.1; // mesafe için hesaplama yapılıyor

  if (mesafe < 4) {  // eğer nesne ile sensör arasındaki mesafe 2 cm'den küçülürse

    digitalWrite(kirmizi_led,HIGH); // kırmızı led yakılıyor

  digitalWrite(yesil_led,LOW); // yeşil led sönüyor

}

  else { // 2 cm'den uzaksa 

    digitalWrite(kirmizi_led,LOW); // kırmızı led sönüp

    digitalWrite(yesil_led,HIGH); // yeşil led yanıyor

  }

  if (mesafe >= 200 || mesafe <= 0){ // eğer mesafe 1 metreden büyük veya negatifse

    Serial.println("Nesne ölçüm dışında"); 

  }

  else { // değilse mesafenin değeri yazılır

    Serial.print(mesafe);

    Serial.println(" cm");

  }

  delay(500);

}

 

CEVAP VER

Please enter your comment!
Please enter your name here