Arduino İle WTV020SD-16P Mp3 Modül Kullanımı

29 5.655

WTV020SD-16P projelere müziği eklemek için mükemmel bir modül. Modül arduino ile kullanılabiliyor.Bu modül ile çalışırken dikkat edilmesi gereken birkaç şey vardır. Örneğin, sadece 2GB micro SD kart ile çalışır ve sadece AD4 formatında müzik dosyasını destekler.AD4 dosya biçimi ve bu modülün nasıl kullanılacağını görelim.

Bu modül iki farklı şekilde çalıştırılabilir.

  1. Arduino olmadan MP3 modu:

Bu modda, AD4 formatındaki müzik dosyalarını temel bağlantısı ile oynanır. Bu en basit şeklidir.

AD4 formotındaki dosyaları sd karta kopyalayalım.Hoparlör, 3.3V regülatörü, anahtarlar ve güç kaynağını bağlayın. Aşağıda verilen devre şemasına bakınız.Bu proje için bir 5V ve 3.3V regülatör kullandık.9V pile ilk önce 5V regülatör ve daha sonra bir 3.3V regülatör bağlanır.

Mp3 dosyasını AD4 formatına dönüştürmek için aşağıdaki adımları takip edelim:

  1. Mp3  dosyasını 16 bit Mono wav uzantılı dosyaya dönüştürelim.
  2. AD4 Conventer programını aşağıdaki buradan indirelim.
  3. Bilgisayarımızın komut istemi penceresini açın.
  4. C: konumunda bir klasör oluşturun ve indirdiğimiz ad4conventer programını ile wav uzantılı dosyaları bu kalsöre atın.Komut isteminde programı çalıştırın.
  5. Program çalıştığında menüler gelecek.Biz E4 modunu kullanacağız.Aşağıdaki gibi örnek müzik dosyasını gösteriyoruz.
  6. AD4 CONVERTER –E4 C:\WavFiles\Track1.wav
  7. Enter tuşuna bastığımızda ad4 formatına dönüşecektir.

2. Arduino ile Mp3 Modu:

Arduino  ile müzik modülü kullanırken  müzik dosyalarının kontrolüne daha fazla esneklik vererek çalışır.

 

Devre Bağlantı Şeması:

Arduino Yazılımı:

#include <Wtv020sd16p.h>
 
int resetPin = 2; // The pin number of the reset pin.
int clockPin = 3; // The pin number of the clock pin.
int dataPin = 4; // The pin number of the data pin.
int busyPin = 5; // The pin number of the busy pin.
 
/*
Create an instance of the Wtv020sd16p class.
1st parameter: Reset pin number.
2nd parameter: Clock pin number.
3rd parameter: Data pin number.
4th parameter: Busy pin number.
*/
Wtv020sd16p wtv020sd16p(resetPin,clockPin,dataPin,busyPin);
 
void setup() {
//Initializes the module.
wtv020sd16p.reset();
}
 
void loop() {
//Plays synchronously an audio file. Busy pin is used for this method.
wtv020sd16p.playVoice(0);
//Plays asynchronously an audio file.
wtv020sd16p.asyncPlayVoice(1);
//Plays audio file number 1 during 2 seconds.
delay(5000);
//Pauses audio file number 1 during 2 seconds.
wtv020sd16p.pauseVoice();
delay(5000);
//Resumes audio file number 1 during 2 seconds.
wtv020sd16p.pauseVoice();
delay(5000);
//Stops current audio file playing.
wtv020sd16p.stopVoice();
//Plays synchronously an audio file. Busy pin is used for this method.
wtv020sd16p.asyncPlayVoice(2);
delay(2000);
//Mutes audio file number 2 during 2 seconds.
wtv020sd16p.mute();
delay(2000);
//Unmutes audio file number 2 during 2 seconds.
wtv020sd16p.unmute();
delay(2000);
//Stops current audio file playing.
wtv020sd16p.stopVoice();
}

Arduino örnek kodumuzda müzik dosyalarının isimlerini sd karta attığımız dosyaların isimleriyle aynı olması gerekir. Aksi halde çalışmaz.

 

Bunları da beğenebilirsin

Cevap bırakın

