Ultrasonik Sensör Uygulaması

İnsanlar, frekansı 16 Hz ile 20 kHz arasında olan sesleri duyabilmektedir. Ultrasonik ses, insanın
işitme sınırından daha yüksek frekanslardaki ses dalgalarıdır. Görselde ses frekans aralıkları görülmektedir.

Görseldeki HC-SR04 ultrasonik sensör ve pin yapısı görülmektedir. HC-SR04 ultrasonik sensör üzerinde alıcı ve verici olmak üzere iki yüzey bulunur. Verici yüzeyden 15 derece açıyla ortama 40 kHz frekansta ultrasonik ses dalgası salınır. Alıcı, iletilen darbeleri dinler. Yayılan ses dalgası bu alanda bulunan bir cisme çarptığında ses dalgası cismin yüzeyinden sensöre geri yansır.
Yansıyan dalganın giriş yüzeyine gelene kadar katettiği mesafenin belirlenebilmesi için genişliği
kullanılabilen bir çıkış darbesi üretilir. Üretilen bu dalganın süresi ölçülerek hız formülü yardımıyla cismin uzaklığı hesaplanır. Sensör, 2 cm ile 400 cm arasındaki uzaklıkları 3 mm hassasiyetle
ölçebilmektedir

VCC: 5 V besleme.

Trig: Ultrasonik ses darbelerini tetiklemek için kullanılır.

Echo: Yansıyan sinyal alındığında darbe üreten pindir. Darbenin uzunluğu, iletilen sinyalin algılanması içingeçen süreyle orantılıdır.

1GND: Topraklama pini.

Trig pinine en az 10 µS (10 mikrosaniye) süreli bir darbe uygulandığında sensör, 40 kHz’de sekiz
darbelik bir ses kalıbını ortama gönderir. Bu sekiz darbeli model, alıcının iletilen modeli ortamdaki ultrasonik gürültüden ayırt etmesini sağlar. Bu sinyal gönderildikten sonra Echo pini lojik 1
konumuna geçer ve gönderilen sinyalin dönmesini bekler. Eğer ses 38 milisaniye (sensörün
menzil süresi) içinde geri dönmezse engel yoktur ve işlem tekrar eder.

Darbeler geri yansıtılırsa sinyal alınır alınmaz Echo pini lojik 0 olur. Geçen süreye bağlı olarak
Echo pini tarafından genişliği 150 µs ile 25 ms arasında değişen bir darbe üretilir

Echo pinin lojik 1 seviyesinde kalma süresi ses dalgasının engele çarpıp geri dönme süresidir.
“Yol= hız x zaman” formülünde bu süre kullanılarak mesafe hesaplanır. Sesin hızı ortamdaki
nem ve sıcaklığa göre değişmektedir. 20 °C’de sesin yayılma hızı 344 m/s’dir. DHT22 gibi bir
sensör ilave edilerek ve ses hızı m/s = 331.4 + (0.606 * sıcaklık) + (0.0124 * nem) formülü programda kullanılarak ölçüm doğruluğu artırılabilir. Mesafe, süre, ortalama süre vb. değerleri veren
NewPing.h kütüphanesi HC-SR04 uygulamalarında kullanılmaktadır.

Görseldeki uygulamada kullanılan NewPing kütüphanesini kurmak için menülerden “Taslak
 Library Ekle  Kütüphaneleri Yönet” seçeneğinden arama kutusuna “NewPing” yazılır.
“NewPing” kütüphanesi bulunarak kurulur. Daha sonra “Taslak  Library Ekle  NewPing” seçilerek programın başına eklenir. Bu programın bir örneğine menülerden “Dosya  Örnekler 
NewPing  NewPingExample” adımları izlenerek de ulaşılır. NewPing kütüphanesi, trig ve echo
pinlerini aynı pin numarasında sırayla kullanarak birden fazla sensör kullanımında pin sayısından tasarruf eder

#include <NewPing.h>
const byte trig = 12, echo = 11, sinir = 100;

NewPing olcum(trig, echo, sinir); // olcum isimli nesne oluşturuldu.

void setup() {
  Serial.begin(9600);
}

void loop() {
  int uzaklik = olcum.ping_cm(); // cm cinsinden uzaklık.
  Serial.print(uzaklik);
  Serial.println(" cm");
}

const byte trig = 12, echo = 11;
unsigned long sure;
int uzaklik;

