Inhaltsverzeichnis:

MP3-Player mit Arduino - Gunook
MP3-Player mit Arduino - Gunook

Video: MP3-Player mit Arduino - Gunook

Video: MP3-Player mit Arduino - Gunook
Video: ПАЯЕМ МАЛЕНЬКИЙ MP3 PLAYER 2024, November
Anonim
Image
Image
Datenblatt
Datenblatt

In dieser Baugruppe haben wir einen MP3-Player mit Arduino Uno, einen Mini-PAM8403-Soundverstärker mit Lautstärkeregelung, ein MP3-Modul DFPlayer Mini und ein Paar 3-Watt-Lautsprecher verwendet.

Dieses Schema dient nicht nur für den Musikplayer, sondern ermöglicht unter anderem auch Sprachfunktionen für eine Parkschranke oder einen Roboter. Diese Anordnung ermöglicht die Platzierung einer aufgezeichneten Stimme in den Geräten. Diese Stimme ist natürlich und nicht synthetisiert. Für die meisten Menschen sind dies Vorteile gegenüber den Standardalternativen.

Für diese Baugruppe verwenden wir speziell das Arduino Uno, Sie können jedoch auch eine Verbindung zu ESP8266 oder ESP32 herstellen. An den Stiften ist natürlich eine Justierung erforderlich.

Schritt 1: Datenblatt

Schritt 2: DFPlayer-Modul

DFPlayer-Modul
DFPlayer-Modul

Das DFPlayer-Modul verwendet die serielle Kommunikation RX TX, VCC, GND. Es hat Ausgang zu zwei Lautsprechern und Audioeingang.

Schritt 3: Mini-Verstärker PAM8403

Mini-Verstärker PAM8403
Mini-Verstärker PAM8403

Schritt 4: Montage

Montage
Montage

Schritt 5: Bibliotheken

Bibliotheken
Bibliotheken

Fügen Sie die folgende Bibliothek "DFRobotDFPlayerMini" für die Kommunikation mit dem mp3-Modul hinzu.

Rufen Sie einfach „Skizze >> Bibliotheken einschließen >> Bibliotheken verwalten …“auf.

Schritt 6: Quellcode

Wir beginnen mit der Definition der Bibliotheken und Konstanten, die wir mit unserem Code verwenden.

Beginnen Sie mit der Erstellung eines Objekts, der seriellen Software, und eines anderen, das myDFPlayer ist.

Die Variable buf vom Typ String dient zum Speichern der vom Arduino Serial kommenden Daten, die die Befehle für das MP3-Modul darstellen. Die Variable "pause" wird verwendet, um anzuzeigen, ob die Musik abgespielt oder angehalten wird (pause = true, und zeigt an, dass sie angehalten ist, andernfalls wird abgespielt).

#include "SoftwareSerial.h"#include "DFRobotDFPlayerMini.h" //Inicia a serial por software nos pinos 10 und 11 SoftwareSerial mySoftwareSerial(10, 11); // RX, TX //Responsável pela comunicação com oder módulo MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; //variável responsável por armazenar os comandos enviados para controlar o player String buf; //variável responsável por armazenar oder estado do player (0: tocando; 1: pausado) boolean pausa = false; //variável responsá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 = Klassisch, 5 = Bass)" // variável responsável por armazenar o total de músicas präsentiert keine SD-Karte. int maxSongs = 0;

Aufstellen

In diesem Schritt setzen wir Druckoptionen, um Ihnen Hinweise darauf zu geben, dass die Schaltung montiert wird, beispielsweise mit Auswertungen von falschen Bedingungen.

Void setup () {//Comunicacao serielle com oder modulo mySoftwareSerial.begin (9600); // Initialisierung einer seriellen 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. Check als Conexoes tun DFPlayer Mini"); Serial.println ("2. Insira um cartao SD"); während (wahr); } Serial.println(); Serial.println ("Modulo DFPlayer Mini-Initialisierung!"); //Definicoes iniciais myDFPlayer.setTimeOut(500); // Timeout seriell 500ms myDFPlayer.volume(10); //Volume 10 vai de 0 a 30 myDFPlayer. EQ(0); //Equalizacao normal //recupera o numero de Músicas encontradas kein 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();

Optionsmenü

Sie steuern diese gesamte Baugruppe über den seriellen Monitor. Das Schema druckt also jedes Mal das Optionsmenü, das Sie haben, mit Befehlen und Anweisungen.

Void menu_opcoes () {Serial.println (); Serial.println ("Kommandos:"); Serial.print(" [1-"); Serial.print (maxSongs); Serial.println("] Para Auswahl oder Arquivo MP3"); Serial.println(" [s] parar reproducao"); Serial.println(" [p] Pause/Continua a musica"); Serial.println(" [e] seleciona equalizacao"); Serial.println("[+ oder -] Aumenta ou diminui o volume"); Serial.println(); }

Schleife

Void Schleife () {//Aguarda ein entrada de dados pela serial while (Serial.available () > 0) {//recupera os dados de entrada buf = Serial.readStringUntil ('\n'); // Reproducao (Indice da música) if ((buf.toInt() >= 1) && (buf.toInt() <= maxSongs)) {Serial.print("Reproduzindo musica:"); Serial.println (buf.toInt()); myDFPlayer.play(buf.toInt()); // Musik spielen menu_opcoes(); } //Pausa/Continua a musica if (buf == "p") { if (pausa) { Serial.println ("Continua musica …"); myDFPlayer.start(); } sonst { Serial.println ("Musica pausada …"); myDFPlayer.pause(); } Pause = ! Pause; menu_opcoes(); } //Parada if (buf == "s") { myDFPlayer.stop(); Serial.println ("Musica parada!"); menu_opcoes(); } //Seleciona equalizacao if (buf == "e") { equalizacao++; wenn (Equalizacao == 6) {Equalizacao = 0; } myDFPlayer. EQ(equalizacao); Serial.print ("Equalizacao:"); Serial.print (equalizacao); Serial.println(" (0 = Normal, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Klassik, 5 = Bass)"); menu_opcoes(); } //Aumenta-Volumen if (buf == "+") { myDFPlayer.volumeUp(); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes(); } //Diminui volume if (buf == "-") { myDFPlayer.volumeDown(); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes(); } } //while-Schleife

Empfohlen: