ARDUİNO ULTRASONİK MESAFE SENSÖRÜ KULLANIMI

Selamlar arkadaşlar öncelikle ultrasonik sensörün ne olduğunu öğrenelim ilk olarak , bizim uygulamamızda HC-SR04 kullanılacaktır.Özelliklerine geçelim 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 200 cm arasındaki uzaklıkları 1 cm hassasiyetle ölçebilmektedir. Sensör bu aralık dışındaki uzaklıkları istikrarlı olarak ölçememektedir.

Uygulama: Kısa menzilli radar yapımı

Uygulamada yeni öğrendiğimiz uzaklık sensörünü servo motorun üzerine bağlayarak, 0-180 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




HC-SR04 bacak bağlantıları


  

UYGULAMA ŞEMASI: 







KOD :

#include <Servo.h> const int trigPin = 8; /* Sensorun trig pini Arduinonun 6 numaralı ayağına bağlandı */ const int echoPin = 7; /* Sensorun echo pini Arduinonun 7 numaralı ayağına bağlandı */ Servo radarServosu; int aci = 0; long mesafeOlcumu(){ long sure; long uzaklik; digitalWrite(trigPin, LOW); /* sensor pasif hale getirildi */ delayMicroseconds(5); digitalWrite(trigPin, HIGH); /* Sensöre ses dalgasının üretmesi için emir verildi */ delayMicroseconds(10); digitalWrite(trigPin, LOW); /* Yeni dalgaların üretilmemesi için trig pini LOW konumuna getirildi */ sure = pulseIn(echoPin, HIGH, 11600); /* ses dalgasının geri dönmesi icin gecen sure ölcülüyor */ uzaklik= sure /29.1/2; /* ölçülen sure uzaklığe çevriliyor */ if(uzaklik > 200 || uzaklik < 1 ) uzaklik = 200; return uzaklik; } void ekranaYazdir(int aciDegeri, long uzaklikDegeri){ Serial.print("aci= "); Serial.print(aciDegeri); Serial.print("uzaklik= "); Serial.println(uzaklikDegeri); } void setup(){ pinMode(trigPin, OUTPUT); /* trig pini cikis olarak ayarlandi */ pinMode(echoPin,INPUT); /* echo pini giris olarak ayarlandi */ radarServosu.attach(9); Serial.begin(9600); /* Seri haberleşme başlatıldı */ } void loop() { for(aci = 0; aci < 180; aci += 10) /* radarımız 0dan 180 kadar 10ar 10ar dönecektir */ { radarServosu.write(aci); /* radari donduruyoruz */ delay(15); /* radarin donmesini bekliyoruz */ ekranaYazdir(aci, mesafeOlcumu()); } for(aci = 180; aci>=1; aci-=10) /* radarımız 180dan 0 kadar 10ar 10ar dönecektir */ { radarServosu.write(aci); /* radarı donduruyoruz */ delay(15); /* radarın dönmesini bekliyoruz */ ekranaYazdir(aci, mesafeOlcumu()); } }

Uygulamamız bu kadar arkadaşlar sorun veya takıldığınız yer varsa yorum kısmından bize ulaşabilirsiniz.Görüş ve önerilerinizi E-mail yoluyla iletebilirsiniz. :)




Google Plus ile Paylaş

Kısaca: j

Elektronik ve Geliştirme Kartları hakkında bilgilerini sizlerle paylaşan yardımsever bir kişi.
    BLOGGER YORUMLARI
    FACEBOOK YORUMLARI

0 yorum:

Yorum Gönder