Gerekli malzemeler:

Buzzer dediğimiz devre elemanını ufak bir hoparlör olarak düşünebiliriz. Hoparlörler kadar yüksek ve detaylı ses üretemeseler de, “bip” leme seslerini çıkartmada oldukça başarılıdırlar.

HC-SR04, robotik projelerde Arduino ile kullanılan en popüler sensörlerden birisidir. Kullanımı oldukça kolaydır ve program kısmı düzgün olduğu sürece 2cm – 400cm arası uzaklıkları düzgün bir şekilde ölçebilmektedir. Çalışma prensibi ise şu şekildedir: Sensörün Trig pininden uygulanan sinyal 40 kHz frekansında ultrasonik bir ses yayılmasını sağlar. Bu ses dalgası herhangi bir cisme çarpıp sensöre geri döndüğünde, Echo pini aktif hale gelir. Biz ise bu iki sinyal arasındaki süreyi ölçerek -yani sesin yankısını algılayarak- cismin sensörden uzaklığını tespit edebiliriz.

Devre şemamız bu şekilde:

buzzer+hcsr04_bb

Devreyle beraber kullanacağımız kodumuz:

#define echoPin 6
#define trigPin 7
#define buzzerPin 8

int maximumRange = 50;
int minimumRange = 0;

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

void loop()
{
  int olcum = mesafe(maximumRange, minimumRange);
  melodi(olcum * 10);
}

int mesafe(int maxrange, int minrange)
{
  long duration, distance;
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  duration = pulseIn(echoPin, HIGH);
  distance = duration / 58.2;
  delay(50);
  if (distance >= maxrange || distance <= minrange)
    return 0;
  return distance;
}

int melodi(int dly)
{
  tone(buzzerPin, 440);
  delay(dly);
  noTone(buzzerPin);
  delay(dly);
}

Bu kod sayesinde mesafe sensörümüz 50 cm’ye kadar uzaklıktaki engelleri algıladığında, cismin uzaklığına göre artan sıklıklarla bipleyen bir park sensörü yapmış olacağız.

