25 C
Hanoi
Chủ Nhật, Tháng Chín 25, 2022

THIẾT KẾ PHẦN CỨNG - NHẬN THIẾT KẾ ĐIỆN TỬ CHO SẢN PHẨM PHẦN CỨNG SỐ, IOT, CÔNG NGHIỆP,...

[Arduino] Mạch MP3 DFPlayer mini

Mạch MP3 Player Mini Arduino (DFP Player)

Mạch phát âm thanh MP3 tích hợp Amply DFPlayer Mini có thiết kế nhỏ gọn được sử dụng để phát âm thanh MP3 qua thẻ nhớ MicroSD giao tiếp với Vi điều khiển qua giao tiếp UART, mạch có tích hợp Amply công suất nhỏ nên có thể kết nối trực tiếp với loa (khoảng 3W) để thực hiện một số ứng dụng về âm thanh đơn giản.. Ngoài ra, ta còn có thể điều khiển chơi MP3 bằng Arduino . Module hỗ trợ giải mã MP3, WAV , WMA.
Thông số kỹ thuật
Tốc độ lấy mẫu (Khz) ; 8 / 11.025 / 12 / 16 / 22.05 / 24 / 32 / 44.1 / 48 với ngõ ra 24bit
Hỗ trợ đầy đủ FAT16, FAT32, thẻ TF hỗ trợ tối đa 32Gb.
Có thể điều khiển qua các chân IO hay chuẩn nối tiếp UART.
Các file âm thanh có thể sắp xếp theo thư mục ( tối đa 100 mục ) , mỗi mục chứa tối đa 255 bài hát.
Có thể điều chỉnh 30 mức Volume và 6 mức EQ.

Tên chân trên DFP Player

Các chế độ hoạt động

  • Sử dụng vi điều khiển giao tiếp với module DFPlayer qua UART (bài viết đề cập chế độ này)
  • Sử dụng 2 chân AD KEY: Mỗi chân AD là chân analog để xác định phím chức năng (mỗi chân phát hiện 10 phím khác nhau)
  • Sử dụng chế độ I/O

Tham khảo chi tiết về các chế độ trong tài liệu DFPlayer Mini Manul tại https://drive.google.com/drive/folders/1Y3voEXO2nh5WgNNVjoBNaw0beL1KwNsL?usp=sharing

Vài sơ đồ kết nối với Arduino

Chia sẻ code trên cộng đồng Arduino

  Arduino Uno với module DFPlayer Mini

Link tải Code+Thư viện SoftwareSerial.h https://drive.google.com/drive/folders/1Y3voEXO2nh5WgNNVjoBNaw0beL1KwNsL?usp=sharing

///              MP3 PLAYER PROJECT
/// http://educ8s.tv/arduino-mp3-player/
//////////////////////////////////////////


#include "SoftwareSerial.h"
SoftwareSerial mySerial(10, 11);
# define Start_Byte 0x7E
# define Version_Byte 0xFF
# define Command_Length 0x06
# define End_Byte 0xEF
# define Acknowledge 0x00 //Returns info with command 0x41 [0x01: info, 0x00: no info]

# 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)
  {
    if(isPlaying)
    {
      pause();
      isPlaying = false;
    }else
    {
      isPlaying = true;
      play();
    }
  }


 if (digitalRead(buttonNext) == ACTIVATED)
  {
    if(isPlaying)
    {
      playNext();
    }
  }

   if (digitalRead(buttonPrevious) == ACTIVATED)
  {
    if(isPlaying)
    {
      playPrevious();
    }
  }
}

void playFirst()
{
  execute_CMD(0x3F, 0, 0);
  delay(500);
  setVolume(20);
  delay(500);
  execute_CMD(0x11,0,1); 
  delay(500);
}

void pause()
{
  execute_CMD(0x0E,0,0);
  delay(500);
}

void play()
{
  execute_CMD(0x0D,0,1); 
  delay(500);
}

void playNext()
{
  execute_CMD(0x01,0,1);
  delay(500);
}

void playPrevious()
{
  execute_CMD(0x02,0,1);
  delay(500);
}

void setVolume(int volume)
{
  execute_CMD(0x06, 0, volume); // Set the volume (0x00~0x30)
  delay(2000);
}

void execute_CMD(byte CMD, byte Par1, byte Par2)
// Excecute the command and parameters
{
// Calculate the checksum (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]);
}
}

Tham khảo http://educ8s.tv/arduino-mp3-player/
https://wiki.dfrobot.com/DFPlayer_Mini_SKU_DFR0299
https://www.dfrobot.com/blog-277.html

LEAVE A REPLY

Please enter your comment!
Please enter your name here

- Advertisment -

Most Popular

Chia sẻ PCB KIT ESP32

Mạch nguyên lý schemaic: Download toàn bộ project phần mềm Altium: DOWNLOAD Một vài hình ảnh thiết kế trên Altium:

Chia sẻ PCB Ethernet Gigabit Switch 5 Port

Mạch nguyên lý Schematic: DOWNLOAD ALTIUM PROJECT Một số hình ảnh 3D và 2D của mạch: Lớp TOP: Lớp 2: Lớp 3:Lớp Bottom:

Chia sẻ PCB mạch Hub USB2.0 dùng FE1.1S

DOWNLOAD PROJECT (ALTIUM) Mạch thiết kế trên phần mềm Altium, 2 lớp, dùng cho mục đích thử nghiệm.

Chia sẻ PCB nguồn công nghiệp VRB2405YMD-20WR3

Công suất đầu ra 20 Vin (VDC) 18~36 Vout (VDC) 5 Số đầu ra 1 Điện áp cách ly 1500     DOWNLOAD  

Recent Comments