Arduino

Arduino’da Ultrasonik Mesafe Bulucu Nasil Kurulur?

Ultrasonik mesafe bulucular mesafeyi ölçen eğlenceli küçük modüllerdir. Nesneye olan mesafeyi bulmak veya hareket dedektörü gibi sensörün yakınında bir şey olup olmadığını tespit etmek için bunları kullanabilirsiniz. Navigasyon, nesne önleme ve ev güvenliğini içeren projeler için idealdir. Mesafeyi ölçmek için ses kullandıkları için, karanlıkta ışıkta olduğu gibi çalışırlar. Bu derste kullanacağım ultrasonik mesafe bulucu , 2 cm’den 4oo cm’ye kadar olan mesafeleri ± 3 mm doğrulukla ölçebilen HC-SR04’tür.

SES HIZI

Ultrasonik mesafe bulucular, bir nesneye çarpana kadar havada dolaşan bir ultrasonik ses darbesi yayarak mesafeyi ölçer. Bu ses darbesi bir nesneye çarptığında, nesneden yansır ve ultrasonik menzil bulucusuna geri döner. Ultrasonik mesafe bulucu, ses darbesinin sensörden ve geri gidiş dönüş yolculuğunda ne kadar süreceğini ölçer. Daha sonra Arduino’ya sonik nabzın seyahat etmesinin ne kadar sürdüğü hakkında bilgi veren bir sinyal gönderir.

Ultrasonik darbenin nesneye ileri geri gitmesi için geçen süreyi ve ses hızını bilen Arduino, nesneye olan mesafeyi hesaplayabilir. Sesi, mesafeyi ve katedilen zamanı gösteren formül:

Ultrasonik darbenin nesneye ileri geri gitmesi için geçen süreyi ve ses hızını bilen Arduino, nesneye olan mesafeyi hesaplayabilir. Sesi, mesafeyi ve katedilen zamanı gösteren formül:

Bu formülü yeniden düzenleyerek, mesafeyi hesaplamak için kullanılan formülü elde ederiz:

Zaman değişkeni, ultrasonik darbenin sensörü terk etmesi, nesneden sekmesi ve sensöre geri dönmesi için geçen süredir. Biz sadece nesneye mesafe, nesneye değil mesafeyi ölçmek gerekir çünkü biz aslında yarısında bu kez bölmek ve sensöre arka. Hız değişkeni, sesin havadan geçtiği hızdır.

Havadaki ses hızı sıcaklık ve nem ile değişir. Bu nedenle, mesafeyi doğru bir şekilde hesaplamak için ortam sıcaklığını ve nemi dikkate almamız gerekir. Hesaplanan sıcaklık ve nem ile havadaki ses hızı için formül:

ULTRASONİK MESAFE BULUCU MESAFEYİ NASIL ÖLÇER?

Ultrasonik mesafe bulucunun önünde iki metal silindir vardır. Bunlar dönüştürücülerdir. Transdüserler mekanik kuvvetleri elektrik sinyallerine dönüştürür. Ultrasonik mesafe bulucuda, bir verici dönüştürücü ve alıcı dönüştürücü vardır. İleten dönüştürücü bir elektrik sinyalini ultrasonik darbeye dönüştürür ve alıcı dönüştürücü yansıyan ultrasonik darbeyi tekrar elektrik sinyaline dönüştürür. Telemetre arkasına bakarsanız, MAX3232 etiketli verici dönüştürücünün arkasında bir IC göreceksiniz. Bu, verici dönüştürücüyü kontrol eden IC’dir. Alıcı dönüştürücünün arkasında LM324 etiketli bir IC bulunur. Bu, alıcı dönüştürücü tarafından üretilen sinyali Arduino’ya iletecek kadar güçlü bir sinyale yükselten dörtlü bir Op-Amp’tir.

HC-SR04 ultrasonik mesafe bulucunun dört pimi vardır: Vcc ,  Trig , Echo ve GND . Vcc pimi ultrasonik sinyaller oluşturmak için güç tedarik etmektedir. GND pimi toprak hattına bağlanır. Trig Arduino ultrasonik atımı başlatmak için bir sinyal göndermektedir pimdir. Yankı ultrasonik telemetre Arduino ultrasonik darbesi tarafından alınan yolculuk süresi hakkında bilgi göndermektedir pimdir.

Bir mesafe ölçümü başlatmak için Trig pinine en az 10 µs için 5V yüksek sinyal göndermemiz gerekir . Modül bu sinyali aldığında, verici dönüştürücüden 40 KHz frekansta 8 darbe ultrasonik ses yayar. Daha sonra yansıyan sinyal için alıcı transdüseri bekler ve dinler. Bir nesne menzil dahilindeyse, 8 darbe sensöre geri yansıtılır. Nabız alıcı dönüştürücüye çarptığında, Yankı pimi yüksek voltaj sinyali verir.

