Anda di halaman 1dari 18

MP3 Player Menggunakan DFPlayer Mini

dan Arduino
Juni 13, 2019 admin Hobi & Lainnya 0

Spread the love






Mengenal DFPlayer Mini

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

Spesifikasi

 Support sampling rates (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 sistem file FAT16 dan 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
 Fungsi menunggu suara iklan, musik dapat ditangguhkan, ketika iklan berakhir musik
kembali 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 level yang dapat diatur

Aplikasi

 Siaran suara navigasi mobil


 Suara pengatur transportasi jalan, stasiun bis, stasiun kereta dan jalan tol
 Suara mesin penjawab otomatis, customer services
 Suara panduan kendaraan masuk dan keluar dari jalur yang membutuhkan verifikasi
 Suara saluran kontrol perbatasan keamanan publik
 Alarm suara multi-saluran atau suara panduan pengoperasian peralatan
 Mobil wisata untuk pemberitahuan mengemudi yang aman
 Alarm kegagalan peralatan elektromekanis
 Suara alarm kebakaran
 Suara gerobak jualan keliling
 Peralatan siaran otomatis, siaran reguler dll

DFPlayer Mini Pin Out

DFPlayer
Mini Pin Out
Deskripsi Pin DFPlayer Mini

Work Mode

1. Serial Mode
Support for asynchronous serial communication mode via PC serial sending commands
Communication Standard:9600 bps Data bits :1 Checkout:none Flow Control :none

 Instruction Description
 Serial Control Cmd

RANGKAIAN KENDALI 3 LAMPU


DENGAN 3 TOMBOL ON/OFF (ARDUINO
UNO)
Unknown 21.51   ARDUINO LANJUTAN   ARDUINO UNO

Penjelasan Singkat:

Hai sobat semua, kali ini kita akan membuat rangkaian pengembangan dari artikel Rangkaian

Kendali 1 Lampu dengan 1 Tombol ON/OFF.  Pada rangkaian kali ini kita akan menggunakan 3

tombol dan 3 lampu LED yang masing-masing tombol akan di fungsikan sebagai saklar bagi tiap-

tiap lampu LED, dan setiap lampu dimatikan, kita akan mengirimkan pesan ke Serial Monitor yang

memberitahukan bahwa lampu mana yang sedang di nyalakan dan di matikan. Tujuan dari

perancangan ini adalah untuk lebih memahami cara mengembangkan rangkaian dan cara
memprogram tiap-tiap kaki arduino yang kita perlukan agar dapat bekerja sesuai dengan yang kita

inginkan. Baiklah sobat sekalian, langsung saja kita perhatikan susunan rangkaian yang akan kita

buat. Sobat bisa membuat nya langsung di atas papan breadboard sesuai gambar rangkaian di

bawah ini.
Gambar Rangkaian:

Cara Kerja Rangkaian:


Pertama sekali program akan memeriksa tombol mana yang ditekan, Jika Tombol S1 di Tekan maka
Nilai dari Pin A0 akan bernilai HIGH, dan selanjutnya rangkaian akan membaca kondisi lampu
LED1, jika lampu LED1 mati maka LED1 akan di nyalakan dan sebaliknya.Jika Tombol S2 yang di
tekan maka Nilai dari Pin A1 yang akan bernilai HIGH dan akan merubah kondisi LED2 dari mati ke
hidup atau sebaliknya, dan jika Tombol S3 yang ditekan maka LED3 yang akan di nyalakan atau
dimatikan sesuai dengan kondisi terakhir dari lampu LED3 tersebut. 

Sketch Arduino

int tombol1 = A0;                       //jadikan pin A0 sebagai tombol1


int tombol2 = A1;                       //jadikan pin A1 sebagai tombol2
int tombol3 = A2;                       //jadikan pin A2 sebagai tombol3
int led1 = 8;                               //jadikan pin 8 sebagai led1
int led2 = 9;                               //jadikan pin 9 sebagai led2
int led3 = 10;                             //jadikan pin 10 sebagai led3

void setup() {
    Serial.begin(9600);                        //aktfikan port serial untku komunikasi dengan pc
    pinMode (tombol1, INPUT);           //set tombol1 sebagai input
    pinMode (tombol2, INPUT);           //set tombol2 sebagai input
    pinMode (tombol3, INPUT);           //set tombol3 sebagai input
    pinMode(led1, OUTPUT);              //set led1 sebagai output
    pinMode(led2, OUTPUT);              //set led2 sebagai output
    pinMode(led3, OUTPUT);              //set led3 sebagai output

  }

void loop() {
    if (digitalRead(tombol1) == HIGH)  //jika tombol1 ditekan
    if (digitalRead(led1) == LOW) {       //cek jika led1 mati
        digitalWrite (led1, HIGH);            //hidupkan led1
        Serial.println("LED1 HIDUP");     //kirim pemberitahuan ke pc "LED1 HIDUP"
        delay(500);                                  //beri delay sebesar 500ms

  }

     else {                                                //sebaliknya, jika led1 hidup

        digitalWrite (led1, LOW);             //matikan led1

        Serial.println("LED1 MATI");        //kirim pemberitahuan ke pc "LED1 MATI"

        delay(500);                                  //beri delay sebesar 500ms

  }

    else if (digitalRead(tombol2) == HIGH)   //jika tombol2 yang ditekan

    if (digitalRead(led2) == LOW) {               //cek jika led2 mati


        digitalWrite (led2, HIGH);                    //hidupkan led2

        Serial.println("LED2 HIDUP");             //kirim pemberitahuan ke pc "LED2 HIDUP"

        delay(500);                                          //beri delay sebesar 500ms

     }

      else {                                                      //sebaliknya, jika led2 hidup

        digitalWrite (led2, LOW);                     //matikan led2


        Serial.println("LED2 MATI");                //kirim pemberitahuan ke pc "LED2 MATI"
        delay(500);                                          //beri delay sebesar 500ms

     }

    else if (digitalRead(tombol3) == HIGH)    //jika tombol3 yang ditekan


    if (digitalRead(led3) == LOW) {                //cek jika led3 mati
        digitalWrite (led3, HIGH);                     //hidupkan led3
        Serial.println("LED3 HIDUP");              //kirim pemberitahuan ke pc "LED3 HIDUP"
        delay(500);                                           //beri delay sebesar 500ms
  }

     else {                                                        //sebaliknya, jika led3 hidup

        digitalWrite (led3, LOW);                     //matikan led3


        Serial.println("LED3 MATI");                //kirim pemberitahuan ke pc "LED3 HIDUP"
        delay(500);                                          //beri delay sebesar 500ms

  }
}

Penjelasan Potongan Program

int tombol1 = A0;                       //jadikan pin A0 sebagai tombol1

int tombol2 = A1;                       //jadikan pin A1 sebagai tombol2


int tombol3 = A2;                       //jadikan pin A2 sebagai tombol3

int led1 = 8;                               //jadikan pin 8 sebagai led1

int led2 = 9;                               //jadikan pin 9 sebagai led2


int led3 = 10;                             //jadikan pin 10 sebagai led3
Perintah diatas adalah pendeklarasian tiap pin arduino yang akan digunakan sebagai led dan
tombol.

void setup() {
    Serial.begin(9600);                        //aktfikan port serial untku komunikasi dengan pc

    pinMode (tombol1, INPUT);           //set tombol1 sebagai input

    pinMode (tombol2, INPUT);           //set tombol2 sebagai input

    pinMode (tombol3, INPUT);           //set tombol3 sebagai input

    pinMode(led1, OUTPUT);              //set led1 sebagai output

    pinMode(led2, OUTPUT);              //set led2 sebagai output

    pinMode(led3, OUTPUT);              //set led3 sebagai output

  }
Serial.begin(9600); adalah perintah yang digunakan untuk mengaktifkan komunikasi dengan dunia
luar melalui port USB dengan kecepatan 9600 bit/s. Pada aplikasi ini kita akan memantau keluaran
arduino melalui port USB dengan Serial Monitor milik Aplikasi Arduino.
Selebihnya adalah perintah untuk mengkonfigurasi pin arduino yang telah di deklarasikan
sebelumnya, agar pada saat program dijalankan, arduino akan mengubah status pin menjadi
keluaran atau masukan sesuai dengan konfigurasai masing-masing pin.
       Keterangan Singkat:
      * Masukan [INPUT] berarti program dapat membaca nilai dari pin apakah bernilai HIGH atau
LOW.
      * Keluaran [OUTPUT] berarti program dapat merubah status pin menjadi HIGH atau LOW.
      * Pada Rangkaian, Nilai HIGH berarti bahwa keluaran berada pada tegangan 5V, lampu      
        menyala atau tombol dalam keadaan ditekan sehingga pin terhubung ke positif catu daya [5V].
      * Pada Rangkaian, Nilai LOW berarti bahwa keluaran berada pada tegangan 0V, Lampu Mati 

        atau tombol dalam keadaan ditekan sehingga pin terhubung ke negative catu daya [0V].
void loop() {
    if (digitalRead(tombol1) == HIGH)  //jika tombol1 ditekan
    if (digitalRead(led1) == LOW) {       //cek jika led1 mati
        digitalWrite (led1, HIGH);            //hidupkan led1
        Serial.println("LED1 HIDUP");     //kirim pemberitahuan ke pc "LED1 HIDUP"
        delay(500);                                  //beri delay sebesar 500ms
  }

     else {                                                //sebaliknya, jika led1 hidup

        digitalWrite (led1, LOW);             //matikan led1

        Serial.println("LED1 MATI");        //kirim pemberitahuan ke pc "LED1 MATI"

        delay(500);                                  //beri delay sebesar 500ms

  }

    else if (digitalRead(tombol2) == HIGH)   //jika tombol2 yang ditekan

    if (digitalRead(led2) == LOW) {               //cek jika led2 mati

        digitalWrite (led2, HIGH);                    //hidupkan led2

        Serial.println("LED2 HIDUP");             //kirim pemberitahuan ke pc "LED2 HIDUP"

        delay(500);                                          //beri delay sebesar 500ms

     }

      else {                                                      //sebaliknya, jika led2 hidup

        digitalWrite (led2, LOW);                     //matikan led2


        Serial.println("LED2 MATI");                //kirim pemberitahuan ke pc "LED2 MATI"
        delay(500);                                          //beri delay sebesar 500ms

     }

    else if (digitalRead(tombol3) == HIGH)    //jika tombol3 yang ditekan


    if (digitalRead(led3) == LOW) {                //cek jika led3 mati
        digitalWrite (led3, HIGH);                     //hidupkan led3
        Serial.println("LED3 HIDUP");              //kirim pemberitahuan ke pc "LED3 HIDUP"
        delay(500);                                           //beri delay sebesar 500ms
  }

     else {                                                        //sebaliknya, jika led3 hidup

        digitalWrite (led3, LOW);                     //matikan led3


        Serial.println("LED3 MATI");                //kirim pemberitahuan ke pc "LED3 HIDUP"
        delay(500);                                          //beri delay sebesar 500ms

  }
}
Di dalam void loop() {}; Program akan menguji tombol mana yang sedang ditekan, sobat bisa
perhatikan keterangan tiap baris perintah pada sketch diatas.
Perintah if (digitalRead(tombol1) == HIGH) akan menguji apakah tombol satu sedang ditekan dan
jika iya maka perintah if (digitalRead(led1) == LOW);  akan melanjutkan pengujian dengan melihat
kondisi lampu led1 apakah mati. Jika lampu mati maka lampu led1 akan dinyalakan dengan perintah
digitalWrite (led1, HIGH) dengan memberi nilai HIGH pada led1.  Selanjutnya program akan
mengirimkan keterangan LED1 HIDUP ke USB serial dengan perintah Serial.println("LED1
HIDUP"); yang kemudian akan kita tampilkan pada Serial Monitor. Berikut tampilan dari Serial
Monitor pada Aplikasi Arduino.
Disamping dapat kita lihat keterangan yang muncul pada Serial Monitor yang bertuliskan LED1
HIDUP dan seterusnya. keterangan akan muncul setiap kali ada perubahan kondisi pada led yang
sedang di nyalakan atau dimatikan.

Kembali ke Program. Selanjutnya perintah delay(500); memberikan waktu tunda selama 500ms


untuk mengecek penekanan tombol berikutnya. Dan perintah di dalam else {}; akan dijalankan jika
pada pengujian sebelumnya status  lampu led1 dalam kondisi hidup sehingga baris perintah didalam
nya yang akan dijalankan dan memberi  nilai led1 menjadi LOW  sehingga lampu led1 mati   dan
mengirimkan keterangan ke Serial Monitor "LED1 MATI".

                                                  

Demikian juga dengan baris perintah dibawah nya, selebihnya berfungsi untuk menguji kondisi

lampu led2 dan led3 apakah dalam kondisi HIGH atau LOW.. Sehingga kondisi dari lampu led yang

dituju akan diubah kondisi nya dari HIGH ke LOW atau sebaliknya.

Demikianlah cara kerja dari rangkaian dan program arduino yang telah kita buat. Semoga sobat
semua sudah bisa mengembangkan sendiri rangkaian dan program yang sudah kita coba dan sobat
juga bisa mencoba membuat sebuah rangkaian baru yang lebih kreatif  sesuai dengan yang sobat
inginkan.
Trims
Sobat Arduino.

Author : Unknown

Share this
Google Facebook Twitter More


 Serial Query Cmd

2. AD KEY Mode

3. I/O Mode
Ini mode yang paling sederhana.
Pada artikel ini kita akan membuat dua model MP3 Player. Pertama kita akan membuat pemutar
MP3 sederhana dengan satu speaker dan yang kedua meningkatkannya sebagai pemutar Stereo
menggunakan modul amplifier sederhana yaitu PAM8403 super mini dan dua speaker.

Bahan Yang Dibutuhkan

 Arduino Uno (atau lainnya)


 DF Player module
 1K Resistor
 Tiga push buttons (dapat ditambahkan jika ingin memfungsikan tombol lainnya)
 Speaker (2 untuk stereo player)
 PAM8403 Super mini Amplifier Module (untuk stereo player)

Library

Ada library menarik yang tersedia bagi kita untuk menggunakan DFPlayer dengan mudah.
Meskipun tanpa menggunakan library kita juga dapat menulis kode tetapi kita harus menulis
semua sinyal (perintah) secara manual. Jadi kita akan menggunakan library yang sudah tersedia
dan bisa didownload DISINI.

Skema Rangkaian

Berikut adalah skema rangkaian untuk MP3 Player Mono sederhana


Sedangkan berikut ini adalah skema untuk pemutar MP3 Stereo dengan modul amplifier audio
PAM8403 Super Mini. Harap dicatat bahwa Anda dapat menggunakan sirkuit Amplifier lain
yang kompatibel. Disini menggunakan PAM8403 karena biaya yang sangat murah dan mudah
digunakan. dan juga bekerja dengan supply 5V (dapat bekerja dengan +5V Arduino)

Source Code
Berikut ini adalah source code untuk DFPlayer Mini, jika ingin menambahkan fungsi-fungsi
yang lain bisa ditambahkan sendiri code programnya dengan mengacu pada library yang
digunakan.

#include "SoftwareSerial.h"
#include "DFRobotDFPlayerMini.h"

SoftwareSerial mySoftwareSerial(10, 11); // RX, TX


DFRobotDFPlayerMini myDFPlayer;

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);

mySoftwareSerial.begin(9600);
Serial.begin(9600);

delay(1000);

Serial.println();
Serial.println("DFPlayer Mini Demo");
Serial.println("Initializing DFPlayer...");

if (!myDFPlayer.begin(mySoftwareSerial)) {
Serial.println("Unable to begin:");
Serial.println("1.Please recheck the connection!");
Serial.println("2.Please insert the SD card!");
while (true);
}
Serial.println(F("DFPlayer Mini online."));

myDFPlayer.setTimeOut(500);

//----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);
myDFPlayer.outputDevice(DFPLAYER_DEVICE_SD);

myDFPlayer.play(1); //Play the first song


isPlaying = true;
Serial.println("Playing..");
}

void loop() {
if (digitalRead(buttonPause) == LOW) {
if (isPlaying) {
myDFPlayer.pause();
isPlaying = false;
Serial.println("Paused..");
} else {
isPlaying = true;
myDFPlayer.start();
Serial.println("Playing..");
}
delay(500);
}
if (digitalRead(buttonNext) == LOW) {
if (isPlaying) {
myDFPlayer.next();
Serial.println("Next Song..");
}
delay(500);
}

if (digitalRead(buttonPrevious) == LOW) {
if (isPlaying) {
myDFPlayer.previous();
Serial.println("Previous Song..");
}
delay(500);
}
}

Menjalankan DFPlayer Mini

Copy beberapa File MP3 ke kartu MicroSD dan masukkan ke slot MicroSD pada modul
DFPlayer Mini. Setelah itu aktifkan supply keseluruhan rangkaian.

+++++++ Semoga Bermanfaat +++++++

Anda mungkin juga menyukai