void setup() {
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
  Serial.begin(9600);
}

void loop() {
  digitalWrite(trig, 0); // Darbe sinyali gönder.
  delayMicroseconds(10);
  digitalWrite(trig, 1);
  delayMicroseconds(10);

  sure = pulseInLong(echo, 1); // Gelen sinyalin HIGH'da kalma süresini mikrosaniye cinsinden oku.
  uzaklik = (0.0343 * sure) / 2; // Mesafeyi hesapla.

  Serial.print(uzaklik);
  Serial.println(" cm");
}

const byte trig = 12, echo = 12;
unsigned long sure;
int uzaklik;

void setup() {
  Serial.begin(9600);
}

void loop() {
  pinMode(trig, OUTPUT); // 12 numaralı pini çıkış yap.
  digitalWrite(trig, 0); // Darbe sinyali gönder.
  delayMicroseconds(10);
  digitalWrite(trig, 1);
  delayMicroseconds(10);
  pinMode(echo, INPUT); // 12 numaralı pini giriş yap.

  sure = pulseInLong(echo, 1); // Gelen sinyalin HIGH'da kalma süresini oku.
  uzaklik = (0.0343 * sure) / 2; // Mesafeyi hesapla.

  Serial.print(uzaklik);
  Serial.println(" cm");
}

#include <NewPing.h>

byte sinir = 200;
NewPing sensor[3] = {   // Üç adet sensor nesnesi oluşturuldu.
  NewPing(2, 2, sinir), // Trig ve echo pinleri aynı pine bağlı.
  NewPing(3, 3, sinir),
  NewPing(4, 4, sinir)
};

void setup() {
  Serial.begin(115200); // Seri ekran  115200 baudrate'e ayarlandı.
}

void loop() {
  for (byte i = 0; i < 3; i++) { // Üç sensörün bilgileri göster.
    delay(50); // En az 29 ms beklenmeli.
    Serial.print(i);
    Serial.print("=");
    Serial.print(sensor[i].ping_cm());
    Serial.print("cm ");
  }
  Serial.println();
}

#include <NewPing.h>
const byte buzzer = 2, trig = 12, echo = 11, sinir = 200;

NewPing olcum(trig, echo, sinir); // olcum isimli nesne oluşturuldu.

void setup() {
  pinMode(buzzer, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  byte uzaklik = olcum.ping_cm(); // cm cinsinden uzaklık. (En fazla 200.)
  Serial.print(uzaklik);
  Serial.println(" cm");

  digitalWrite(buzzer, 1);
  delay(5 * uzaklik); // Mesafe azaldıkça bip sesini hızlandır.
  digitalWrite(buzzer, 0);
  delay(5 * uzaklik);
}

#include <LiquidCrystal.h>
const byte trig = 10, echo = 9;
unsigned long sure;

// LCD modülün Arduino pinlerne bağlantısı.
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  pinMode(trig, OUTPUT);
  pinMode(echo, INPUT);
  lcd.begin(16, 2); //LCD modülün satır ve sütün sayısı.
  lcd.print("Mesafe");
}

void loop() {
  digitalWrite(trig, 0); // Darbe sinyali gönder.
  delayMicroseconds(10);
  digitalWrite(trig, 1);
  delayMicroseconds(10);
  sure = pulseInLong(echo, 1); // Gelen sinyalin HIGH'da kalma süresini oku.

  lcd.setCursor(0, 1);
  lcd.print((0.0343 * sure) / 2); //Mesafeyi yazdır.
  lcd.setCursor(4, 0);
  lcd.print("cm");
}

#include <LiquidCrystal.h>
const byte trigEchoTekPin = 10; //Trig ve Echo pinleri 10 numaralı pine bağlı.
unsigned long sure;

// LCD modülün Arduino pinlerne bağlantısı.
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);

void setup() {
  lcd.begin(16, 2); //LCD modülün satır ve sütün sayısı.
  lcd.print("Mesafe");
}

void loop() {
  pinMode(trigEchoTekPin, OUTPUT); // 10 numaralı pini çıkış yap.
  digitalWrite(trigEchoTekPin, 0); // Darbe sinyali gönder.
  delayMicroseconds(10);
  digitalWrite(trigEchoTekPin, 1);
  delayMicroseconds(10);
  pinMode(trigEchoTekPin, INPUT); // 10 numaralı pini giriş yap.
  sure = pulseInLong(trigEchoTekPin, 1); // Gelen sinyalin HIGH'da kalma süresini oku.

  lcd.setCursor(0, 1);
  lcd.print((0.0343 * sure) / 2); //Mesafeyi yazdır.
  lcd.setCursor(4, 0);
  lcd.print("cm");
}

