ARDUİNO İLE HC-SR04 MESAFE SENSÖRÜ KULLANIMI VE KODLARI
Arduino ile kullanabileceğiniz birçok mesafe sensörü vardır. Örnek olarak:
- Ultrasonik sensörler: HC-SR04, SRF05, SRF08, gibi
- Lazer sensörler: VL53L0X, gibi
- IR sensörler: GP2Y0A21YK0F, GP2D120XJ00F, gibi
- ToF sensörler: VL6180X, gibi
- LIDAR sensörler: RPLIDAR, gibi
Bu sensörlerin her biri farklı özelliklere sahiptir ve farklı uygulamalar için kullanılabilir. Örneğin, ultrasonik sensörler geniş bir alana sahipken, LIDAR sensörler daha yüksek hassasiyet sunabilir. Hangi sensörü kullanacağınız, projenizin gereksinimlerine ve hedeflenen özelliklere göre belirlenmelidir.
HC-SR04 MESAFE SENSÖRÜ İLE NASIL PROJELER YAPILABİLİR?
HC-SR04 sensörü ve Arduino ile birçok farklı proje yapmak mümkündür. Örnek olarak:
- Mesafe ölçüm cihazı: Sensörü kullanarak çevredeki nesnelerin mesafesini ölçebilir ve bu verileri LCD ekranında gösterebilirsiniz.
- Park sensörü: Sensörü aracının arkasına monte ederek aracın arkasındaki mesafeyi ölçerek park etme işlemlerinde size yardımcı olabilir.
- Engelden kaçan robot: Sensörü kullanarak robotun çevresindeki engelleri algılayarak onların önünden kaçmasını sağlayabilirsiniz.
- Otomatik kapı açma sistemi: Sensörü kullanarak bir kapının önünde duran kişinin mesafesini ölçerek kapıyı otomatik olarak açabilirsiniz.
- Mesafe takip sistemi: Sensörü kullanarak belirli bir nesnenin hareketini izleyebilir ve bu verileri grafiklerde gösterebilirsiniz.
- Mesafe ölçümü ile kontrol edilen oyunlar : Örneğin bir tavla oyununda tavla taşlarının pozisyonlarını ölçerek oyunun oynanmasını sağlamak
Bu örnekler sadece birkaçıdır ve Arduino ve HC-SR04 sensörü ile yapabileceğiniz birçok farklı proje var. Özellikle bu sensörlerin kullanımı kolay ve ucuz olması nedeniyle projelerde sıklıkla kullanılır.