94 Yorumlar

  1. buzzer yerine servo motor koyarsam programda ne gibi bir degisiklige gitmem gerekli.
    Daha once HC-SR04 ve servo motoru ayri ayri kullandim derste ama ikisini nasil kullanacagimi cozemedim. Yardimci olabilirmisniz?

  2. Merhaba ben bu projeyi yaptım birebir aynısı fakat sensörün önüne cisim koyunca ses çıkmıyor. Fakat devreden çok az bir tonda tık tık sesi geliyor

  3. ÖNEMLİ!!!
    anlatılanları bire bir uyguladım. direnç kullanınca buzzerdan çok zayıf bir ses geliyor. direnci çıkartınca buzzer normal ses çıkartıyor ama normalde olması gereken belirli periyotlarla bip bip yapacağına sadece biiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiiip diye sonu gelmeyen bir çınlama duyuluyor. ne yapmam gerekir

      • Selam cümleten iyi akşamlar Benim sorum olacak Mesafe sensörü yazılımı yazdım ama sorun cıktı. int olcum = mesafe(maxsimumRange, mımımumRange); nasıl aşarım sorunu LÜTFEN yardım. Saygılarımla.

          • Arduino:1.8.6 Hourly Build 2018/01/03 03:33 (Windows 7), Kart:”Arduino/Genuino Uno”

            Çalışmanız programın 2738 bayt (8 %) saklama alanını kullandı. Maksimum 32256 bayt.
            Global değişkenler belleğin 32 byte kadarını (1%) kullanıyor. Yerel değişkenler için 2016 byte yer kalıyor. En fazla 2048 byte kullanılabilir.
            Taslak yüklenirken bir hata oluştu

            This report would have more information with
            “Show verbose output during compilation”
            option enabled in File -> Preferences.
            neden u hata

          • aynı orun bende de oldu ne yapmalıyım int olcum = mesafe(maximumRange, minimumRange); hata veriyor ne yapmalıyım

  4. LÜTFEN YARDIM EDİN
    Arduino:1.8.0 (Windows 10), Kart:”Arduino/Genuino Uno”

    Çalışmanız programın 2738 bayt (8 %) saklama alanını kullandı. Maksimum 32256 bayt.
    Global değişkenler belleğin 32 byte kadarını (1%) kullanıyor. Yerel değişkenler için 2016 byte yer kalıyor. En fazla 2048 byte kullanılabilir.
    avrdude: ser_open(): can’t open device “\\.\COM1”: Sistem belirtilen dosyayı bulamıyor.

    Karta yüklenirken sorun oluştu. Tavsiyeler için http://www.arduino.cc/en/Guide/Troubleshooting#upload adresine göz atabilirsiniz.

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    • Arduino’nuza kod yüklemeden önce doğru COM portunu seçmemişsiniz. Arduino sürücülerinin doğru yüklendiğinden emin olun ve aşağıda gösterilen menü altından doğru com portunu seçin:

  5. belirtilenleri bire bir uyguladım ama ilk önce kesintisiz bir bip sesi duyuluyor ve yaklaştıkça kesik kesik gelmeye başlıyor.İlk önce 50 cm uzaklıkta bir cisim yoksa sessiz olması gerekmezmi?

    • COM4 veya başka bir numara olması tamamen sizin bilgisayarınız ile alakalıdır. Sizin Arduino’nuzun bağlı olduğu COM portunu seçmelisiniz. Aygıt yöneticisi’ne girip buradan bulmanız da mümkündür:

  6. Merhabalar aynı devreyi şemadaki gibi kurmama rağmen gücü verdiğim zaman arduino nun ışıkları düşük seviyede yanıp sönüyor, bilgisayara taktığımda ise tanımıyor. Ardunio üstündeki sensöre bağlı olan jumperları çıkarınca bilgisayar arduino yu algılıyor. Sebebi nedir sizce?

    • Bağlantılarınızdan kaynaklı bir sorun olabilir. Bağlantılarınızdan emin iseniz, kullandığınız sensörün bozuk olma ihtimali de mevcuttur.

  7. Bu yazılımı mblock ta aynısını nasıl yapabilirim yardımcı olabilirmisiniz şemasını yazıp atabilirmisiniz :))

  8. merhaba ben buzzerr yerine kulaklık takmak istiyorum kulaklığı nasıl bağlayabilirim ve kodda ne gibi değişiklik yapmam gerekiyor

    • Kulaklığın empedansı buzzer’a göre daha yüksek olacağından büyük ihtimalle oldukça düşük seviyede ses çıkışı alacaksınız. Bu durumun önüne geçmek için bir amfi kartı kullanabilirsiniz.

  9. Merhaba ikinci kırmızı jumperı takınca arduinonun ışıkları sönüyor çıkarınca tekrar yanıyor ben ne yapacağım neden böyle oluyor

    • Bahsettiğiniz durum ters gerilim veya kısa devreye benziyor. HC-SR04 modülünüzdeki VCC ve GND pinlerinin ters olmadığına dikkat ediniz.

        • Şey az önce dediğim şey düzeldi şimdi ben bide yaklaştıkça ledin yanıp sönmesi ve uzaklanşınca tamamen sönmesini istiyorum onu nasıl yapıcam

          • Bu konuyu araştırdım.

            Şöyle bir şey yapabilirsiniz 🙂

            malzemeler:

            ARDUINO UNO
            4 ADET LED (istediğiniz renk)
            5 ADET 220 OHM DİRENÇ
            1 ADET BUZZER
            BREAD BOARD
            YETERİ KADAR JUMPER KABLO (erkek olmasını öneririm)

            FRİTİZİNG PROJESİ (veya devre şeması):

            Buradan indirin 🙂 :
            https://www.sendspace.com/file/n39cb5

            kopyala yapıştır

            KODLAR 🙂 🙂 :

            const int trigger_pin = 12;
            const int echo_pin = 13;
            const int aled = 2;
            const int bled = 3;
            const int cled = 4;
            const int dled = 5;
            const int buzzer = 6;
            int sure ;
            int mesafe ;

            void setup() {
            pinMode(aled , OUTPUT);
            pinMode(bled , OUTPUT);
            pinMode(cled , OUTPUT);
            pinMode(dled , OUTPUT);
            pinMode(buzzer , OUTPUT);
            pinMode(trigger_pin , OUTPUT);
            pinMode(echo_pin ,INPUT);
            Serial.begin(9600);

            }

            void loop()
            {
            digitalWrite(trigger_pin , HIGH);
            delayMicroseconds(1000);
            digitalWrite(trigger_pin , LOW);
            sure = pulseIn(echo_pin , HIGH);
            mesafe = (sure/2) / 29.1;

            if (mesafe <= 10)
            {
            digitalWrite(aled , HIGH);
            digitalWrite(buzzer , HIGH);
            delay(250);
            digitalWrite(aled , LOW);
            digitalWrite(buzzer , LOW);
            }
            else if (mesafe <=25)
            {
            digitalWrite(bled , HIGH);
            digitalWrite(buzzer , HIGH);
            delay(500);
            digitalWrite(bled , LOW);
            digitalWrite(buzzer , LOW);
            }
            else if ( mesafe <=50)
            {
            digitalWrite(cled , HIGH);
            digitalWrite(buzzer , HIGH);
            delay(750);
            digitalWrite(cled , LOW);
            digitalWrite(buzzer , LOW);
            }
            else
            {
            digitalWrite(dled , HIGH);
            delay(1000);
            digitalWrite(dled , LOW);

            }
            }

            projeniz böyle

  10. merhaba
    arduino 1.8.2 programını kullanıyorum ve bilgisayarım windows 8 (windows 10 da da denendi)
    Fakat ;
    Çalışmanız programın 2738 bayt (8 %) saklama alanını kullandı. Maksimum 32256 bayt.
    Global değişkenler belleğin 32 byte kadarını (1%) kullanıyor. Yerel değişkenler için 2016 byte yer kalıyor. En fazla 2048 byte kullanılabilir.

    böyle bir hata alıyorum com portu sectim COM6 olarak görüyor bende. Sürücülerim güncel,
    bağlantı kablosunu da değiştirdim hatta sorun karttadır diye yenisini aldım ancak bir türlü düzelmedi.
    Yeni yazılım mı gerekiyor yoksa başka bir çözümü var mı ?
    Şimdiden teşekkürler

  11. denetlediğim zaman Arduino:1.8.1 (Windows XP), Kart:”Arduino/Genuino Uno”

    collect2.exe: error: ld returned 5 exit status

    exit status 1
    Error compiling for board Arduino/Genuino Uno.

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    hatasını alıyorum yardım edin lütfen

  12. Devre enerji geldiği zaman biranda sensör dereye giriyor ve uzun ne olursa olsun 0 cm yazıyor.. Ben cm yaklaştıkca hem led yanancak 15 cm altına
    düştükçe buzzerden ses gelmesini istiyorum .. Ama devreye enerji verilince biranda sensör 0 cm diyor .. nasıl düzeltilir ..

  13. Bu kısımda yazım hatanız var.”üretmeseler” yazılması gereken yere “üremeseler” yazılmış.
    “Buzzer dediğimiz devre elemanını ufak bir hoparlör olarak düşünebiliriz. Hoparlörler kadar yüksek ve detaylı ses üremeseler de, “bip” leme seslerini çıkartmada oldukça başarılıdırlar.”

  14. İyi günler, ben aynı mesafe sensörünü pro mini ile yapmaya çalışıyorum, Bilgisayara bağlıyken normal çalışıyor. Ancak pil bağladığımda önünde engel yokken dahi engel varmış gibi uyarı veriyor.

  15. kali linux 2017.1 versiyonuna nasıl arduinı ıde kurabilirim yada kali linuxun hangi versiyonunda arduino ıde var

  16. merhaba burada vermiş olduğunuz park sensörü devresi,ndeki HC-SR04 ultrasonik mesafe sensörü parçasının yerine endüktif sensörü baglantısı yapılsa olurmu olursa kaç metre mesafeyi okur teşekkürler

    • Malesef dediğiniz şekilde bir kullanım mümkün olmayacaktır. İndüktif sensörler (örn. LJ18A3-8-Z/BY ve LJ12A3-4-Z/BX) metal cisimleri algılamada kullanılır ve algılama mesafeleri ürün açıklamalarında da görebileceğiniz üzere 1cm’den bile kısadır. Ayrıca cisim algılandığında sensörün çıkış pini doğrudan lojik 1 olacaktır, yani mesafeye göre artıp azalan bir sonuç elde etmeniz mümkün değildir.

  17. Arduino:1.8.5 (Windows 8.1), Kart:”Arduino/Genuino Uno”

    C:\Users\Ä°lker\Downloads\Trafik_Lambas__kodu\ultrasonik_park_sensoru.ino: In function ‘void setup()’:

    ultrasonik_park_sensoru:11: error: redefinition of ‘void setup()’

    C:\Users\Ä°lker\Downloads\Trafik_Lambas__kodu\Trafik_Lambas__kodu.ino:5:6: note: ‘void setup()’ previously defined here

    C:\Users\Ä°lker\Downloads\Trafik_Lambas__kodu\ultrasonik_park_sensoru.ino: In function ‘void loop()’:

    ultrasonik_park_sensoru:23: error: redefinition of ‘void loop()’

    C:\Users\Ä°lker\Downloads\Trafik_Lambas__kodu\Trafik_Lambas__kodu.ino:11:6: note: ‘void loop()’ previously defined here
    HATA ALIYORUM !!!
    exit status 1
    redefinition of ‘void setup()’

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

  18. mesafe ölçmesi çok dengesiz belirli santimlerde bir kere ötüyor onun duşında ötmüyor tır tır ses geliyor sorun nedir acaba

  19. Lütfen Yardım Edin HOCAM!!!
    Arduino:1.8.5 (Windows Vista), Kart:”Arduino/Genuino Uno”

    avr-g++: error: CreateProcess: No such file or directory

    exit status 1
    Error compiling for board Arduino/Genuino Uno.

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.
    Bütün herşeyi Yapmama Rağmen Bu Hatayı Veriyor

    • Buzzer’ın + ucunu Arduino’nun 8 numaralı dijital pinine, – ucunu da 100-330 Ohm arası değerinde bir direnç ile GND pinlerinden herhangi birisine bağlayın.

  20. sensördeki ölçümü nasıl sesli duyabilirim kulaklıga mesela 3 metre 2 metre diye nasıl yaparım yardımcı olurmusunuz

  21. Arduino:1.8.5 (Windows 10), Kart:”Arduino/Genuino Uno”

    C:\Users\Bayhantm\Desktop\arduino kodlamalar\sketch_apr02a\park sensori\sketch_apr02a\sketch_apr02a.ino: In function ‘void setup()’:

    sketch_apr02a:8: error: ‘trigPin’ was not declared in this scope

    pinMode(trigPin, OUTPUT);

    ^

    sketch_apr02a:9: error: ‘echoPin’ was not declared in this scope

    pinMode(echoPin INPUT);

    ^

    In file included from sketch\sketch_apr02a.ino.cpp:1:0:

    C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:44:16: error: expected ‘)’ before numeric constant

    #define OUTPUT 0x1

    ^

    C:\Users\Bayhantm\Desktop\arduino kodlamalar\sketch_apr02a\park sensori\sketch_apr02a\sketch_apr02a.ino:10:20: note: in expansion of macro ‘OUTPUT’

    pinMode(buzzerPin OUTPUT);

    ^

    sketch_apr02a:10: error: too few arguments to function ‘void pinMode(uint8_t, uint8_t)’

    pinMode(buzzerPin OUTPUT);

    ^

    In file included from sketch\sketch_apr02a.ino.cpp:1:0:

    C:\Program Files (x86)\Arduino\hardware\arduino\avr\cores\arduino/Arduino.h:133:6: note: declared here

    void pinMode(uint8_t, uint8_t);

    ^

    C:\Users\Bayhantm\Desktop\arduino kodlamalar\sketch_apr02a\park sensori\sketch_apr02a\sketch_apr02a.ino: In function ‘void loop()’:

    sketch_apr02a:18: error: ‘meleodi’ was not declared in this scope

    meleodi(olcum*10);

    ^

    C:\Users\Bayhantm\Desktop\arduino kodlamalar\sketch_apr02a\park sensori\sketch_apr02a\sketch_apr02a.ino: In function ‘int mesafe(int, int)’:

    sketch_apr02a:23: error: ‘trigPin’ was not declared in this scope

    digitalWrite(trigPin,LOW);

    ^

    sketch_apr02a:28: error: ‘echoPin’ was not declared in this scope

    duration=pulseln(echoPin,HIGH);

    ^

    sketch_apr02a:28: error: ‘pulseln’ was not declared in this scope

    duration=pulseln(echoPin,HIGH);

    ^

    sketch_apr02a:29: error: ‘distence’ was not declared in this scope

    distence=duration/58.2;

    ^
    merhabalar ben böle bir hata aldım hatayı bulamadım yardımcı olurmusunuz
    exit status 1
    ‘trigPin’ was not declared in this scope

    This report would have more information with
    “Show verbose output during compilation”
    option enabled in File -> Preferences.

    • Arduino IDE yazılımınız ile ilgili bir sorun gibi görünüyor, silip tekrardan yüklemeyi dener misiniz?

  22. kodunuz süper çalışıyor lcd (2×16) bir türlü basılmıyor lcd sinide verirmisiniz acaba başka sitelerde hiç biri çalışmıyor

    • Bu program proje olarak kullanmanızdan ziyade, Arduino programlama öğrenebilmeniz için yazılmıştır. Mükemmel çalışacağının garantisini veremeyiz, fakat doğru şekilde montaj yapmanız ve programlamanız sonucunda buzzer, ultrasonik sensör gibi devre elemanlarının çalışmasını öğrenmenize yardımcı olacak şekilde temel bir kullanım sunacaktır.

CEVAP VER

Please enter your comment!
Please enter your name here