Skip to main content

Tutorial DFPlayer Mini MP3

SKU Mini DFPlayer: DFR0299

Pendahuluan

DFPlayer Mini MP3 Player Untuk Arduino adalah modul MP3 kecil dan murah dengan output yang disederhanakan langsung ke speaker. Modul ini dapat digunakan sebagai modul yang berdiri sendiri dengan baterai terpasang, speaker dan tombol push atau digunakan dalam kombinasi dengan UNO Arduino atau yang lainnya dengan kemampuan RX / TX. 

Spesifikasi

  • laju pengambilan sampel yang didukung (kHz): 8 / 11.025 / 12/16 / 22.05 / 24/32 / 44.1 / 48
  • Output 24-bit DAC, dukungan untuk rentang dinamis 90dB, SNR mendukung 85dB
  • sepenuhnya mendukung FAT16, sistem file FAT32, dukungan maksimum 32G kartu TF, dukungan 32G disk U, 64M byte NORFLASH
  • berbagai mode kontrol, mode kontrol I / O, mode serial, mode kontrol tombol AD
  • iklan fungsi menunggu suara, musik dapat ditangguhkan. ketika iklan berakhir di musik terus diputar
  • data audio diurutkan berdasarkan folder, mendukung hingga 100 folder, setiap folder dapat menampung hingga 255 lagu
  • 30 tingkat volume yang dapat disetel, EQ 6 tingkat disesuaikan

Aplikasi

  • Siaran suara navigasi mobil;
  • Inspektur transportasi jalan, bis suara stasiun tol;
  • Stasiun kereta api, bis suara inspeksi keselamatan bisikan;
  • Suara listrik, komunikasi, ruang bisnis keuangan diminta;
  • Kendaraan masuk dan keluar dari saluran memverifikasi bahwa suara diminta;
  • Suara saluran kontrol perbatasan keamanan publik diminta;
  • Alarm suara multi-saluran atau suara panduan pengoperasian peralatan;
  • Mobil wisata listrik pemberitahuan suara mengemudi yang aman;
  • Alarm kegagalan peralatan elektromekanis;
  • Suara alarm kebakaran meminta;
  • Peralatan siaran otomatis, siaran reguler.

Pin Map




Mode kerja

1) Mode Serial

Dukungan untuk mode komunikasi serial asinkron melalui perintah pengiriman serial PC 
Standar Komunikasi: 9600 bps 
Bit data: 1 
Checkout: tidak ada 
Kontrol Aliran: tidak ada 
  • Deskripsi instruksi
  • Kontrol Serial Cmd
  • Serial Query Cmd

2) Mode AD KEY

Kami menggunakan kunci modul AD, alih-alih metode tradisional koneksi keyboard matriks, itu adalah untuk mengambil kelebihan dari fungsionalitas MCU AD yang semakin kuat, modul konfigurasi default kami 2 port AD, 20 distribusi resistensi kunci.
  • Lihat diagram



3) Mode I / O

Inilah cara paling sederhana untuk menggunakan modul ini. 
  • Lihat diagram
Catatan: tekan waktu singkat berarti pra / berikutnya, dan tekan waktu lama berarti vol-, vol + 

Diagram Koneksi

Catatan: Untuk penggunaan sederhana, diagram atas sudah siap, tetapi jika Anda menemukan suara cukup keras, maka Anda dapat memasang resistor 1K ke pin TX. 


Salin mp3 Anda ke kartu micro SD Anda

CATATAN : Urutan Anda menyalin mp3 ke kartu micro SD akan memengaruhi urutan mp3 yang diputar, yang artinya fungsi play (1) akan memainkan mp3 pertama yang disalin ke dalam kartu micro SD.

Untuk Pengguna Mac

CATATAN : Jika Anda menggunakan Mac OS X untuk menyalin mp3, sistem file akan secara otomatis menambahkan file tersembunyi seperti: "._0001.mp3" untuk indeks, yang mana modul ini akan menangani sebagai file mp3 yang valid. Benar-benar menjengkelkan. Jadi Anda dapat menjalankan perintah berikut di terminal untuk menghilangkan file-file itu.
  dot_clean / Volume / <SDVolumeName>
Silakan ganti <SDVolumeName> dengan nama volume kartu SD Anda.

Kode sampel

Kami telah membuat pustaka Arduino untuk DFPlayer Mini untuk menyederhanakan metode agar Anda membuatnya berfungsi. 
Hubungkan perangkat keras seperti gambar di atas yang ditunjukkan dan mainkan dengan kode sampel. 
Anda dapat mengunduh pustaka terbaru di sini: DFRobotDFPlayerMini .

