Mục lục:

Máy nghe nhạc MP3 với Arduino: 6 bước
Máy nghe nhạc MP3 với Arduino: 6 bước

Video: Máy nghe nhạc MP3 với Arduino: 6 bước

Video: Máy nghe nhạc MP3 với Arduino: 6 bước
Video: Arduino | Phát âm thanh bằng DFPlayer mini + PAM8403 2024, Tháng mười một
Anonim
Image
Image
Bảng dữliệu
Bảng dữliệu

Trong phần lắp ráp này, chúng tôi đã sử dụng một máy nghe nhạc mp3 với Arduino Uno, một bộ khuếch đại âm thanh PAM8403 mini có điều chỉnh âm lượng, một mô-đun mp3 DFPlayer Mini và một cặp loa 3 Watt.

Đề án này không chỉ phục vụ cho trình phát nhạc mà còn cho phép các chức năng thoại cho thiết bị rào chắn đỗ xe hoặc rô bốt, trong số những thiết bị khác. Bộ phận lắp ráp này sẽ cho phép đặt giọng nói đã ghi vào thiết bị. Giọng này sẽ tự nhiên và không tổng hợp. Đối với hầu hết mọi người, đây là những tính năng thích hợp hơn so với các lựa chọn thay thế tiêu chuẩn.

Đối với lắp ráp này, chúng tôi đặc biệt sử dụng Arduino Uno, nhưng bạn cũng có thể kết nối với ESP8266 hoặc ESP32. Rõ ràng, một sự điều chỉnh sẽ được yêu cầu trên các chân.

Bước 1: Biểu dữ liệu

Bước 2: Mô-đun DFPlayer

Mô-đun DFPlayer
Mô-đun DFPlayer

Mô-đun DFPlayer sử dụng giao tiếp nối tiếp RX TX, VCC, GND. Nó có đầu ra cho hai loa và đầu vào âm thanh.

Bước 3: Bộ khuếch đại mini PAM8403

Bộ khuếch đại mini PAM8403
Bộ khuếch đại mini PAM8403

Bước 4: Lắp ráp

cuộc họp
cuộc họp

Bước 5: Thư viện

Thư viện
Thư viện

Thêm thư viện "DFRobotDFPlayerMini" sau để giao tiếp với mô-đun mp3.

Chỉ cần truy cập "Phác thảo >> Bao gồm Thư viện >> Quản lý Thư viện…"

Bước 6: Mã nguồn

Chúng tôi sẽ bắt đầu bằng cách xác định các thư viện và hằng số mà chúng tôi sẽ sử dụng với mã của mình.

Bắt đầu bằng cách tạo một đối tượng, phần mềm nối tiếp và một đối tượng khác, là myDFPlayer.

Biến buf, có kiểu String, sẽ dùng để lưu trữ dữ liệu đến từ Arduino Serial, đây sẽ là các lệnh cho mô-đun MP3. Biến "pause" sẽ được sử dụng để cho biết nhạc đang phát hay bị tạm dừng (pause = true và cho biết rằng nó đang bị tạm dừng, nếu không thì nó đang phát).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia a serial por software nos pinos 10 e 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // Objeto responseável pela comunicação com o módulo MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // variável responseável por armazenar os comandos enviados para controlar o player String buf; // variável responseável por armazenar o estado do player (0: tocando; 1: pausado) boolean pausa = false; // variável responseável por armazenar o estado da equalização // varia de 0 a 5 int equalizacao = 0; // (0 = Normal, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Classic, 5 = Bass) "// variável responseável por armazenar o total de músicas không có thẻ SD. Int maxSongs = 0;

Cài đặt

Trong bước này, chúng tôi đặt các tùy chọn của bản in để cung cấp cho bạn dấu hiệu rằng nó đang lắp mạch, ví dụ như đánh giá các điều kiện sai.

void setup () {// Comunicacao serial com o modulo mySoftwareSerial.begin (9600); // Inicializa a serial do Arduino Serial.begin (115200); // Verifica se o modulo esta responseendo e se o // cartao SD foi encontrado Serial.println (); Serial.println ("DFRobot DFPlayer Mini"); Serial.println ("Inicializando modulo DFPlayer… (3 ~ 5 segundos)"); if (! myDFPlayer.begin (mySoftwareSerial)) {Serial.println ("Nao inicializado:"); Serial.println ("1. Cheque as conexoes do DFPlayer Mini"); Serial.println ("2. Insira um cartao SD"); while (đúng); } Serial.println (); Serial.println ("Modulo DFPlayer Mini inicializado!"); // Định nghĩa iniciais myDFPlayer.setTimeOut (500); // Hết thời gian chờ nối tiếp 500ms myDFPlayer.volume (10); // Tập 10 vai de 0 a 30 myDFPlayer. EQ (0); // Equalizacao normal // recupera o numro de Músicas encontradas no SD. maxSongs = myDFPlayer.readFileCounts (DFPLAYER_DEVICE_SD); Serial.println (); Serial.print ("Numero de arquivos no cartao SD:"); Serial.println (maxSongs); // Mostra o menu de comandos menu_opcoes ();

Menu Tùy chọn

Bạn kiểm soát toàn bộ lắp ráp này thông qua màn hình nối tiếp. Vì vậy, mỗi lần, lược đồ sẽ in Menu Tùy chọn mà bạn có, với các lệnh, chỉ đường.

void menu_opcoes () {Serial.println (); Serial.println ("Comandos:"); Serial.print ("[1-"); Serial.print (maxSongs); Serial.println ("] Para selecionar o arquivo MP3"); Serial.println ("[s] parar replicao"); Serial.println ("[p] pausa / Continua a musica"); Serial.println ("[e] seleciona equalizacao"); Serial.println ("[+ hoặc -] aumenta ou diminui o volume"); Serial.println (); }

Vòng

void loop () {// Aguarda a entrada de dados pela serial while (Serial.available ()> 0) {// recupera os dados de entrada buf = Serial.readStringUntil ('\ n'); // Reproductionao (índice da música) if ((buf.toInt ()> = 1) && (buf.toInt () <= maxSongs)) {Serial.print ("Reproduzindo musica:"); Serial.println (buf.toInt ()); myDFPlayer.play (buf.toInt ()); // dá chơi na música menu_opcoes (); } // Pausa / Continua a musica if (buf == "p") {if (pausa) {Serial.println ("Continua musica…"); myDFPlayer.start (); } else {Serial.println ("Musica pausada…"); myDFPlayer.pause (); } pausa =! pausa; menu_opcoes (); } // Parada if (buf == "s") {myDFPlayer.stop (); Serial.println ("Musica parada!"); menu_opcoes (); } // Seleciona equalizacao if (buf == "e") {equalizacao ++; if (equalizacao == 6) {equalizacao = 0; } myDFPlayer. EQ (equalizacao); Serial.print ("Equalizacao:"); Serial.print (equalizacao); Serial.println ("(0 = Bình thường, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Cổ điển, 5 = Bass)"); menu_opcoes (); } // Âm lượng Aumenta if (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Khối lượng tùy ý:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Âm lượng Diminui if (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Khối lượng tùy ý:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } } //trong khi lặp lại

Đề xuất: