HC-SR04 ULTRASONİK MESAFE SENSÖRÜ İLE SERVO MOTOR KONTROL PROJESİ
Kullanılan Ekipmanlar
İsmi Adet Fiyat // TL
Breadboard 17 cm * 5.5 cm 1 60
HC-SR04 Ultrasonik Mesafe 1 35,26
Sensörü
Tower Pro SG90 RC Mini 1 39,96
Servo Motor
Arduino Uno 1 945,87
Arduino Dişi-Dişi,Erkek-Dişi 1 70
Jumper Paket
Ekipmanların Özellikleri
HC-SR04 Ultrasonik Mesafe Sensörü
HC-SR04 mesafe sensörü 2 cm ile 400 cm arasındaki mesafeleri ölçebilmektedir. Böyle bir aralık söz konusuyken ilk
bakışta bunu dijital sinyallerle değil de analog sinyallerle yapması gerekiyor gibi duruyor ancak Hc-SR04 ultrasonik
mesafe sensörü mesafeyi hesaplarken dijital sinyallerini kullanıyor. Ses sinyali üreten hc-sr04 ultrasonik mesafe
sensörüne ses sinyalinin sensörden çıkışı ve geri dönüşü arasında geçen süreyi hesaplayıp basit bir fizik formülünü
(yol=hız X zaman) kullanarak aradaki mesafeyi hesaplatıyoruz. Yani analog sensörlerde olduğu gibi sensör bize direkt
bir değer sunmuyor. Sensör üzerinde bulunan Trig pini sensörün yayılmasını tetikliyor Echo pini de yüzeye çarpıp
geri dönen ses sinyalini sensöre geldiğinde yakalıyor. Kod üzerinde açıklayıp sensörü kullandığımızda nasıl çalıştığını
pekiştirelim.
Tower Pro SG90 RC Mini Servo Motor
Arduino servo motor kontrolü için PWM pinlerinden yararlanıyoruz. Bu pinlerin yanında dalga (~) işaret
bulunmaktadır. Servo motoru bu pinlerle kullanabilirsiniz. Servo motorun 3 adet bağlantı kablosu bulunmaktadır.
Projelerde ve prototiplerde kullanılan hem yaygın hem de ekonomik olan SG-90 servo motorunda renkleri
kahverengi, kırmızı ve turuncu olmaktadır. Bu kabloların özellikleri kahverengi (GND), kırmızı (5v), Turuncu (Dijital
PWM Pin) sinyal pini olarak belirlenmiştir.
Elektronik Devre Şeması
Arduino Kodu
#include <Servo.h>
Servo motor;
int trigPin = 3;
int echoPin = 2;
long zaman;
long mesafe;
void setup(){
pinMode(trigPin, OUTPUT);
pinMode(echoPin,INPUT);
[Link](10);
[Link](9600);
}
void loop()
{
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
zaman = pulseIn(echoPin, HIGH);
mesafe= (zaman /29.1)/2;
//zaman değişkeninin değerini önce sesin havadaki yayılma hızı olan 29,1 sayısına bölüyoruz. Bu değer sesin gittiği ve geldiği
// süreyi temsil etmektedir. Bu değeri tekrar 2 ye bölerek engelin veya cismin sensöre olan uzaklığını hesaplıyoruz.
[Link]("Uzaklik ");
[Link](mesafe);
[Link](" cm");
delay(500);
if (mesafe<=10)
{
[Link](90);
[Link]("motor çalısıyor ");
}
else {
[Link](0);
}}