Benzer Temrinler & Yazılar

  • Engelden Kaçan Robot Uygulaması

    Engelden kaçan robotta engelleri algılamak için ultrasonik sensör kullanılmaktadır GörseldekiUltrasonik sensörden gelen bilgilerle mesafe hesaplanır. Mesafe 30 cm’nin altına indiğinde motor tarafından sürücüye sol tekerleği geriye döndürme bilgisi gönderilmektedir. 30 cm üzerindekitüm mesafe ölçümlerinde tekerlekler ileri yönde döndürülecek şekilde motor sürücüye bilgi gönderilmektedir. Taslaktaki “hiz=255;” değeri düz gitme ve dönüş için farklı değerlere ayarlanarakrobot yavaşlatılabilir….

  • Parmak İzi Okuma Uygulaması

    Görseldeki parmak izi okuma uygulaması görülmektedir. UART haberleşme protokolü kullanılan sensör Arduino’da SoftwareSerial kütüphanesi kullanılarak 2 ve 3 numaralı pinlere bağlanmıştır. Görselde parmak izi sensörünün pin yapısı verilmiştir. Parmak izi kaydetme programıyla kaydedilen parmak izleri, parmak izi okuma programıyla test edilir. İşlemler seri ekran kullanılarak yapılır. VCC: 3,3 V-5 V besleme. GND: Topraklama pini. TX:…

  • Hareket Sensörü Uygulaması

    Maddeler sahip oldukları ısıdan dolayı insanların görebileceği ışık aralığının altında kızılötesi ışıkyayar. Normal sıcaklığındaki insan vücudu (36,5 °C) 10 mikrometre dalga boyunda ışıma yapar.Hareket sensörü bulunduğu ortamdaki kızılötesi ışık dalgalarını içindeki özel kristal malzemeyle(piroelektrik sensör) elektriğe dönüştürür. Ortamdaki kızılötesi ışık miktarı sabitken bir canlı ortama girdiğinde kızılötesi ışık miktarında artış olur. Hareket sensörü bu artışı…

  • Nem Sensörü Uygulaması

    DHT sensörleri, kapasitif nem sensörü ve termistör (NTC) olmak üzere iki parçadan oluşur. İçindeanalog dijital dönüştürü vardır. Görsel 3.15a’da DHT11 ve DHT22’nin pin yapısı görülmektedir.DHT11 ve DHT22 aynı pin çıkışına sahiptir ancak bunların farklı özellikleri vardır. DHT11 0 ile 50 °Carasındaki sıcaklığı ±2 °C doğrulukla verirken DHT22 -40 ile 80 °C arasındaki sıcaklığı ±0,5 °Cdoğrulukla…

  • Bluetooth Kontrollü Araç Uygulaması

    Görselde bluetooth modülün RX ve TX pinlerinin SoftwareSerial.h kütüphanesi kullanılarak8 ve 7 numaralı pinlere bağlanması gösterilmiştir. Modülün TX ucu Arduino’nun RX (8. pin) ucuna, modülün RX ucu Arduino’nun TX (7. pin) ucuna bağlanmalıdır. Ancak modülün TX ucundançıkan 3,3 V Arduino RX ucunda lojik 1 olarak kabul edilirken Arduino’nun TX ucundan çıkan 5 Vmodülün RX ucuna…

  • Analog Çıkış Uygulaması

    Görseldeki uygulamada LED 9 numaralı PWM özellikli pine bağlanmıştır. LED’in parlaklığınıartırıp azaltmak için analogWrite() fonksiyonun ikinci parametresi 0-255 arası değiştirilir. 255’eyaklaştıkça parlaklık artmakta, 0’a yaklaştıkça parlaklık azalmaktadır. const byte ledPin = 9;    // LED 9 numaralı pine bağlı. void setup() {  // PWM pinleri çıkış olarak ayarlamaya gerek yoktur. } void loop() {  for (int…

Bir Yorum Yazın

E-posta adresiniz yayınlanmayacaktır. Gerekli alanlar * ile işaretlenmiştir.