Arduino ile SD Karttan mp3 Ses Dosyası Çalma

47 3.304

Merhaba arkadaşlar bu uygulamamızda mp3 modül kullanmadan sd karttan wav uzantılı ses dosyalarını okutup çalacağız. Önceki projemizde wtv020 mp3 modül kullanarak bu işlemi yapmıştık. Bu uygulamada ise bu modülü kullanmadan aynı tarz ses dosyalarını çaldıracağız.

Malzemeler:

  1. Arduino
  2. Sd kart Modül
  3. Hoparlör
  4. sd kart ve adaptörü

Elektronik Kısım:

Devrenin fritzing çizimini buradan indirebilirsiniz.Şekildeki gibi devre bağlantılarımızı yapalım. Sd kart modül SPI protokolüne göre haberleştiği için arduino modellerinde SPI pinleri değişiklik gösterir. Farklı model kullanırsanız pinlerini o modelin SPI pinlerine göre takmalısınız.

Mp3 dosyasını wav formatına dönüştürmelisiniz. Online wav conventer sitesinde dönüştürme işlemini yapabilirsiniz. Mp3 dosyasını aşağıdaki gibi 8 bit 32000 Hz Stereo olarak ayarlayıp convert file butonuna tıklayın. İndirdiğiniz dosyaları direk sd kartınıza yükleyin.

Yazılım Kısmı:

Mp3 modül kullanmadan sd karttan audio wav ses dosyası olarak çalmak için kütüphane kullanıyoruz. Aşağıdaki bağlantıdan kütüphaneyi indirebilirsiniz.

Kütüphane : SimpleSDAudio

Örnek kod:

#include <SimpleSDAudio.h>
 
void setup()
{ 
 
 SdPlay.setSDCSPin(4); // sd kart cs pini
 
 if (!SdPlay.init(SSDA_MODE_FULLRATE | SSDA_MODE_MONO | SSDA_MODE_AUTOWORKER))
 {
 while(1); 
 } 
 
 if(!SdPlay.setFile("music.wav")) // müzik dosya adı
 {
 while(1); //dosya bulunamassa durdur
 } 
}
 
void loop(void) {
 
 SdPlay.play(); // seçilen dosyayı çal
 
 while(!SdPlay.isStopped()) { // müzik bittiğinde tekrar çal
 ; 
 }
}

 

Hoparlörün artı pini arduino mega hariç diğer modellerde dijial 9. pine, arduino megada ise dijital 44. pine takınız. Kodda hoparlör pinini belirtmiyoruz. Kütüphane otomatik olarak bu pinlerden çıkış vermiş.

Uygulamamız bu kadar. Önceki projelerimizden sesli renk okuyucu yapmıştık. Fakat onda wtv020 mp3 modül kullanmıştım. Bu uygulamaya göre uyarladım. Aşağıda kodunu alabilirsiniz.

// Sesli Renk Okuyan Robot Projesi
//Coder Sezgin Gül
// www.robimek.com
#include <SimpleSDAudio.h>
#include "Wire.h"
#include "Adafruit_TCS34725.h"
 
Adafruit_TCS34725 tcs = Adafruit_TCS34725(TCS34725_INTEGRATIONTIME_50MS, TCS34725_GAIN_1X);
void setup() {
Serial.begin(9600);
 
if (!SdPlay.init(SSDA_MODE_FULLRATE | SSDA_MODE_MONO | SSDA_MODE_AUTOWORKER)) {
 while(1); 
 }
 SdPlay.setSDCSPin(4);
if (tcs.begin()) {+-
Serial.println("Sensör bulundu");
} else {
Serial.println("TCS34725 Sensör bulunamadı !");
while (1); // Dur!
}
delay(1000);
 
}
void loop() {
 
uint16_t clearcol, red, green, blue;
float average, r, g, b;
tcs.getRawData(&red, &green, &blue, &clearcol);
 
average = (red+green+blue)/3;
r = red/average;
g = green/average;
b = blue/average;
Serial.print("\tTEMIZ:"); Serial.print(clearcol);
Serial.print("\tKIRMIZI:"); Serial.print(r);
Serial.print("\tYESIL:"); Serial.print(g);
Serial.print("\tMAVI:"); Serial.print(b);
 
if ((r > 1.4) && (g < 0.9) && (b < 0.9)) {
Serial.print("\tKIRMIZI");
 SdPlay.setFile("krmz.wav"); 
 SdPlay.play();
}
else if ((r < 0.95) && (g > 1.4) && (b < 0.9)) { 
Serial.print("\tYESIL"); 
 SdPlay.setFile("ysl.wav"); 
 SdPlay.play();
}
else if ((r < 0.8) && (g < 1.2) && (b > 1.2)) { 
Serial.print("\tMAVI"); 
 SdPlay.setFile("mavi.wav"); 
 SdPlay.play();
}
else if ((r > 1.15) && (g > 1.15) && (b < 0.7)) { 
 Serial.print("\tSARI"); 
 SdPlay.setFile("sari.wav"); 
 SdPlay.play();
 } 
 else if ((r > 1.4) && (g < 1.0) && (b < 0.7)) { 
Serial.print("\tTURUNCU");
 SdPlay.setFile("trnc.wav"); 
 SdPlay.play();
}
else {
Serial.print("\tRENK ALGILANMADI");
 
}
Serial.println("");
 
 
}

