arduino mesafe sensörü kullanımı / Ultrasonik Sensör ile Led Kullanımı - Etkileşimli Öğrenme

Arduino Mesafe Sensörü Kullanımı

arduino mesafe sensörü kullanımı

Arduino ile Uzaklık Ölçümü

Uygulamalarda uzaklık ölçümü için HC-SR04 ultrasonik uzaklık sensörü kullanılacaktır. Bu sensör elektronik/robotik malzeme satan mağazalarda kolaylıkla bulunabilir.  Sensör üzerinde giriş ve çıkış olmak üzere iki yüzey bulunmaktadır. Çıkış yüzeyinden ortama belirli bir frekansta ultrasonik ses dalgası salınır. Giriş yüzeyi de çıkış yüzeyinin ortama saldığı belirli frekanslardaki ses dalgalarını toplar. Uzaklık ölçümü için öncelikle çıkış yüzeyinden ortama ses dalgası salınır. Salınan ses dalgası 15 derece açıyla ortamda yayılır. Yayılan ses dalgası bu alanda bulunan bir cisme çarptığında, cisim yüzeyinden sensöre geri yansır. Yansıyan dalganın giriş yüzeyine gelmesiyle işlem tamamlanır. Dalganın çıkış yüzeyinden çıkmasıyla giriş yüzeyine ulaşması arasında geçen süre ölçülerek, cismin uzaklığı hesaplanır. Bu basit mantıkla çalışan sensör, 2 cm ile cm arasındaki uzaklıkları 1 cm hassasiyetle ölçebilmektedir. Sensör bu aralık dışındaki uzaklıkları istikrarlı olarak ölçememektedir.

Sensör üzerinde VCC, Trig, Echo, GND olmak üzere 4 adet pin bulunmaktadır. Bunlardan VCC pini besleme (5 volt), GND pini toprak hattıdır. Trig pini çıkış yüzeyinden dalganın salınmasını sağlayan pindir. Echo pini ise giriş yüzeyine yansıyan dalganın ulaştığını Arduino'ya haber veren pindir. Açıklamalardan da anlaşıldığı gibi Arduino'da trig pini çıkış, echo pini ise giriş olarak ayarlanmalıdır.

Aşağıdaki resimde sensörün Arduino bağlantılarını görebilirsiniz.

Arduino ve uzaklık sensörünün bağlantıları resimdeki gibi yapıldıysa, kodlama kısmına başlayabiliriz.

İlk olarak setup fonksiyonu içerisinde sensörün trig ve echo pinleri ayarlanmalıdır. Sensör önündeki cismin uzaklığını ölçmesi için trig pini aktif yapılmalıdır. Daha önceden bu pinin aktif kalma ihtimalinden dolayı öncelikle pin LOW durumuna getirilmelidir. Kısa bir süre bekledikten sonra trig pini 10 mikro saniye boyunca HIGH konumuna tutulmalıdır. 10 mikro saniye sonunda pin, tekrardan LOW konumuna getirilmelidir. Böylece çıkış yüzeyinden ses dalgası salınmış oldu. Salınan dalga sensörün önündeki bir cisme çarptığında giriş yüzeyine yansıyacaktır. Dalga giriş yüzeyine ulaştığında sensör otomatik olarak echo pinini HIGH konumuna getirecektir. Echo pininin HIGH konumuna gelme süresi pulseIn fonksiyonuyla ölçülür. Ölçülen süre 14,55'e bölünerek cismin uzaklığı ölçülür. Uygulamada sensör yardımıyla ölçülen uzaklığın kullanıcı tarafından görülmesi için, uzaklık bilgisi seri haberleşmeyle bilgisayara aktarılmaktadır.

Uygulama: Kısa menzilli radar yapımı

Uygulamada yeni öğrendiğimiz uzaklık sensörünü servo motorun üzerine bağlayarak, derece arasındaki cisimlerin uzaklığını bulan basit bir radar yapacağız. Bunun için servo motoru 10 derecelik açılarla döndürüp, o açıdaki maksimum uzaklığı ölçeceğiz. Uzaklığı daha kolay ölçebilmek için bu uygulamamızda "mesafeOlcumu” fonksiyonunu tanımlayacağız. Servonun 10'ar derecelik açılarla dönmesini sağlayabilmek için 2 tane for döngüsü kullanılacaktır. Her 10 derecelik açılardaki maksimum uzaklıklar bilgisayardan görüntülenebilmesi için seri port yardımıyla USB üzerinden bilgisayara yollanacaktır.

Bu uygulamayı yapmak için ihtiyacımız olan malzemeler:

  • 1 x Arduino
  • 1 x Breadboard
  • 1 x HC-SR04 (ultrasonik uzaklık sensörü)
  • 1 x Servo motor

