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ı |
#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. :)
0 yorum:
Yorum Gönder