DFPlayer – Arduino MP3 Player Modülü Nasıl Kullanılır?
Arduino MP3 Player – DFPlayer Örnek Kullanımı
Arduino MP3 Player – MP3 Çalar yapmak için Arduino Uno ve DFPlayer Mini MP3 Modülünü kullandık. Bu proje için gerekli malzemeler:
- Arduino Uno R3 Dip Klon
- Arduino Mini MP3 Player Modülü
- Toshiba 16GB Micro SD Kart
- Jumper Kablo
- Buton
- 8 Ohm Hoparlör
Arduino MP3 Player – MP3 Modülü Özellikleri
DFplayer, Mini mp3 modülü hoparlör veya bir kulaklık jakı doğrudan bağlanabilir basitleştirilmiş ses çıkışı ile küçük, düşük maliyetli mp3 modülüdür.
Modül, takılı pil, hoparlör ve basmalı butonlarla bağımsız bir modül olarak kullanılabilir veya RX / TX (Seri) iletişimi için etkinleştirilen bir mikrodenetleyici veya geliştirme kartı ile birlikte kullanılabilir. Böylece basit seri komutlar sayesinde müzik çalmak ve bir sonraki ve önceki şarkı geçişi, ses seviyesi gibi diğer işlevleri yerine getirebilir.
Modül bir sd kart yuvası ile gelir ve FAT16, FAT32 dosya sistemini destekler.
- 8KHz, 11.025KHz, 12KHz, 16KHz, 22.05KHz, 48KHz’ye kadar örnekleme oranını destekler.
- 24 bit DAC çıkışı, dinamik aralık desteği 90dB, SNR 85dB’yi destekler.
- FAT16, FAT32 dosya sistemi, maksimum destek 32GB TF kart desteği vardır.
- Çeşitli kontrol modları, seri mod, AD tuş kontrol modu bulunur.
- Dahili 3W amplifikatöre sahiptir.
- Ses verileri klasöre göre sıralanır; 100 klasöre kadar destekler, her klasör 1000 şarkıya kadar liste olarak atanabilir.
- EQ seviyeleri ayarlanabilir.
- Direkt butonlar vasıtasıyla kullanılabilir.
SD kartımızda “mp3” adında bir klasör oluşturalım öncelikle.
Sonrasında mp3 dosyalarımızı “001.mp3” diye başlayıp sayıyı arttırıp adlandırarak “mp3” klasörüne yerleştirelim.
Devre şemasındaki bağlantıları yapalım.
Rx - D11
Tx - D10
VCC - 5V
Gnd - Gnd
Modül pinlerini yukarıdaki gibi bağlayalım. Butonlar mp3 çaların başlatma/durdurma, sonraki kaydı çalma veya önceki kayda geçme işlemlerinin yapılmasını sağlayacaktır.
#include "SoftwareSerial.h"
//RX-TX PINLERI AYARLA
SoftwareSerial mySerial(10, 11);
# define Start_Byte 0x7E
# define Version_Byte 0xFF
# define Command_Length 0x06
# define End_Byte 0xEF
# define Acknowledge 0x00
# define ACTIVATED LOW
int buttonNext = 2;
int buttonPause = 3;
int buttonPrevious = 4;
boolean isPlaying = false;
void setup () {
pinMode(buttonPause, INPUT);
digitalWrite(buttonPause,HIGH);
pinMode(buttonNext, INPUT);
digitalWrite(buttonNext,HIGH);
pinMode(buttonPrevious, INPUT);
digitalWrite(buttonPrevious,HIGH);
mySerial.begin (9600);
delay(1000);
playFirst();
isPlaying = true;
}
void loop () {
if (digitalRead(buttonPause) == ACTIVATED) // DURDURMA BUTONU
{
if(isPlaying)
{
pause();
isPlaying = false;
}else
{
isPlaying = true;
play();
}
}
if (digitalRead(buttonNext) == ACTIVATED) // SONRAKI MP3 BUTONU
{
if(isPlaying)
{
playNext();
}
}
if (digitalRead(buttonPrevious) == ACTIVATED) // ONCEKI MP3 BUTONU
{
if(isPlaying)
{
playPrevious();
}
}
}
void playFirst() // İlk mp3 sırası kodu
{
execute_CMD(0x3F, 0, 0);
delay(500);
setVolume(20);
delay(500);
execute_CMD(0x11,0,1);
delay(500);
}
void pause() // durdurma kodu
{
execute_CMD(0x0E,0,0);
delay(500);
}
void play() // çalma kodu
{
execute_CMD(0x0D,0,1);
delay(500);
}
void playNext() // sonraki mp3 kodu
{
execute_CMD(0x01,0,1);
delay(500);
}
void playPrevious() // önceki mp3 kodu
{
execute_CMD(0x02,0,1);
delay(500);
}
void setVolume(int volume)
{
execute_CMD(0x06, 0, volume); // ses şiddeti
delay(2000);
}
void execute_CMD(byte CMD, byte Par1, byte Par2)
// kod doğrulunu kontrol ve kod gönderimi
{
// doğrulama byte hesabı (2 bytes)
word checksum = -(Version_Byte + Command_Length + CMD + Acknowledge + Par1 + Par2);
// Build the command line
byte Command_line[10] = { Start_Byte, Version_Byte, Command_Length, CMD, Acknowledge,
Par1, Par2, highByte(checksum), lowByte(checksum), End_Byte};
//Send the command line to the module
for (byte k=0; k<10; k++)
{
mySerial.write( Command_line[k]);
}
}
0 Yorumlar