Eğer sensörün ölçüm mesafesi içinde engel yoksa, sensörde bir miktar yavaşlama olmaktadır. Bu durumdan kurtulmak için, eğer sensörün önünde engel yoksa zaman aşımına uğraması için pulseIn fonksiyonunu güncelledik. Böylece belirli bir uzaklıkta engel yoksa sistem beklemeden çalışmaya devam edecektir. PulseIn fonksiyonuna yazılan değeri sensöre ve ortama göre değişiklik gösterebilir.

HC-SR04 ultrasonik mesafe sensörü, 2 ila cm aralığındaki mesafeleri ölçseafoodplus.info-sr04 ucuz ve kullanımı kolay bir ultrasonik mesafe sensörüdür. Engelden kaçan robotlarda ve otomasyon projelerinde yaygın olarak kullanılmaktadır. Bu yazımızda sensörün nasıl çalıştığını ve Arduino ile nasıl kullanılacağını öğreneceksiniz.

Sensörünüzü denemeye başlayabilmeniz için bir bağlantı şeması ve kod içeren 5 örnek ekledim. İlk önce Arduino kütüphanesi kullanmayan bir örneğe bakacağız. Daha sonra, daha kompakt bir kod oluşturmak için NewPing kütüphanesinin nasıl kullanabileceğinizi göstereceğim.

Gerekli Malzemeler

  • HC-SR04 Sensörü
  • Arduino Uno
  • Breadboard
  • Jumper Kablolar
  • 20×4 Karakter I2C LCD (isteğe bağlı)

Ultrasonik Mesafe Sensörü Nasıl Çalışır?

Ultrasonik sensörler, bir insanın duyamayacağı kadar yüksek frekanslı ses dalgaları yayarak çalışır. Bu ses dalgaları havada yaklaşık m/s ses hızıyla hareket eder. Sensörün önünde bir cisim varsa ses dalgaları geri yansır ve ultrasonik sensörün alıcısı bunları algılar. Ses dalgalarının gönderilmesi ve alınması arasında ne kadar zaman geçtiği ölçülerek sensör ile nesne arasındaki mesafe hesaplanır.

20°C&#;de sesin hızı kabaca m/s veya cm/µs&#;dir. Diyelim ki ses dalgalarının gönderilmesi ve alınması arasındaki süre mikrosaniye. Sesin hızını, ses dalgalarının yol aldığı zamanla çarparsanız, ses dalgalarının kat ettiği mesafeyi elde edersiniz.

Ama aradığımız sonuç bu değil. Sensör ile nesne arasındaki mesafe aslında bu mesafenin sadece yarısı kadardır, çünkü ses dalgaları sensörden nesneye ve nesneden sensöre geri döner. Yani sonucu ikiye bölmeniz gerekir.

Örnek verecek olursak:

Ses Hızının Sıcaklığa Bağımlılığı

Sesin hızı aslında büyük ölçüde sıcaklığa ve çok daha az derecede havanın nemine bağlıdır. Wikipedia, ses hızının santigrat derece başına kabaca 0,6 m/s arttığını belirtir. Çoğu durumda 20°C&#;de sadece m/s kullanabilirsiniz, ancak daha doğru okumalar elde etmek istiyorsanız sesin hızını aşağıdaki formülle hesaplayabilirsiniz:

Bu formül, ses hızı üzerindeki etkisi çok küçük olduğu için nemi içermez.

HC-SR04 Nasıl Çalışır?

HC-SR04 sensörünün ön tarafında iki adet gümüş silindir (ultrasonik transdüser) bulabilirsiniz, biri ses dalgalarının vericisi, diğeri ise alıcıdır. Sensörün bir sonik patlama oluşturmasına izin vermek için, Trig pinini en az 10 µs için yüksek ayarlamanız gerekir. Sensör daha sonra 40 kHz&#;de 8 döngülü bir ultrason patlaması oluşturur.

Bu sonik patlama, ses hızında hareket eder ve geri döner ve sensörün alıcısı tarafından alınır. Yankı pini(Echo) daha sonra ses dalgalarının mikrosaniye cinsinden kat ettiği süreyi verir. Echo pininden puls uzunluğunu okumak için Arduino kodundaki pulseIn() işlevini kullanabilirsiniz. Bundan sonra, sensör ile nesne arasındaki mesafeyi hesaplamak için yukarıda belirtilen formülü kullanabilirsiniz.

HC-SR04 Teknik Özellikleri

Çalışma Voltajı5 V
Çalışma Akımı15 mA
Frekans40 kHz
Ölçüm Aralığı2 – cm
Çözünürlük3 mm
Ölçüm Açısı15 derece
Tetik Giriş Sinyali10 µs yüksek darbe

Daha fazla bilgi için aşağıdaki datasheet&#;i inceleyebilirsiniz:

Arduino İle HC-SR04 Bağlantı Şeması

Aşağıdaki bağlantı şeması, HC-SR04 sensörünü Arduino&#;ya nasıl bağlayacağınızı göstermektedir.

Arduino ile HC-SR04 Bağlantı Şeması

