MEMBUAT MP3 DENGAN DF PLAYER WEMOS DAN DOT MATRIK DENGAN TAMPILAN TRACK JUDUL LAGU

 #include <SoftwareSerial.h>

#include <DFRobotDFPlayerMini.h>

#include <IRremoteESP8266.h>

#include <IRrecv.h>

#include <IRutils.h>

#include <MD_Parola.h>

#include <MD_MAX72XX.h>

#include <SPI.h>


#define IR_PIN D5

#define RX_PIN D6

#define TX_PIN D7

#define HARDWARE_TYPE MD_MAX72XX::FC16_HW

#define MAX_DEVICES 4

#define DATA_PIN D0

#define CS_PIN D3

#define CLK_PIN D4


SoftwareSerial mySerial(RX_PIN, TX_PIN);

DFRobotDFPlayerMini mp3;

IRrecv irrecv(IR_PIN);

decode_results results;

MD_Parola matrix = MD_Parola(HARDWARE_TYPE, DATA_PIN, CLK_PIN, CS_PIN, MAX_DEVICES);


const char* songTitles[] = {

  "0001 SURAT ALFATIHAH",

  "0002 SURAT ALBAQORAH",

  "0003 SURAT AL-IMRAN",

  "0004 SURAT AN-NISA"

};


int currentTrack = 1;


void setup() {

  Serial.begin(115200);

  mySerial.begin(9600);

  irrecv.enableIRIn();

  matrix.begin();

  matrix.setIntensity(3);

  matrix.displayClear();


  if (!mp3.begin(mySerial)) {

    Serial.println("Gagal inisialisasi DFPlayer Mini!");

    displayMessage("DFPlayer Error");

    while (true);

  }

  mp3.volume(10);

}


void displayMessage(const char* message) {

  matrix.displayClear();

  matrix.displayText(message, PA_CENTER, 100, 1000, PA_SCROLL_LEFT, PA_SCROLL_LEFT);

  while (!matrix.displayAnimate()) {

    delay(100);

  }

}


void playTrack(int track) {

  if (track > 0 && track <= (sizeof(songTitles) / sizeof(songTitles[0]))) {

    mp3.play(track);

    Serial.print("Playing: ");

    Serial.println(songTitles[track - 1]);

    displayMessage(songTitles[track - 1]);

  }

}


void loop() {

  if (irrecv.decode(&results)) {

    if (results.value == 0xFFA25D) { // Tombol Play

      playTrack(currentTrack);

    } else if (results.value == 0xFF629D) { // Tombol Stop

      mp3.stop();

      Serial.println("Stop");

      displayMessage("Stop");

    } else if (results.value == 0xFFE21D) { // Tombol Next

      if (currentTrack < (sizeof(songTitles) / sizeof(songTitles[0]))) {

        currentTrack++;

      }

      playTrack(currentTrack);

    } else if (results.value == 0xFF22DD) { // Tombol Previous

      if (currentTrack > 1) {

        currentTrack--;

      }

      playTrack(currentTrack);

    } else if (results.value == 0xFF02FD) { // Tombol Volume Up

      mp3.volumeUp();

      Serial.println("Volume Up");

      displayMessage("Volume Up");

    } else if (results.value == 0xFFC23D) { // Tombol Volume Down

      mp3.volumeDown();

      Serial.println("Volume Down");

      displayMessage("Volume Down");

    } else if (results.value == 0xFFE01F) { // Tombol EQ Mode

      mp3.EQ(DFPLAYER_EQ_JAZZ);

      Serial.println("EQ Mode Changed");

      displayMessage("EQ Mode");

    }

    irrecv.resume();

  }

  delay(100);

}

Komentar

Postingan populer dari blog ini