Arduino’nun en ünlü sensörlerinden biri olan HC-SR04 Ultrasonik Mesafe Sensörü radar benzeri bir yöntemle mesafe ölçümü yapabiliyor. Sensörü kullanmak için pek çok hazır kütüphane yer alıyor. Bu yazıda mesafe ölçümünü kütüphane kullanmadan yapacağız.
Sensör tamamen bizim kontrolümüzde çalışabiliyor. Trig bağlantısını etkinleştirdiğimizde yayına başlıyor ve yankı geri döndüğünde Echo bağlantısı aktif oluyor. Bize de gönderdiğimiz sinyalin ne zaman geri döndüğünü hesaplamak kalıyor.
HC-SR04 insan kulağının duyamayacağı aralıkta (yaklaşık 40 kHz) ses frekansı ile çalışıyor. Ses hızı havada, deniz seviyesinde ve 20 °C sıcaklıkta saniyede 343,2 metre yol alıyor. Bu hız havadaki nem ve sıcaklıkla küçük değişim gösteriyor.
Öncelikle devremizi kuralım, ardından sketch koduna geçelim.
Arduino’nun delayMicroseconds() komutunu kullanarak hassas ölçümler yapabileceğiz. Trig pinini 10 mikrosaniye için etkinleştirdikten sonra kapatıp pulseIn() komutuyla dinlemeye geçiyoruz. Bu komut atandığı pin değişene kadar geçen süreyi hesaplıyor.
Süreyi mikrosaniye olarak elde ettikten sonra işimiz matematikten fazlası değil. Öncelikle sesin bir mikrosaniyede kaç santimetre yol aldığını bilmemiz gerekiyor: 343,2 x 100 /1000000 = 0.03432.
Radar sistemlerinde sinyal gönderilir, engele çarpar ve geri döner. Yani aralarındaki mesafeyi iki kez kat etmiş olur. Yani biz de bulduğumuz mesafe değerini 2’ye bölmeliyiz.
Aşağıdaki sketch tüm bu hesaplamaları herhangi bir kütüphane kullanmadan yapıyor ve elde ettiği sonucu Seri Port Ekranı’nda yayınlıyor.
Arduino’da iyi olmak için öncelikle elektronikte iyi olmak gerekir. Türkiye’nin en iyi temel elektronik eğitim seti ARDUINO ÖNCESİ TEMEL ELEKTRONİK EĞİTİM VE DENEY SETİ‘ni keşfedin. Gereksiz bilgilerden arındırılmış basit ve eğlenceli anlatımla ELEKTRONİK öğrenin ve Arduino’ya METE HOCA farkıyla güçlü başlayın!
Sketch kodunu kopyalamak için pencerenin sağ üst köşesindeki butona tıklayabilir veya buraya tıklayarak ZIP dosyası olarak indirebilirsiniz.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
/* HC-SR04 Ultrasonik Mesafe Sensörü Arduino Kütüphanesi Kullanmadan Nasıl Kullanılır? HC-SR04 Ultrasonik Mesafe Sensörünün detaylı açıklaması ve örnek projelerini web sitemizde bulabilirsiniz. Mete Hoca https://www.metehoca.com/ */ int echo = 2; // Sensörün Echo pini int trig = 3; // Sensörün Trig pini float sure, mesafe; // Kullanacağımız değişkenleri tanımlıyoruz void setup() { pinMode(trig, OUTPUT); // Trig pinini çıkış olarak ayarlıyoruz pinMode(echo, INPUT); // Echo pinini giriş olarak ayarlıyoruz Serial.begin(9600); // Seri Port Ekranı'nı başlatıyoruz } void loop() { digitalWrite(trig, LOW); // Trig pininin kapalı olduğundan emin olalım delayMicroseconds(5); // Kısa bir süre bekleyelim digitalWrite(trig, HIGH); // Trig pinini etkinleştirelim delayMicroseconds(10); // Sensörün çalışması için ona zaman verelim digitalWrite(trig, LOW); // Trig pinini kapatalım sure = pulseIn(echo, HIGH); // Geri dönen yankının süresini kaydedelim mesafe = sure * 0.03432 / 2; // Ses hızını ve gidiş dönüş yolunu hesaplayarak // gerçek mesafe değerini bulalım Serial.print("Mesafe: "); Serial.print(mesafe, 1); // Bulduğumuz mesafe değerini virgülden sonra // 1 basamak olacak şekilde ekrana yazdıralım Serial.println(" cm"); delay(100); // Ölçümler arasında kısa bir süre bekleyelim } |