Aşağıdaki kod örnekleri, tetik ve eko pimi için sırasıyla dijital pin 2 ve 3&#;ü kullanır, ancak elbette bunu istediğiniz herhangi bir dijital pine değiştirebilirsiniz.

HC-SR04 Arduino Bağlantı Pinleri

HC-SR04Arduino
VCC5 V
TrigPin 2
EchoPin 3
GNDGND

Arduino ile HC-SR04 Kullanımı İçin Örnek Kod

Arduino ve NewPing Kütüphanesi İle HC-SR04 Sensörü Örnek Kod

Tim Eckel tarafından yazılan NewPing kütüphanesi birçok ultrasonik mesafe sensörü ile kullanılabilir. Bu kitaplığın en son sürümü buradan seafoodplus.info&#;dan indirilebilir. NewPing kitaplığını kullanan aşağıdaki kodun daha önce kullandığımız koddan çok daha kısa olduğunu fark edebilirsiniz. Bunun yanı sıra, NewPing kitaplığı başka güzel özellikler de içeriyor. Okumak için maksimum bir mesafe belirlemenizi sağlar, yankı alınmadığında tam bir saniye gecikmez ve yerleşik bir medyan filtresine sahiptir.

Arduino IDE&#;de Taslak > Library Ekle > .ZIP Kitaplığı Ekle yolunu izleyerek kütüphaneyi kurabilirsiniz.

Kitaplık, kullanabileceğiniz bazı örnekler içerir, ancak bunları donanım kurulumunuza uyacak şekilde değiştirmeniz gerekecektir. Daha önce olduğu gibi aynı kablolama kurulumuyla kullanılabilecek değiştirilmiş bir örnek kodu aşağıdakidir.

Ayrıca, ölçülen mesafeyi tam santimetre veya inç olarak döndüren Distance = seafoodplus.info_cm() veya Distance = seafoodplus.info_in() kullanabilirsiniz. Bu fonksiyon ile süre ölçümü yapmanıza ve mesafeyi hesaplamanıza gerek yoktur.

ping_median() Dijital Filtresi Nasıl Kullanılır

NewPing kitaplığı hakkında sevdiğim en önemli şey, yerleşik bir medyan filtresine sahip olmasıdır. Bu filtre, HC-SR04 okumalarınızın doğruluğunu büyük ölçüde artırabilir. ping_median() işlevi arka arkaya birçok süre ölçümü alır, aralık dışı okumaları atar ve ardından kalanların ortalamasını alır. Varsayılan olarak 5 okuma alacaktır, ancak kaç tane alacağını belirleyebilirsiniz. satırı aşağıdaki satırlarla değiştirin.

HC-SR04 İle Mesafe Ölçme ve Ekrana Yazdırma

veya I2C LCD&#;de ölçülen mesafeyi görüntülemek için tek yapmanız gereken aşağıdaki bağlantıları yapmak ve aşağıdaki kodu yüklemek. HC-SR04 sensörü öncekiyle aynı şekilde bağlanır.

I2C LCD Bağlantısı

I2C LCDArduino
GNDGND
VCC5 V
SDAA4
SCLA5

Arduino Uno kullanmıyorsanız, SDA ve SCL pinleri farklı bir yerde olabilir. R3 düzenine ( pin çıkışı) sahip bir Arduino UNO, ayrıca AREF pinine yakın SDA (veri hattı) ve SCL (saat hattı) pin başlıklarına sahiptir. Daha fazla ayrıntı için aşağıdaki tabloyu kontrol edin.

KartSDASCL
Arduino UnoA4A5
Arduino NanoA4A5
Arduino Micro23
Arduino Mega 2021
Arduino Leonardo23
Arduino Due2021

Kod, GitHub&#;dan buradan indirebileceğiniz LiquidCrystal_I2C kitaplığını kullanır. Tam olarak bu kitaplığın kurulu olduğundan emin olun! Ayrıca I2C cihazlarıyla iletişim kurmanızı sağlayan Wire.h kitaplığını da içerir. Bu kütüphane Arduino IDE ile önceden yüklenmiş olarak gelmelidir.

20 x 4 LCD ekran kullandığımı unutmayın. Farklı boyutta bir LCD&#;niz varsa (16 x 2 de yaygındır) satırı LiquidCrystal_I2C lcd(0x27,16,2); olarak değiştirmeniz gerekir.

HC-SR04 Boyutları

Aşağıda HC-SR04 ultrasonik sensörün boyutlarını bulabilirsiniz. Üreticiler arasında bazı küçük farklılıklar olduğunu fark ettim, bu yüzden kendi sensörünüzle iki kez kontrol etmenizi öneririm.

Bunu beğen:

BeğenYükleniyor

nest...

batman iftar saati 2021 viranşehir kaç kilometre seferberlik ne demek namaz nasıl kılınır ve hangi dualar okunur özel jimer anlamlı bayram mesajı maxoak 50.000 mah powerbank cin tırnağı nedir