Haberler

Arduino ve Ultrasonik Sensör Tabanlı Mesafe Ölçümü

Başlamadan önce, ortaokulda öğrendiğimiz fizik prensiplerini gözden geçirmemiz gerekiyor:

Normal sıcaklık ve basınçta havadaki ses hızı: 340m/s

1. Ultrasonik Radar prensibi

Ultrasonik, 20.000 Hz’den daha yüksek bir frekansa sahip bir ses dalgasıdır ve bu ismi, alt frekans sınırının insan işitme aralığının üst sınırına yaklaşık olarak eşit olmasından alır. İyi yönlendirme, güçlü geçiş kabiliyeti, daha yoğun ses enerjisi elde etme kolaylığı ve su içinde uzak mesafelerde etkili olma özellikleri nedeniyle sonar sistemleri tarafından benimsenmiştir. 15 °C’de 1 standart atmosferde havada 340 m/s hızla yayılır. Ancak, ses dalgası yayılma sürecinde bir engelle karşılaştığında, yansıma da meydana gelir; bu nedenle ses dalgası ile yankı arasındaki zaman farkını ölçtüğümüzde, sesin kat ettiği mesafeyi tahmin edebiliriz. Aynı zamanda, ultrasonik frekans yüksek ve dalga boyu kısa olduğu için, kırınım düşük ve kısıtlama iyidir; bu nedenle enerji kaybı daha azdır, yayılma mesafesi daha uzundur ve düşük frekanslı seslere göre uzun mesafe ölçümleri için daha uygundur.

Ultrasonik mesafe ölçüm prensibi

Ölçüm adımları şunlardır:

  • N MHz ultrasonik darbeleri yayılır ve ultrasonik darbe yayıldığında zaman başlar ve t0 olarak kaydedilir.
  • mHz ultrasonik darbenin yankısını dinlemeye başla, dinle n ve ardından zamanlamayı sonlandır, t1 olarak kaydedilir.
  • Zaman farkını hesapla t = t1 – t0, bu ultrasonik dalganın gidip gelmesi için geçen zamandır.
  • Ultrasonik dalganın kat ettiği mesafeyi hesapla s = v * (t1 – t0) / 2 (v ses hızıdır).

2. Ultrasonik mesafe sensörü

Piyasada daha yaygın olan ultrasonik mesafe ölçüm modülleri HC-SR04 serisi ve US-100 serisidir; bunlar otomotiv geri görüş radarlarında bile kullanılabilir. Temelde, bir veya iki silindirik ultrasonik alıcı-verici olmalıdır.

Bu ultrasonik modül 40 kHz ses dalgaları kullanır. İnsan kulağının duyabildiği frekans aralığı 20 ile 20 kHz arasındadır. Modülün ses frekansı, insan kulağının üst sınırının iki katından fazladır. Bu, insanların normal yaşamını tamamen etkiler.

GPIO, ultrasonik için en yaygın kontrol yöntemlerinden biridir.

Bağlantı yöntemi aşağıdaki gibidir:

  • Trigger, tetikleme girişi, varsayılan düşük seviyedir, modülün bir set ultrasonik darbe yayması için 10μs’yi aşan yüksek seviye bir darbe girişi yapılmalıdır.
  • Echo, yankı çıkışı, modül ultrasonik darbe gönderdikten sonra varsayılan düşük seviyedir, yankı yüksek seviyede çıkacak ve tüm ultrasonik darbelerin yankısı izlenene kadar (veya izleme zaman aşımına uğrayana kadar) düşük seviye tekrar çıkacaktır.
Ultrasonik mesafe ölçüm zamanlaması

Adımlar aşağıdaki gibidir:

  • Trigger ucunu 10μs’den fazla çekerek modülü 8 kez 40kHz ultrasonik darbeleri yayması için tetikle.
  • Echo ucunu dinlemeye başla, Echo çıkışı yüksek olduğunda zamanlamayı başlat ve Echo düşük seviyeye çıktığında zamanlamayı sonlandır.
  • Zaman süresini hesapla, bu ses dalgasının gidip gelmesi için geçen zamandır.
  • Ses dalgalarının kat ettiği yolu hesapla.

3. Arduino & Ultrasonik Sensör Tabanlı Mesafe Ölçümü

1. Aşağıdaki malzemeleri hazırlayın:

2. Ultrasonik Ranger modülünü Grove-Base Shield‘ın D7 portuna bağlayın.

3. Grove – Base Shield’i ARDUINO‘ya takın.

4. Arduino’yu bir USB kablosu ile PC’ye bağlayın.

5. Yazılım

  • Arduino IDE’yi açın.
  • Sketch > Kütüphane Ekle > Kütüphaneleri Yönet’i seçin.
  • Arama kutusuna “Grove Ultrasonik Ranger” yazın ve “kur”a tıklayın.
  • Aşağıdaki kodu Arduino IDE’ye kopyalayın.
#include "Ultrasonic.h"

Ultrasonic ultrasonic(7);
void setup()
{
    Serial.begin(9600);
}
void loop()
{
    long RangeInInches;
    long RangeInCentimeters;

    Serial.println("Öndeki engellere olan mesafe: ");
    RangeInInches = ultrasonic.MeasureInInches();
    Serial.print(RangeInInches);//0~157 inç
    Serial.println(" inç");
    delay(250);

    RangeInCentimeters = ultrasonic.MeasureInCentimeters(); // iki ölçüm arasında bir aralık olmalıdır
    Serial.print(RangeInCentimeters);//0~400cm
    Serial.println(" cm");
    delay(250);
}
  • Tahtayı Arduino UNO olarak seçin (Araçlar > Tahta > Arduino/Genuino UNO).
  • Doğru portu seçin.

Leave a Reply

Your email address will not be published. Required fields are marked *