DFPlayer Mini, microSD karttaki MP3 dosyalarını çalan ve küçük bir hoparlörü doğrudan sürebilen bir ses modülüdür. Arduino ile seri port üzerinden 9600 baud hızında haberleşir. Arduino TX hattına seri 1 kOhm direnç koyup DFRobotDFPlayerMini kütüphanesini kullanarak birkaç satır kodla parça çalabilirsiniz.
Bir oyuncağa ses eklemek, kapı açılınca karşılama mesajı çalmak ya da sesli bir uyarı sistemi kurmak için Arduino'ya ses çaldırmanız gerekir. Arduino tek başına MP3 çözemez; bu işi DFPlayer Mini modülü yapar. Bu yazıda kartın bağlantısını, microSD kartın hazırlanmasını ve örnek kodu adım adım anlatıyoruz.
DFPlayer Mini nedir?
DFPlayer Mini, microSD karttaki MP3 ve WAV dosyalarını çözüp çalan, üzerinde küçük bir hoparlör amfisi bulunan ve seri port komutlarıyla kontrol edilen kompakt bir ses modülüdür. Arduino yalnızca "şu parçayı çal" ya da "sesi ayarla" komutlarını gönderir; dosya okuma ve ses çözme işini modül kendisi yapar. Mağazamızdaki DFRobot Mini MP3 Player modülü bu karttır.
Hangi parçalara ihtiyacınız var?
Bir Arduino, DFPlayer Mini, bir microSD kart, küçük bir hoparlör ve bir 1 kOhm direnç yeterlidir.
- Arduino Uno R3 (CH340, USB kablolu) ya da daha küçük projeler için Type-C Arduino Nano
- DFPlayer Mini modülü
- SanDisk Ultra 64GB microSD kart (FAT32 biçimli)
- Küçük bir hoparlör, örneğin 45 mm 8 ohm 1W hoparlör
- 1 kOhm direnç (bir 1/4W direnç seti pratik olur)
DFPlayer Mini pinleri ne işe yarar?
Modülün bir tarafında besleme, seri port ve ses çıkışı pinleri, diğer tarafında ise durum ve buton pinleri bulunur. En sık kullanılanlar şunlardır:
| Pin | Görevi | Bağlantı |
|---|---|---|
| VCC | Besleme (3,2-5V) | Arduino 5V |
| GND | Toprak | Arduino GND |
| RX | Seri veri girişi | 1 kOhm direnç üzerinden Arduino TX (D11) |
| TX | Seri veri çıkışı | Arduino RX (D10) |
| SPK_1 / SPK_2 | Hoparlör çıkışı (dahili amfi) | Hoparlörün iki ucu |
| DAC_R / DAC_L | Hat seviyesi ses çıkışı | Harici amfi girişi |
| BUSY | Çalarken düşük seviyeye iner | İsteğe bağlı, dijital giriş |
DFPlayer Mini Arduino'ya nasıl bağlanır?
DFPlayer Mini, Arduino'ya iki seri hat, besleme ve toprak ile bağlanır; Arduino'nun TX hattına seri 1 kOhm direnç konur. Uno'nun donanım seri portu USB ile paylaşıldığı için örnekte SoftwareSerial ile D10 ve D11 kullanılır.
- DFPlayer VCC'yi Arduino 5V'a, GND'yi GND'ye bağlayın.
- Arduino D11 (yazılımsal TX) pinini 1 kOhm direnç üzerinden DFPlayer RX pinine bağlayın.
- DFPlayer TX pinini Arduino D10 (yazılımsal RX) pinine bağlayın.
- Hoparlörün iki ucunu SPK_1 ve SPK_2 pinlerine bağlayın. Uçlardan hiçbirini GND'ye bağlamayın.
- Hazırladığınız microSD kartı modüle takın, ardından Arduino'ya güç verin.
1 kOhm direnç neden gerekli? DFPlayer Mini'nin seri port seviyesi 3,3V'tur; 5V Arduino'nun TX hattı ile doğrudan bağlandığında modül hatta gürültü üretebilir ve hoparlörden vızıltı duyulabilir. Seri direnç akımı sınırlar ve bu sorunu büyük ölçüde giderir. Hoparlör seçimi ve empedans konusunu hoparlör nasıl bağlanır yazısında anlattık.
microSD kart nasıl hazırlanır?
microSD kart FAT32 (ya da FAT16) olarak biçimlendirilir ve dosyalar numaralı adlarla kaydedilir. Modül en fazla 32 GB'lık kartları destekler; daha büyük kartlar genelde exFAT ile gelir ve tanınmaz.
- Kök dizindeki dosyaları
0001.mp3,0002.mp3gibi dört haneli adlarla kaydedin. - Klasör kullanacaksanız klasörleri
01,02şeklinde, içindeki dosyaları001.mp3,002.mp3şeklinde adlandırın. mp3adlı özel klasördeki0001.mp3gibi dosyalar adıyla çalınabilir; sıranın karışmasını istemiyorsanız bu yöntem en güvenlisidir.- Dosyaları tek tek ve sırayla kopyalayın; işletim sisteminin oluşturduğu gizli dosyalar sırayı bozabilir.
Örnek kod nasıl yazılır?
Arduino IDE'de Kütüphane Yöneticisi'nden "DFRobotDFPlayerMini" kütüphanesini kurun. Aşağıdaki kod modülü başlatır, ses seviyesini ayarlar ve ilk parçayı çalar.
#include <SoftwareSerial.h>
#include <DFRobotDFPlayerMini.h>
SoftwareSerial mp3Seri(10, 11); // RX, TX (TX -> 1 kOhm -> DFPlayer RX)
DFRobotDFPlayerMini oynatici;
void setup() {
Serial.begin(115200);
mp3Seri.begin(9600);
if (!oynatici.begin(mp3Seri)) {
Serial.println("DFPlayer bulunamadi: kabloyu ve SD karti kontrol edin");
while (true) delay(1000);
}
oynatici.volume(20); // 0-30 arasi
oynatici.play(1); // karttaki ilk parca
}
void loop() {
// Ornek: bir butona basilinca oynatici.next(); ile sonraki parca
}
Kütüphanede sık kullanılan diğer komutlar: next() sonraki parça, previous() önceki parça, pause() ve start() duraklatma ve devam, playFolder(1, 3) 01 klasöründeki 003 dosyası, playMp3Folder(5) mp3 klasöründeki 0005 dosyası, loop(2) ikinci parçayı tekrar.
Ses kalitesi nasıl iyileştirilir?
Ses kalitesini en çok besleme gürültüsü ve hoparlör seçimi etkiler. Modül çalarken besleme hattına VCC ile GND arasına 100 µF civarında bir elektrolitik kondansatör eklemek, ses yüksekken oluşan gerilim düşmelerini azaltır. Dahili amfi küçük hoparlörler içindir; daha yüksek ses istiyorsanız DAC_R ve DAC_L çıkışlarını harici bir amfiye bağlayın.
Sesi yükseltirken bozulma duyuyorsanız ses seviyesini birkaç adım düşürün ya da MP3 dosyalarının kendi seviyesini bir ses düzenleyicide normalleştirin. USB'den beslenen Arduino'da yüksek seste kart yeniden başlıyorsa modülü ayrı bir 5V kaynaktan besleyin ve toprakları ortaklayın.
Sık sorulan sorular
DFPlayer Mini neden başlamıyor?
En sık nedenler yanlış bağlanmış TX ve RX hatları, biçimlenmemiş ya da 32 GB'tan büyük kart ve yetersiz beslemedir. Önce TX ile RX'in çapraz bağlandığını kontrol edin. Kartı FAT32 olarak yeniden biçimlendirip yalnızca bir MP3 dosyası koyarak deneyin. Kodda begin fonksiyonunun dönüş değerini seri monitöre yazdırmak sorunu bulmayı kolaylaştırır.
play(1) neden beklediğim parçayı çalmıyor?
play komutu dosya adına değil, dosyaların karta kopyalanma sırasına göre çalışır. Dosyaları farklı sırayla kopyaladıysanız ya da kartta gizli sistem dosyaları varsa numaralar kayabilir. Kesin sonuç için dosyaları mp3 klasörüne koyup playMp3Folder komutunu ya da numaralı klasörlerle playFolder komutunu kullanın.
Hoparlörden vızıltı geliyorsa ne yapmalıyım?
Önce Arduino TX hattında 1 kOhm direnç olduğundan emin olun. Ardından besleme hattına bir kondansatör ekleyin ve modülün toprağını kısa bir kabloyla Arduino'ya bağlayın. USB beslemesi bilgisayardan gürültü taşıyabilir; projeyi bir adaptör ya da pille çalıştırıp farkı dinleyin. Hoparlör kablolarını kısa tutmak da gürültüyü azaltır.
DFPlayer Mini ESP32 ile çalışır mı?
Evet, DFPlayer Mini ESP32 ile de çalışır ve 3,3V lojik seviyeleri uyumlu olduğu için seviye sorunu azalır. ESP32'de SoftwareSerial yerine donanım seri portlarından biri, örneğin Serial2, kullanılır. Kütüphane ve komutlar aynıdır; yalnızca seri portu başlatırken kullandığınız RX ve TX pinlerini belirtmeniz gerekir.
Hangi hoparlörü kullanmalıyım?
Dahili amfi için 4 ya da 8 ohm, gücü 3W'ı aşmayan küçük bir hoparlör uygundur. Üreticinin belirttiği çıkış gücü 3W'a kadardır; bu gücü almak için yeterli besleme ve düşük empedanslı hoparlör gerekir. Daha büyük hoparlörler için DAC çıkışlarını harici bir amfiye bağlamak daha doğru sonuç verir.
Özet
- DFPlayer Mini, microSD karttaki MP3 dosyalarını çalar ve Arduino ile 9600 baud seri port üzerinden haberleşir.
- Arduino TX ile modül RX arasına 1 kOhm direnç koyun; bu, gürültüyü ve seviye sorununu azaltır.
- Kartı FAT32 biçimlendirin, en fazla 32 GB kullanın ve dosyaları numaralı adlarla kaydedin.
- Küçük hoparlörü doğrudan SPK_1 ve SPK_2'ye, büyük sistemleri DAC çıkışları üzerinden amfiye bağlayın.
- Sıra karışıklığını önlemek için playMp3Folder ya da playFolder komutlarını tercih edin.
