HC-SR04+Buzzer+ Arduino



Bloguma paylaşcağım ilk projenin ne olması gerektiği için baya bir düşündüm. Blog açmadan önce yaptığım bir çalışmayı mı yazsam ya da yeni bir çalışmamı gerçekleştirsem diye. En son bu sene labirent robotu projesinde kullanığımız ultrasonic mesafe sensörü ile başlamaya ama buna buzzer ekleyerek ufak bir park sensörü yapmaya karar verdim.
Hc-sr04 sensörümüz 40 Khz frekansında ultrasonik sinyaller(sesler) üretmektedir.Bu sinyalleri insan kulağı algılayamaz.



Sensörün üzerinde 4 adet pin var.Bunlar; VCC(besleme),Trig,Echo,GND(toprak). Sensörün çalışma prensibi kısaca trig bacağına küçük frekansta(10 mikro saniye gibi) kare dalgalar gönderiyoruz. Sensör kendi içinde sinyal üretiyor. Bu sinyal farklı ortamlarda farklı hızlarda yol alıyor. Sinyal bir cisme çarpıp tekrar sensöre doğru yol alıyor. Sensöre veri geldiğinde echo bacağı lojik-1 oluyor. Eğer ultrasonik sensör ile mesafe ölçmek istiyorsak yapmamız gereken echo bacağının kaç defa lojik-


olduğunu bulmak.
Sensör hakkında bilgi verdikten sonra bağlantı şeklimizi gösterelim.
Fritzing(http://fritzing.org/) çizdiğim şekilde bağlantılarımız bu şekilde.
Projenin kodu ise şöyle;

  • /*

    1.                   Gürkan YARAR
    2. Bağlantılar:
    3. trig=2
    4. echo=4
    5. buzzer=6
    6. */


    7.  
    8. const int trigPin = 2;
    9. const int echoPin = 4;
    10. const int buzzerPin=6;
    11.  
    12. void setup() {
    13.   Serial.begin(9600);
    14.   // seri haberleşmeyi baslatiyoruz
    15.   
    16.   pinMode(trigPin, OUTPUT);
    17.   pinMode(buzzerPin, OUTPUT);
    18.   pinMode(echoPin, INPUT);
    19. }
    20.  
    21. void loop()
    22. {
    23.   long duration, inches, cm;
    24.   digitalWrite(trigPin, LOW);
    25.   delayMicroseconds(2);
    26.   digitalWrite(trigPin, HIGH);
    27.   delayMicroseconds(10);
    28.   digitalWrite(trigPin, LOW);
    29.  
    30.   // triq bacağına kare dalgaları yolluyoruz
    31.   
    32.   duration = pulseIn(echoPin, HIGH);
    33.  // pulsIn komutuyla veri alıyoruz
    34.  // cm ve inc cinsinden dönüşümleri yapıyoruz
    35.   inches = microsecondsToInches(duration);
    36.   cm = microsecondsToCentimeters(duration);
    37.   
    38.   Serial.print(inches);
    39.   Serial.print("in, ");
    40.   Serial.print(cm);
    41.   Serial.print("cm");
    42.   Serial.println();
    43.   if( cm <=5) {              // eğer cm değeri 5 cm'in altındaysa uyarı alıyoruz
    44.     tone(buzzerPin,2000);
    45.   }
    46.   else {
    47.     noTone(buzzerPin);
    48.   }
    49.   
    50.   delay(100);
    51. }
    52.  
    53. long microsecondsToInches(long microseconds)
    54. {

    55.   return microseconds / 74 / 2;
    56. }
    57.  
    58. long microsecondsToCentimeters(long microseconds)
    59. {
    60.   
    61.   return microseconds / 29 / 2;
    }















    Bu çalışmada ufak bir park sensörü yapmış olduk. Bu yazı ile ilgili kodu ve bağlantı şemasını buradan edinebilirsiniz.(https://www.dropbox.com/sh/u3fhnfaxi2fhbu4/vP8koICm9F
             Özellikle robotik ile uğraşan arkadaşlar bu sensörü kullanmalarını tavsiye ederim. Hassasiyeti              Sharp sensörüne göre daha iyidir.
             Bundan sonra ki çalışmam LCD kullanmı ile olur diye tahmin ediyorum.
             Her türlü olumlu olumsuz eleştirinizi aktarırsanız sevinirim.
    grknyrr@gmail.com
    https://www.facebook.com/gurkan.yarar.35

    3 yorum: (+add yours?)

    Unknown dedi ki...

    tesekkur ederiz!

    Unknown dedi ki...

    beceremedim

    aybicedemirci dedi ki...

    tam da istediğim gibi özgün bi kod.deniyorum hemen

    Yorum Gönder