E-posta hesabınız yayımlanmayacak.

  1. Korhan

    Merhaba,
    Mp3 dosyalarını belli zaman periodlarında otomatik olarak çalabilecek bir koda ihtiyacım var.
    5, 10, 15, 20, 25, 30 dk ve daha yüksek aralıklarda belli dosya isimlerini çalmasını istiyorum. Bu konuda yardımınızı rica edebilirmiyim.

  2. Dursun DAL

    Merhaba,
    Ben Pro mini, ultrasonik sensör, kulaklık ve sd kartla bir proje yapmak istiyorum. Sensör engel algıladığında kulaklıktan uyarı duymak istiyorum. Ultrasonik kısmına kadar halletim ama SD kart kısmında hiç bilgim yok. Bunun kodlarını nasıl yazabilirim? Yardımcı olursanız çok sevinirim.

  3. on.güven

    merhaba ses dosyasını tam nereye yazacağız anlayamadım belirtebilir misiniz?
    “wtv020sd16p.asyncPlayVoice(1);
    //Plays audio file number 1 during 2 seconds.”
    buradaki bir sd kartta ki dosyayımı kastediyor?

    1. Sezgin GÜL

      ses dosya ismi 0001.wav 0002.wav şeklinde sayı vererek adlandır. wtv020sd16p.asyncPlayVoice(1); burdaki 1 , 0001.wav ses dosyasını belirtir

      1. on.güven

        teşekkürler
        benim elimdeki model Ad4 formatında çalışıyor.

  4. yunus

    aynı sorunun cevabını bende merak ediyorum

  5. demir

    selam Arduino olmadan MP3 modunda repeat (tekrar) yaptırabilirmiyiz

  6. Berkay Ilıkoba

    Merhaba, acaba iki farklı ses dosyasını nasıl çaldıracağız? Mesela 1. butona basılınca 1. ses dosyası, 2. butona basılınca da 2. ses dosyasını çalsın.

  7. ERTUĞRUL GÜMÜŞ

    sezgin bey selam. ben hastanede çalışıyorum. Hastanemizde engelliler için bir cihaz var. Cihazda düğmeye basınca hoş geldiniz ile başlayan bir ses kaydı var. yalnız ses kaydında Konya havalimanı diyor. bizim ses kaydını hastanemize uyarlamamız gerekiyor.cihaz içindeki sd kartı söktüm. bilgisayara bağladım. içinde ad4 formatında ses kayıtları var. hiç bir programda ses kayıtlarını açamadım. yukarıda vav uzantılı bir ses dosyasının nasıl ad4 ye çevrileceğini madde madde yazmışsınız. gerekli olan ad4converter programını indirme linkine tıkladığımda lin k açılmıyor programı indirebilirsem sorunumu halledebileceğim yardımcı olabilirseniz sevinirim teşekkürler

  8. barış yağcı

    abi helal olsu seni severek takip ediyorum bukonuya ilgi duymamda büyük önemin ver sana çok teşekkür ederim

    1. Sezgin GÜL

      Rica ederim. Projeler yardımcı olduysa ne mutlu . İyi çalışmalar.

  9. bilimadamı

    merhaba.adruino ile denedim.Tüm bağlantıları defalarca denememe rağmen sd moduülde ses çalmıyor,sorun neyden kaynaklanıyor acaba?yardımcı olabilirmisiniz

  10. yasin

    Sezgin Bey iyi çalışmalar;
    Cevabınızdan ötürü teşekkür ederim. Dediğiniz devreyi (https://www.robimek.com/arduino-ile-sd-karttan-mp3-ses-dosyasi-calma/) önceden yaptım fakat yükses ses alamıyoruz. Sesi yükseltmek için ne yapabiliriz

  11. yasin

    Sezgin Bey iyi çalışmalar;
    Benim yapmam gereken proje, Sd karttaki 10 adet ses dosyasını 10 adet buton ile çalma. Butonlara basıldıkça karşılık gelen sesin çalmasını istiyorum. Bu işlemi wtv020sd16p ile nasıl yapabilirim. Bu işlemi sadece arduino ile yaptım fakat ses yeterli olmuyor. Bu modül işe yarar fakat arduino ile nasıl kullanacağım.

    1. Sezgin GÜL

      mp3 modülle arduino serial haberleşirken sorunlar yaşanıyor. En kolay ve sorunsuz yöntem direk sd kart üzerinden ses dosyası çalma şeklidir. Projeye buradan bakın. https://www.robimek.com/arduino-ile-sd-karttan-mp3-ses-dosyasi-calma/
      Butonların pinlerini giriş olarak ayarlayıp, koşullara butonun durumunu ekleyip karşılık gelen dosyayı çaldırın.
      Örneğin;
      if ( buton_bir == HIGH)
      {
      SdPlay.setFile(“music.wav”);
      SdPlay.play();
      delay( süresi );
      }
      bu şekildeki gibi ekleyebilirsiniz. Yalnız dikkat etmeniz gereken yer ses dosya süresini delay kısmına yazmanız gerekir. Bazen sorun yaşanabiliyor yazılmadığı takdirde.

  12. Muzaffee

    Çok teşekkür ederim peki bu playstop olma durumu yada ileei geri pinleeinin aktifleşmesini nasil önlerim

    1. Sezgin GÜL

      setup kısmına play ekleyebilirsin. Ama yine de bu sorun tam çözülmüyor

  13. Muzaffer

    Ne yapmam gerektiğini anlamadım şuan play moduna geçmediğinden dolayı dediniz bunu nasıl sağlayabilirim ve bekleme yaptırdan kastınız nedir ?

    1. Sezgin GÜL

      modülün 9.pini play stop pinidir.bu pine buton bağlayıp dene. Gecikmeden kasıt projedeki koddaki müzik dosyasından sonra delay bekleme süresi var. O süre müzik dosyasının çalma süresinden fazla olmalı. Örneğin ses dosyası 5 saniye ise ordaki delay 5 saniyeden fazla olmalıdır

      1. Muzaffer

        Farklı bir proje için denedim sizin paylaşmış olduğunuz projede değil delay komutunuda hallettım yıne olmadı . tek başına çalıştırdığımda aynı bağlantılarla koduda direk çalıştır şeklınde yazdım yanı void loop kısmına direk wtv020sd16p.playVoice(4) şeklinde yazdım sürekli olarak o şarkı çaldı mesela burda bı sıkıntı yok ancak else if(voice == “*Yeni yıl şarkısı çal”||voice == “yeni yıl şarkısı çal”)
        wtv020sd16p.playVoice(5);

        şeklinde komut komut yaptığımda ses cıkmıyor sadece fıss diye bır ıkı ses cıkıp susuyor delay olarakta yazdım az once yıne olmadı sizin robimek yapay zeka projenızdekı kodlarada baktım benzer hale getırdım ancak yıne her turlu komutu yapıyor ama ses karşılığı vermıyor mesela led 1 yak dedıgımde ılk once led 1 i yakıyorum diyip led 1 ın yanması gerekırken fıs dıye bır ses cıkıyor ardından komuttan hemen 1 sanıye sonra led yanıyor. lütfen yardımcı olun bu benım ıcın cok onemlı bır proje şimdiden ilginiz için çok teşekkür ederim.

        1. Sezgin GÜL

          wtv020sd16p.playVoice(5); bunun altına delay eklemen lazım. Ama öncelikle o sesin çıkma sebebi play stop olması veya ileri geri pinlerinin birinin aktif olmasından kaynaklıdır.

  14. Muzaffer

    bu sistemi kurdum fakat çalışmıyor bağlantıları
    1.bacak-Arduinonun 8. pinine
    4.bacak-hoparlorun + bacagına
    5.bacak-hoparlorun – bacağına
    7.bacak-Arduinonun 9. pinine
    8.bacak toprak hattına
    10.bacak-Arduinonun 11.pinine
    15.bacak-Arduinonun 10. pinine
    16.bacak-3.3volt ‘a

    şeklinde yaptım kodlarda da bir sıkıntı yok dönüştürme işlemide kusursuz bı sekılde oldu hatta ınternettrekı hazır donusturulmuslerle de denedım ancak ses cıkmıyor ufak bı üfleme sesi gibi birşey cıkıyor ses yerıne aynı sure boyunca nerda hata yapıyorum yardımcı olurmusunuz

    1. Sezgin GÜL

      play moduna geçmediğinden kaynaklı bir de ses dosyalarının çalma sürelerinden fazla bekleme yaptır

  15. Yağız topçuoğlu

    Yukarıda bahsedildiği gibi WAV dosyalarını ad4 türüne çeviriyorum ama sd karta yüklediğim ad4 formatındaki sesler çalışmıyor. Nerede hata yapıyorum acaba?

    1. Sezgin GÜL

      Modül sd kartın 2gb veya 1gb olanlarında çalışıyor.Bir de dosya isimleri rakam şeklin olsun.Ayrıca devre bağlantılarını yenıden kontrol ediniz.Bazı modullerde reset pinine ek olarak 5v da verıliyor.Modülün üzerinde 5v yazısı var ise öyle yapın

      1. YAĞIZ TOPÇUOĞLU

        modül üzerinde 512 mgb kart var ve bu kartta 8 adet ses yüklü onları çalıştırıyor ama ben 9.sesi yüklüyorum benim yüklediğim ses çalışmıyor.modül üzerinde 5v yazısı var.

        1. Sezgin GÜL

          5v yazısı var ise reset pinine yani 1. pine ek olarak arduinodan 5v vereceksiniz.512mb sorun olabilir.Normalde kart 2 gb sd kart ile sorunsuz çalışıyor

          1. levent

            merhaba sezgin bey, çalışmanız ufuk açıcı gerçkten. defalarca denememe rağmen bu hatayı alıyorum. yardımcı olursanız sevinirim.

            C:\Users\Levent\sketch_mar29a\sketch_mar29a.ino:15:37: warning: deprecated conversion from string constant to ‘char*’ [-Wwrite-strings]

            if(!SdPlay.setFile(“merhaba3.wav”))// müzik dosya adı

          2. levent

            bu çalışmayı wtv020 ile denedim ama bu hatayı aldım..

            C:\Users\Levent\sketch_mar29b\sketch_mar29b.ino:12:25: fatal error: Wtv020sd16p.h: No such file or directory

            #include

            ^

            compilation terminated.

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

            lütfen yardım. geri dönüt…