Kode contoh "GetStarted", beralih ke lagu berikutnya setiap 3 detik



/ ************************************************* **
 DFPlayer - Mini MP3 Player Untuk Arduino
 <https://www.dfrobot.com/index.php?route=product/product&product_id=1121>
 
 ************************************************ *
 Contoh ini menunjukkan fungsi dasar perpustakaan untuk DFPlayer.
 
 Dibuat 2016-12-07
 Oleh [Angelo qiao] (Angelo.qiao@dfrobot.com)
 
 Lisensi Publik Umum GNU yang Lebih Rendah.
 Lihat <http://www.gnu.org/licenses/> untuk detailnya.
 Semua di atas harus dimasukkan dalam redistribusi apa pun
 ************************************************ ** /

 / *********** Pemberitahuan dan Pemecahan Masalah ***************
 1. Koneksi dan Diagram dapat ditemukan di sini
 <https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299#Connection_Diagram>
 2.Kode ini diuji pada Arduino Uno, Leonardo, Mega board.
 ************************************************ ** /
#include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" SoftwareSerial mySoftwareSerial(10, 11); // RX, TX DFRobotDFPlayerMini myDFPlayer; void printDetail(uint8_t type, int value); void setup() { mySoftwareSerial.begin(9600); Serial.begin(115200); Serial.println(); Serial.println(F("DFRobot DFPlayer Mini Demo")); Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)")); if (!myDFPlayer.begin(mySoftwareSerial)) { //Use softwareSerial to communicate with mp3. Serial.println(F("Unable to begin:")); Serial.println(F("1.Please recheck the connection!")); Serial.println(F("2.Please insert the SD card!")); while(true); } Serial.println(F("DFPlayer Mini online.")); myDFPlayer.volume(10); //Set volume value. From 0 to 30 myDFPlayer.play(1); //Play the first mp3 } void loop() { static unsigned long timer = millis(); if (millis() - timer > 3000) { timer = millis(); myDFPlayer.next(); //Play next mp3 every 3 second. } if (myDFPlayer.available()) { printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Print the detail message from DFPlayer to handle different errors and states. } } void printDetail(uint8_t type, int value){ switch (type) { case TimeOut: Serial.println(F("Time Out!")); break; case WrongStack: Serial.println(F("Stack Wrong!")); break; case DFPlayerCardInserted: Serial.println(F("Card Inserted!")); break; case DFPlayerCardRemoved: Serial.println(F("Card Removed!")); break; case DFPlayerCardOnline: Serial.println(F("Card Online!")); break; case DFPlayerPlayFinished: Serial.print(F("Number:")); Serial.print(value); Serial.println(F(" Play Finished!")); break; case DFPlayerError: Serial.print(F("DFPlayerError:")); switch (value) { case Busy: Serial.println(F("Card not found")); break; case Sleeping: Serial.println(F("Sleeping")); break; case SerialWrongStack: Serial.println(F("Get Wrong Stack")); break; case CheckSumNotMatch: Serial.println(F("Check Sum Not Match")); break; case FileIndexOut: Serial.println(F("File Index Out of Bound")); break; case FileMismatch: Serial.println(F("Cannot Find File")); break; case Advertise: Serial.println(F("In Advertise")); break; default: break; } break; default: break; } }

Kode sampel "Fungsi Penuh", termasuk semua fungsi. Silakan baca komentar dan dokumen secara detail


