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

  • Potansiyometreyle Analog Giriş Uygulaması

    Görselde potansiyometrenin pin yapısı ve yapılan ayara göre orta ucundan alınan gerilimdeğerleri görülmektedir. Potansiyometrenin bir kenardaki ucu GND’ye, diğer kenardaki ucuysa 5V’a bağlanmıştır. Gerilim bölücü olarak çalışan bu potansiyometrenin orta ucundan 0-5 V arasında bir gerilim elde edilir. Bu gerilim Arduino’nun A3 analog girişine uygulanmıştır void setup() { Serial.begin(9600); //Seri iletişim başlatıldı. } void loop()…

  • ASCII

    //void setup() { Serial.begin(9600); Serial.println("ASCII Tablosu"); for (byte i = 33; i < 127; i++) { Serial.write(i); //Karakteri yaz. Serial.print(", dec: "); //Onluk karşılığını yaz. Serial.print(i); Serial.print(", hex: "); Serial.print(i, HEX); //Onaltılık karşılığını yaz. Serial.print(", oct: "); Serial.print(i, OCT); //Oktal karşılığını yaz. Serial.print(", bin: "); Serial.println(i, BIN); //İkilik karşılığını yaz. } } void loop() {…

  • Bluetooth Uygulaması

    Bluetooth modülle haberleşmek için telefondan bluetooth bağlantısı açılarak hc-05 cihazı bulunur ve “Bluetooth aygıtını seç” düğmesiyle hc-05 seçilir. Varsayılan şifre “1234” veya “0000” dır.Bluetooth ile “A” harfi gönderilerek LED yakılır, “B” harfi gönderilerek LED söndürülür (Görseldeki). Bluetooth uygulama devresi Görselde görülmektedir. void setup() { pinMode(13, OUTPUT); Serial.begin(9600); // Bluetooth ile seri iletişimi başlat. } void…

  • Step Motor Uygulaması

    Step motorlar, adımlarla hareket eden DC motorlardır görselde Faz adı verilen gruplar hâlinde organize edilmiş çoklu bobinleri vardır. Her faza sırayla enerji verildiğinde motor her seferindebir adım olacak şekilde döner. Çift kutuplu step motorlar, iki bobinden oluşur ve genellikle bobinbaşına iki olmak üzere dört bağlantıya sahiptir. Tek kutuplu bir step motor elektriksel olarak ikiayrı bobinden…

  • Kartlı Geçiş Uygulaması (Step ve servo motor)

    Görseldeki uygulamada RFID okuyucuya geçerli bir kart okutulduğunda step motor 90 °C’lik dönüş yapar. Geçerli ve geçersiz kartlar için farklı ses sinyalleri verir. Geçersiz kartın ID’si seri ekrandan okunarak istenirse geçerli kart listesine eklenir. #include <SPI.h> // Dahili SPI kütüphanesi #include <MFRC522.h> // v1.4.9 #define reset 9 // Reset pini #define ss 10 // SS…

Bir Yorum Yazın

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