Bu yüksek voltaj sinyalinin uzunluğu , 8 atımın verici transdüserden alıcı transdüsere ​​geri gitmesi için geçen toplam süreye eşittir . Bununla birlikte, ses darbesinin aldığı yolun mesafesini değil, yalnızca nesneye olan mesafeyi ölçmek istiyoruz. Bu nedenle, yukarıdaki d = sxt denklemindeki zaman değişkenini elde etmek için bu süreyi ikiye böleriz. Ses (ler) in hızını zaten bildiğimiz için mesafe denklemini çözebiliriz.

SERİ MONİTÖR ÇIKIŞI İÇİN ULTRASONİK MESAFE BULUCU KURULUMU

Seri monitörünüze mesafe ölçümleri verecek basit bir ultrasonik mesafe bulucu yaparak başlayalım. Okumaları bunun yerine bir LCD’ye çıkarmak istiyorsanız, sonraki bölüme göz atın. Her şeyi bağlamak kolaydır, sadece şu şekilde bağlayın:

Her şeyi bağladıktan sonra, bu programı Arduino’ya yükleyin:

#define trigPin 10
#define echoPin 13

void setup() {
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  float duration, distance;
  digitalWrite(trigPin, LOW); 
  delayMicroseconds(2);
 
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  duration = pulseIn(echoPin, HIGH);
  distance = (duration / 2) * 0.0344;
  
  if (distance >= 400 || distance <= 2){
    Serial.print("Distance = ");
    Serial.println("Out of range");
  }
  else {
    Serial.print("Distance = ");
    Serial.print(distance);
    Serial.println(" cm");
    delay(500);
  }
  delay(500);
}
KODUN AÇIKLANMASI
  • Satır 11: Değişkenlerin süresini ve mesafesini bildirir .
  • 12. ve 13. satırlar:  Program döngüsünün başında kapatıldığından emin olmak için trigPin’e 2 µs DÜŞÜK sinyal gönderir .
  • Hat 15-17:  Verici transdüktörden gönderilen sekiz 40 KHz ultrasonik darbenin sekansını başlatmak için trigPin’e 10 µs YÜKSEK bir sinyal gönderir .
  • Hat 19: tanımlar süresi herhangi bir yüksek girdi sinyalinin (us olarak) uzunluğu değişken tespit echoPin . Yankı pim çıkış sensöre nesne ve geri seyahati salınan ultrasonik atımı alır zamana eşittir.
  • Satır 20: Mesafe değişkenini, sürenin (d = sxt cinsinden süre) saniye başına metreden µs başına santimetreye (0.0344 cm / µs) dönüştürülen ses hızıyla çarpımı olarak tanımlar .
  • Çizgiler 22-24: Mesafe 400 cm’den büyük veya eşitse veya 2 cm’den küçük veya eşitse, seri monitörde “Mesafe = Aralık dışı” değerini görüntüleyin.
  • 26-30. Satırlar: Mesafe ölçümü aralık dışında değilse, seri monitörde 20. satırda hesaplanan mesafeyi 500 ms boyunca görüntüleyin.

LCD ÇIKIŞLI ULTRASONİK MESAFE BULUCU

Mesafe ölçümlerini 16X2 LCD’ye çıkarmak istiyorsanız , telemetre ve LCD’yi Arduino’nuza bağlamak için bu şemayı izleyin:

Arduino Ultrasonik Mesafe Bulucu ve LCD Şeması

LCD’yi bağlamak için daha fazla yardıma ihtiyacınız varsa , Arduino’da LCD kurulumu ile ilgili diğer eğiticimizi deneyin . Her şey bağlandığında, bu kodu Arduino’ya yükleyin.

#include <LiquidCrystal.h>
#define trigPin 10
#define echoPin 13

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}

void loop() {
  float duration, distance;
  digitalWrite(trigPin, LOW); 
  delayMicroseconds(2);
 
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  
  duration = pulseIn(echoPin, HIGH);
  distance = (duration / 2) * 0.0344;
  
  if (distance >= 400 || distance <= 2){
    lcd.print("Out of range");
    delay(500);
  }
  else {
    lcd.print(distance);
    lcd.print(" cm");
    delay(500);
  }
  delay(500);
  lcd.clear();
}

LCD Çıkışlı Arduino'da Ultrasonik Mesafe Bulucu

What is your reaction?

Excited
0
Happy
0
In Love
0
Not Sure
0
Silly
0

You may also like

Leave a reply

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

More in:Arduino