Bunları da beğenebilirsin

Cevap bırakın

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

47 Yorum

  1. Büşra

    Merhaba.
    Ben TCS3200 ile yapmaya çalışıyorum; ancak kütüphane tanımlamasını nasıl yapmalıyım. Kodum hata veriyor.

  2. Yıldız Karayer

    Merhaba. Daha fazla renk skalası için mesela mor, turkuaz vs. RGB degerleri nasıl girebiliriz?

    1. Sezgin GÜL

      renk üzerine tutun ve r g b değerlerini serial monitöre yazdırın. O değerleri kapsayacak şekilde sınır değerleri oluşturarak rengi tanıtabilirsiniz.

  3. Dan Chesa

    merhaba. ozum dilerim, inglische lutfen. cioc tesekur ederim.

  4. şahin

    kolay gelsin.yukarıdaki uygulamayı yaptım fakat bazı sıkıntılar çıkıyo.113 tane ses dosyası çalıyorum ve 84 ten sonrası kitleniyo.84 tane sese kadarki kısımdada sistem çalışıyor gibi görünüyor fakat seslerin çoğu çalmıyor.sebebi ne olabilir teşekkürler.

  5. Resul

    Merhaba hoparlörün özellikleri hakkında bilgi verebilirmisiniz.

  6. çağla

    Ben bu sistemi rfid kart modülüyle birlikte yapmaya çalışıyorum. Aynı pin üzerinden birden fazla spı bağlantı yapabileceğimi söylemiştiniz. Bunun üzerine sd kart modülünün de rfid kart modülününde bildiğiniz gibi mosi miso ve sck pinleri aynı.Board üzerinden ikisini de aynı pinlere yönlendirdim ama sadace rifid kart modülü çalıştı acaba farklı bir şekilde mi bağlantı yapmam gerkiyor. Yardımcı olursanız çok sevinirim.

    1. Sezgin GÜL

      İkisini birlikte dediğiniz şeklide yapabilirsiniz. sd kartın pinlerini doğru taktığınızdan ve kodda da doğru eklendiğinden emin olun. sd kartın cs pinini kodda yazıyorsunuz.

  7. ÇAĞRI ESEN

    microsd card adapter ile yapılabilir mi acaba böyle bir şey

  8. eren

    Mp3 mü çalmış oldu şimdi bu proje?

  9. Sena

    Merhaba ben sd kart modülünün bağlantılarını yaptığımda karta kodu atarken hata veriyor. Karta yüklenirken sorun oluştu diyor ama sd modülü çıkarınca hatasız kod yükleniyor. Çalıştıramadım yardım ederseniz çok sevinirim.

    1. Sezgin GÜL

      merhaba, sd kart takılı olsa bile kodu yüklerken hata vermez normalde. çıkarınca yükleme yaptıysa da sorun yok. yükleme yaptığınız halde çalışmıyor ise dosya formatlarında ya da sd kart iletişiminde sorun vardır.

  10. ömer

    .merhaba
    Başlıkta her nekadar mp3 yazsa da sizinki wav player. Neden mp3 ibaresini kullandınız merak ettim

  11. heosıs

    arkadaşlar bitirme ödevim biri bana yardımcı olabilir mi rica etsem birkaç sorum olacaktı.

  12. yakup

    aruıno yu amfii yeri ne kullanabilirmiyiz

    ses yükseltme telefon

  13. Mehmet

    Merhaba. Sd kart modülündeki sesi sorunsuz çaldırabiliyoruz. Ancak projemizde
    Servo motor oldugu icin Sd card kütüphanesi ve servo kütüphanesi çakışıyor. Bir öneriniz varmı ? Teşekkürler

    1. heosıs

      kardeş benimle bir iletişime geçebilir misin birkaç sorum olacaktıda.

  14. robotist

    merhaba bu sd kartlı modül gibi başka hangi markalar var tercih edeceğiniz

  15. MeSerdar

    Merhaba. Sd kart modülündeki sesi sorunsuz çaldırabiliyoruz. Ancak projemizde
    Servo motor oldugu icin Sd card kütüphanesi ve servo kütüphanesi çakışıyor. Bir öneriniz varmı ? Teşekkürler

  16. mo

    acaba birden çok ses kaydını bir tuşla random duyma istediğimde ne yapmam gerekiyor, yardımcı olabilir misiniz?
    şöyle bir instruction var: instructables.com/id/Playing-Wave-file-using-arduino/
    ama sizin yaptığınız gibi daha basit bir sistemin üzerinden nasıl ilerlenebilir?

  17. Medjai

    Greetings!
    Good decision, but please help.
    How to make that sound starts when you press the button? And stops after its release as a car horn.
    And whether it is possible to make some buttons with different sounds?
    Thanks for the help!

  18. fatih

    sketch_jun0002b.ino:5:48: fatal error: TMRpcm.h: No such file or directory hatası veriyor programda

      1. fatih

        ardunio due ye göre yapmaya çalışırıyorum ama avr sam hatası da veriyor kütüphaneleri yüklememe rağmen hata veriyor program yardımcı olur musunuz ?

  19. DuinoGuy

    Transistor kullanmanız gerek. Yukarıdaki devrede kullanılmamış. Cızırtı olması çok normal. 2n2222 veya bc546, bc548 kullanabilirsiniz.

  20. Burak Özgür

    Teşekkür ederim sorun çözüldü ses geliyor fakat bir cızırtı var 5v bir anfi bağladık düzelmedi o konuda yardımcı olur musunuz?

  21. Burak Özgür

    Sezgin abi üniversite bitirme projemiz var yardımcı olur musunuz bir tek sorun yaşıyoruz mp3 dosyasını wav uzantılı dosyasına çevirir iken çok takıldık ses kaydımızı dönüştürmeye çalışıyoruz nafile olmuyor 5w hoparlör kullanıyoruz sesin çıktığını anlıyoruz ritim den fakat ses anlaşılmaz bir durumda sorun dönüşümden kaynaklanıyor ola bilirmi ?

    1. Sezgin GÜL

      8bit 32000 hz stereo olarak çevirin
      Ayrıca kod kısmında da ses dosyasından sonra gecikme vermeniz lazım.
      örnek;
      SdPlay.setFile(“ses.wav”);
      SdPlay.play();
      delay(5000); >> ses dosyası çalma süresinin üzerinde gecikme verin

  22. CAN

    Merhabalar nerede hoparlörü nereden temin edebilirim 0.5W hoparlör yeterli olur mu ? Yoksa düşük mü gelir sesi ?

  23. sema

    Bir soru sorabilir miyim?Ben renkli ses okuyucuyu yapmak istiyorum ama ya renki tanıdı ya da ses bir geldi bir gelmedi.Benim renk sensörüm tcs3200 .Pin bağlantılarını nasıl yapmalıyım çünkü sd card ile renk sensörü pinleri aynı yerler .Çok az zamanım kaldı nasıl yapmalıyım? sd card fail yazdı .Çok renk olmasına bile gerek yok sadece 3 renk dese yeter.

    1. sema

      tcs3200 renk sensörüyle ilgili doğru düzgün hiç bir bilgi yok. Amacım neydi bu sensörü almakta ama artık geçti ve yine hiçbir şeyi çalıştıramadım.

      1. Sezgin GÜL

        TCS34725 rgb renk sensörünü kullanın sorunsuz çalışıyor. Yukarıda projenin altında sesli okuma kodu da var.

        1. sema

          ama elimde tcs3200 var onunla ne yapabilirim?

  24. Salih

    SdPlay.play(); kısmı boşmu kalacak ?

    1. Sezgin GÜL

      boş mu kalacak derken? şu şekilde fonksiyondaki parantezin için boş olacak. bu fonksiyon önceden belirlenen dosyayı çaldırır.

  25. serdar

    SdPlay was not declared in this scope uyarısı alıyorum hocam …

    1. Sezgin GÜL

      aynı kodu derlerken almışsan ya kütüphane eklemedin ya da arduino sürümünden kaynaklı kütüphane çalışmıyor olabilir.

      1. emre

        sezgin bey telinizi vere bilir misiniz
        bilecik şeyhedebali ünisinde okuyorum bu devreyi şipariş verdim yapamazsam kalıyom yardım eder msiniz?

  26. asker

    öncelikle ellerine sağlık bir sorum olucaktı peki 3 bacaklı haporlörü nasıl bağlaya biliriz biri VCC diğeri GND, birde OUT var bunları nasıl bağlaya biliriz?

    1. Sezgin GÜL

      jak uçlu olan hoparlörden bahsediyorsan kablolardan biri gnd diğer ikiside sağ ve sol kısımdır. Masaüstü olanlarda ise out sinyal pinine diğerleri de enerji pinlerine takılır.

      1. asker

        teşekkürler dostum kolay gelsin

  27. selçuk

    Hocam sd kartın kaç gb olduğunun bi önemi var mı? İllaki micro sd kart+adaptör mü olması gerekiyor yoksa direk adaptör boyutundaki sd kartlar olur mu?

    1. Sezgin GÜL

      Sd kartın boyutu fark etmiyor. İstediğini kullan. Fakat ses dosyalarının isimlerinin uzunluğu 5-6 karakteri geçmemeli. Aksi halde okumaz.

    2. Sezgin GÜL

      Büyük sd kartlar modüle boyut olarak uyumlu ise kullanabilirsin.