/*************************************************** DFPlayer - A Mini MP3 Player For Arduino <https://www.dfrobot.com/index.php?route=product/product&product_id=1121> *************************************************** This example shows the all the function of library for DFPlayer. Created 2016-12-07 By [Angelo qiao](Angelo.qiao@dfrobot.com) GNU Lesser General Public License. See <http://www.gnu.org/licenses/> for details. All above must be included in any redistribution ****************************************************/ /***********Notice and Trouble shooting*************** 1.Connection and Diagram can be found here <https://www.dfrobot.com/wiki/index.php/DFPlayer_Mini_SKU:DFR0299#Connection_Diagram> 2.This code is tested on Arduino Uno, Leonardo, Mega boards. ****************************************************/ #include "Arduino.h" #include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" SoftwareSerial mySoftwareSerial(10, 11); // RX, TX DFRobotDFPlayerMini myDFPlayer; void printDetail(uint8_t type, int value); void setup() { mySoftwareSerial.begin(9600); Serial.begin(115200); Serial.println(); Serial.println(F("DFRobot DFPlayer Mini Demo")); Serial.println(F("Initializing DFPlayer ... (May take 3~5 seconds)")); if (!myDFPlayer.begin(mySoftwareSerial)) { //Use softwareSerial to communicate with mp3. Serial.println(F("Unable to begin:")); Serial.println(F("1.Please recheck the connection!")); Serial.println(F("2.Please insert the SD card!")); while(true); } Serial.println(F("DFPlayer Mini online.")); myDFPlayer.setTimeOut(500); //Set serial communictaion time out 500ms //----Set volume---- myDFPlayer.volume(10); //Set volume value (0~30). myDFPlayer.volumeUp(); //Volume Up myDFPlayer.volumeDown(); //Volume Down //----Set different EQ---- myDFPlayer.EQ(DFPLAYER_EQ_NORMAL); // myDFPlayer.EQ(DFPLAYER_EQ_POP); // myDFPlayer.EQ(DFPLAYER_EQ_ROCK); // myDFPlayer.EQ(DFPLAYER_EQ_JAZZ); // myDFPlayer.EQ(DFPLAYER_EQ_CLASSIC); // myDFPlayer.EQ(DFPLAYER_EQ_BASS); //----Set device we use SD as default---- // myDFPlayer.outputDevice(DFPLAYER_DEVICE_U_DISK); myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD); // myDFPlayer.outputDevice(DFPLAYER_DEVICE_AUX); // myDFPlayer.outputDevice(DFPLAYER_DEVICE_SLEEP); // myDFPlayer.outputDevice(DFPLAYER_DEVICE_FLASH); //----Mp3 control---- // myDFPlayer.sleep(); //sleep // myDFPlayer.reset(); //Reset the module // myDFPlayer.enableDAC(); //Enable On-chip DAC // myDFPlayer.disableDAC(); //Disable On-chip DAC // myDFPlayer.outputSetting(true, 15); //output setting, enable the output and set the gain to 15 //----Mp3 play---- myDFPlayer.next(); //Play next mp3 delay(1000); myDFPlayer.previous(); //Play previous mp3 delay(1000); myDFPlayer.play(1); //Play the first mp3 delay(1000); myDFPlayer.loop(1); //Loop the first mp3 delay(1000); myDFPlayer.pause(); //pause the mp3 delay(1000); myDFPlayer.start(); //start the mp3 from the pause delay(1000); myDFPlayer.playFolder(15, 4); //play specific mp3 in SD:/15/004.mp3; Folder Name(1~99); File Name(1~255) delay(1000); myDFPlayer.enableLoopAll(); //loop all mp3 files. delay(1000); myDFPlayer.disableLoopAll(); //stop loop all mp3 files. delay(1000); myDFPlayer.playMp3Folder(4); //play specific mp3 in SD:/MP3/0004.mp3; File Name(0~65535) delay(1000); myDFPlayer.advertise(3); //advertise specific mp3 in SD:/ADVERT/0003.mp3; File Name(0~65535) delay(1000); myDFPlayer.stopAdvertise(); //stop advertise delay(1000); myDFPlayer.playLargeFolder(2, 999); //play specific mp3 in SD:/02/004.mp3; Folder Name(1~10); File Name(1~1000) delay(1000); myDFPlayer.loopFolder(5); //loop all mp3 files in folder SD:/05. delay(1000); myDFPlayer.randomAll(); //Random play all the mp3. delay(1000); myDFPlayer.enableLoop(); //enable loop. delay(1000); myDFPlayer.disableLoop(); //disable loop. delay(1000); //----Read imformation---- Serial.println(myDFPlayer.readState()); //read mp3 state Serial.println(myDFPlayer.readVolume()); //read current volume Serial.println(myDFPlayer.readEQ()); //read EQ setting Serial.println(myDFPlayer.readFileCounts()); //read all file counts in SD card Serial.println(myDFPlayer.readCurrentFileNumber()); //read current play file number Serial.println(myDFPlayer.readFileCountsInFolder(3)); //read fill counts in folder SD:/03 } void loop() { static unsigned long timer = millis(); if (millis() - timer > 3000) { timer = millis(); myDFPlayer.next(); //Play next mp3 every 3 second. } if (myDFPlayer.available()) { printDetail(myDFPlayer.readType(), myDFPlayer.read()); //Print the detail message from DFPlayer to handle different errors and states. } } void printDetail(uint8_t type, int value){ switch (type) { case TimeOut: Serial.println(F("Time Out!")); break; case WrongStack: Serial.println(F("Stack Wrong!")); break; case DFPlayerCardInserted: Serial.println(F("Card Inserted!")); break; case DFPlayerCardRemoved: Serial.println(F("Card Removed!")); break; case DFPlayerCardOnline: Serial.println(F("Card Online!")); break; case DFPlayerPlayFinished: Serial.print(F("Number:")); Serial.print(value); Serial.println(F(" Play Finished!")); break; case DFPlayerError: Serial.print(F("DFPlayerError:")); switch (value) { case Busy: Serial.println(F("Card not found")); break; case Sleeping: Serial.println(F("Sleeping")); break; case SerialWrongStack: Serial.println(F("Get Wrong Stack")); break; case CheckSumNotMatch: Serial.println(F("Check Sum Not Match")); break; case FileIndexOut: Serial.println(F("File Index Out of Bound")); break; case FileMismatch: Serial.println(F("Cannot Find File")); break; case Advertise: Serial.println(F("In Advertise")); break; default: break; } break; default: break; } }