HC-SR04 MESAFE SENSÖRÜ NASIL ÇALIŞIR
HC-SR04 sensörü, bir ultrasonik sensördür ve mesafeyi ölçmek için kullanılır. Bu sensör, bir dalga emitter (gönderici) ve bir alıcı içerir. Sensör üzerindeki gönderici, bir ultrasonik dalga gönderir ve bu dalga bir yüzeye çarptığında geri yansır. Alıcı, yansıyan dalganın geri gelmesini algılar ve bu sürenin ölçülmesiyle mesafeyi hesaplar.
Sensör kullanımı oldukça basittir. HC-SR04 sensörüne gerekli güç ve veri bağlantılarını yaptıktan sonra, sensörün gönderici dalga emitter’ına bir trigger sinyali gönderirsiniz. Gönderici dalga emitter’ı bu sinyal ile bir ultrasonik dalga yayar. Bu dalga yansıdığında alıcı tarafından algılanır ve geri gelen sinyal yoluyla sensörün Echo pin’ine geri gönderilir. Bu geri gelen sinyal yoluyla algılanan süre ile mesafeyi hesaplayabilirsiniz.
Mesafeyi hesaplamak için sürenin kullanılmasının formülü :
mesafe = (süre / 2) * ses hızı
Bu sensörler genellikle çok ucuz ve kullanımı kolay olduğu için arduino projelerinde sıklıkla kullanılır.
HC-SR04 MESAFE SENSÖRÜNÜ ARDUİNOYA BAĞLAYALIM:
HC-SR04 sensörünü Arduino’ya bağlamak için aşağıdaki adımları izleyebilirsiniz:
- Güç bağlantılarını yapın: HC-SR04 sensörünün +VCC ve GND pini, Arduino’nun +5V ve GND piniyle bağlayın.
- Veri bağlantılarını yapın: HC-SR04 sensörünün TRIG pin’i, Arduino’nun bir digital pin’ine bağlayın. HC-SR04 sensörünün ECHO pin’i ise başka bir digital pin’ine bağlayın.
- Arduino kodunu yazın: Arduino kodunuzda, sensörün TRIG pin’ine trigger sinyali göndermek için digitalWrite() fonksiyonunu kullanabilirsiniz. ECHO pin’inden gelen sinyali okumak için pulseIn() fonksiyonunu kullanabilirsiniz. Bu sinyal yoluyla algılanan süreyi kullanarak mesafeyi hesaplayabilirsiniz
- Arduino’yu sensörle birlikte bağlayın ve kodu yükleyin.
- Test etmek için, sensörün önüne bir yüzey koyun ve sensörün ölçtüğü mesafeyi seri monitörde veya bir LCD ekranında gözlemleyin.
Not: PulseIn() fonksiyonu arduino uno gibi ATmega328P mikrodenetleyicili arduino modellerinde çok büyük miktarda bellek kullanır. Bu nedenle bu fonksiyonun yerine Interrupt veya Timer kullanılması daha verimli olabilir.
HC-SR04 MESAFE SENSÖRÜ VE 1602 LCD EKRAN UYGULAMASI İÇİN ARDUİNO KODLARI
aşağıdaki Arduino kodu HC-SR04 sensörünü kullanarak mesafeyi ölçer ve 1602 LCD ekranında gösterir:
////////////////////
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2); // LCD bağlantıları (RS, E, D4, D5, D6, D7)
const int trigPin = 8; // TRIG pin’i
const int echoPin = 9; // ECHO pin’i
void setup() {
lcd.begin(16, 2); // LCD’nin boyutunu belirleyin
pinMode(trigPin, OUTPUT); // TRIG pin’i çıkış olarak ayarlayın
pinMode(echoPin, INPUT); // ECHO pin’i giriş olarak ayarlayın
}
void loop() {
long duration, distance; // süre ve mesafe değişkenleri
digitalWrite(trigPin, LOW); // TRIG pin’i sıfır yap
delayMicroseconds(2); // 2us bekle
digitalWrite(trigPin, HIGH); // TRIG pin’i 1 yap
delayMicroseconds(10); // 10us bekle
digitalWrite(trigPin, LOW); // TRIG pin’i sıfır yap
duration = pulseIn(echoPin, HIGH); // ECHO pin’den süreyi oku
distance = (duration/2) / 29.1; // mesafeyi hesapla
lcd.setCursor(0, 0); // LCD’de imleci belirle
lcd.print(“Distance: “); // “Distance:” yazdır
lcd.print(distance); // mesafeyi yazdır
lcd.print(” cm”); // ” cm” yazdır
delay(500); // 500ms bekle
}
////////////////////
Bu kod, HC-SR04 sensörünü kullanarak mesafeyi ölçer ve 1602 LCD ekranında gösterir. Sensörün TRIG pin’i 8. pinde ve ECHO pin’i 9. pinde bağlı olduğu varsayılmıştır. Bağlantılarınız farklı olabilir, o zaman pin numaralarını kodunuzda değiştirmeniz gerekecektir.
Kodu yükledikten sonra, sensörün önünde bir yüzey koyun ve sensörün ölçtüğü mesafeyi LCD ekranında gözlemleyin.
BU KODDAKİ 29.1 NE DEMEKTİR
Kodun içinde, mesafe hesaplanırken kullanılan formülde “(duration/2) / 29.1” kullanılmıştır. Bu değer, ses hızının cm/microsn olarak ifade edildiği bir katsayıdır. Ses hızı genellikle ortalama olarak 343m/s olarak kabul edilir. Ancak, hava sıcaklığı, nem ve basınç gibi faktörler ses hızını etkileyebilir. Bu nedenle, sensörün ölçtüğü mesafeyi doğru bir şekilde hesaplamak için ses hızının doğru değerini kullanmak önemlidir.
29.1, ses hızının cm/microsn olarak ifade edildiği katsayıdır. Bu katsayı, ses hızının cm/microsn olarak ifade edildiği bir değerdir. Bu değer kullanılarak hesaplanan mesafe ses hızının cm/microsn olarak ifade edildiği bir değerdir.
Ses hızının cm/microsn olarak ifade edildiği katsayı, sensörün ölçtüğü sürenin cm cinsinden mesafeyi verir. Bu katsayı, sensörün ölçtüğü süre ile çarpılarak mesafe hesaplanır. Bu katsayının doğru değerini kullanmak, sensörün ölçtüğü mesafenin doğru bir şekilde hesaplanmasını sağlar.