HC-SR04 ile yaptığımız LED bar ile mesafe gösterme projemize buradan ulaşabilirsiniz!
HC-SR04 mesafe sensörü Arduino projelerinde oldukça sık kullanılan bir sensördür. Fiyatının uygun olması, kolay kullanılabilir olması ve menzilinin uzun olması sebebiyle oldukça sık tercih edilmektedir. Sensör ultasonik (40KHz) ses dalgaları gönderip bu dalgaların yansıyıp geri gelmesi arasındaki süreyi bize vermektedir. Bu süre ile de mesafe hesaplanabilmektedir. Trig pininden 2 mikrosaniyelik bir pulse verilerek sensör tetiklenir. Sensör art arda 8 adet ses dalgası gönderir ve bu ses dalgalarının geri dönüş süresi kadar echo pinini aktif tutar. Sensörün çalışma açısı oldukça düşüktür. Ayrıca karşısındaki engel açılı bir şekilde duruyorsa ses dalgalarının yansınası doğrudan gelmeyeceği için yanlış ölçümler yapmaktadır. Bu yüzden uygulamada test edebilmek için düz bir yüzey kullanınız.
Mesafe Hesabı
Mesafe ölçüm hesabı yapılırken ses hızından yararlanılır. Echo pininden genellikle mikrosaniye mertebesinde okuma yapılır. Ses hızı ise 0.034 cm/μs’dir. Hesaplanan süre sesin gidiş ve dönüşü için olduğundan “echo” pininden okunan süre ikiye bölünür. Devamında 0.034 ile çarpılırsa cm cinsinden mesafe hesaplanmış olur. Sonuç olarak:
mesafe = süre*0.034/2 olur.
Sensör Pinleri
- Vcc => (+) gerilim pinidir. 5V verilmelidir.
- Trig => Pulse verilen pindir.
- Echo => Yansıma süresinin okunduğu pindir.
- Gnd => Toprak.
Malzeme Listesi
- 1 x Arduino (UNO veya MEGA)
- 1 x HC-SR04 Mesafe Sensörü
- 4 x Dişi-Erkek Jumper
Devre Şeması
Arduino Kodları
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 |
#define HC_trig 2 //Trig pininin bağlı olduğu pin #define HC_echo 3 //Echo pininin bağlı olduğu pin uint16_t sure; //Okunan süre için değişken uint16_t mesafe; //Hesaplanan mesafe için değişken void setup() { Serial.begin (9600); //Seri haberleşme başlatılır pinMode(HC_trig, OUTPUT); //Trig pini çıkış olarak ayarlanır pinMode(HC_echo, INPUT); //Echo pini giriş olarak ayarlanır digitalWrite(HC_trig, LOW); //Trig bacağı LOW yapılır } void loop() { digitalWrite(HC_trig, LOW); //Trig pini 0'a çekilir.(Zorunlu değildir sadece emin olmak için.) delayMicroseconds(2); //2 uS beklenir digitalWrite(HC_trig, HIGH); //Trig pini 1'e çekilir delayMicroseconds(10); //10 uS 1'de tutulur digitalWrite(HC_trig, LOW); //Trig bacağı 0'a çekilir ve sensör tetiklenmiş olur sure = pulseIn(HC_echo, HIGH); //pulseIN fonksiyonu ile Echo pininin kaç uS '1' olduğu ölçülür mesafe = sure*0.034/2; //Süreden mesafe hesaplanır Serial.print("mesafe = "); //Mesafe seri porttan gösterilir Serial.print(mesafe); Serial.println("cm"); delay(100); } |
Siz de HC-SR04 mesafe sensörünü artık Arduino projelerinde rahatlıkla kullanbilirsiniz. Sorunuz olursa yorumlarda belirtebilirsiniz. İyi Eğlenceler!!