Comments

Popular posts from this blog

Pengantar ATmega328

Tutorial langkah demi langkah lengkap tentang Pengantar untuk ATmega328 Halo semuanya! Saya harap Anda semua akan baik-baik saja dan bersenang-senang. Hari ini, saya akan berbagi topik yang paling penting dan paling umum yaitu Pengantar untuk ATmega328. ATmega-328 pada dasarnya merupakan pengontrol mikro Advanced RISC (AVR). Ini mendukung data hingga delapan (8) bit. ATmega-328 memiliki memori internal internal 32KB. Pengontrol mikro ini memiliki banyak karakteristik lain. Anda juga harus melihat Pengantar PIC16F877a (ini adalah PIC Microcontroller ) dan kemudian membandingkan fungsi dari dua Microcontrollers ini. ATmega 328 memiliki memori Read Only Memory (EEPROM) yang Dapat Diprogram Secara Elektrik. Properti ini menunjukkan jika pasokan listrik yang dipasok ke mikro-pengontrol dihapus, bahkan ia dapat menyimpan data dan dapat memberikan hasil setelah menyediakannya dengan pasokan listrik. Selain itu, ATmega-328 memiliki 2KB Statis Random Access Memory (SRAM). Karakteristik l

Cara Mudah Memprogram DFPlayer Mini MP3 Module Dengan Arduino

Agar Arduino bisa mengeluarkan suara, lagu, dan sebagainya yang berformat MP3. Maka kita perlu menggunakan DFPlayer Mini MP3 Module. Tutorial nya saya jamin akan lebih sederhana dan dijamin akan berhasil kamu gunakan. Nah yang akan kita coba adalah memutar mp3 dengan perintah Arduino. 1. SIAPKAN ALAT Pastikan kamu sudah menyiapkan bahan-bahan berikut ini: Arduino Uno  DFPlayer Mini MP3  Micro SD +Card Reader Kabel Jumper  Speaker  Resistor 220 ohm  2. RANGKAI ALAT Jika sudah sekarang rangkai bahan tersebut seperti gambar dibawah ini: WARNING!!!  —> Pastikan rangkaian yang kamu buat sesuai dengan gambar, silahkan kamu cek lagi jika merasa masih ada yang salah dengan rangkaian kamu. Karena banyak kasus gagal, karena rangkaian yang tidak sesuai. 3. SIAPKAN FILE MP3 Selanjutnya adalah menyiapkan file MP3 yang akan di play, dan pastikan: Siapkan Micro SD dengan format  FAT32  (silahkan format dulu Micro SD jika punya kamu belum FAT32) Nama file MP3 nya  0001.m

Review Rumah Belajar

Review Content Dasar Listrik dan Elektronika Sub Kompetensi Aljabar Boolean Bagian ke 2 Pada kesempatan yang sangat baik ini saya akan mereview content pada rumah belajar materi dasar listrik dan elektronika dengan kompetensi aljabar boole bagian kedua Pada konten ini terutama pada bagian pendahuluan Sudah Cukup jelas tentang materi belajar yang akan dibahas namun sedikit masukkan jika gambar yang ada di sesuaikan dengan judul masalah rangkaian mikrokontroler aplikasi tidak sama dengan materinya Kemudian pada bagian konsep aljabar Boolean di bagian ini hanya di Jelaskan pembahasan gerbang NOT, gerbang AND, gerbang OR alangkah lebih sempurna jika pembahasan materi ini ditambah dengan gerbang NAND gerbang NOR gerbang EXOR dan gerbang EX-NOR Pada bagian tabulasi bilangan gerbang AND pada Tab AND, operasi boolean seharusnya perkalian bukan penjumlahan seperti yang tertulis pada teori tersebut Kemudian pada Tab 2 variabel gambar gerbang sudah sesuai dengan