Inhaltsverzeichnis:
- Schritt 1: Datenblatt
- Schritt 2: DFPlayer-Modul
- Schritt 3: Mini-Verstärker PAM8403
- Schritt 4: Montage
- Schritt 5: Bibliotheken
- Schritt 6: Quellcode
Video: MP3-Player mit Arduino - Gunook
2024 Autor: John Day | [email protected]. Zuletzt bearbeitet: 2024-01-30 07:21
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
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
Schritt 4: Montage
Schritt 5: 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:
Heimwerken -- Einen Spinnenroboter herstellen, der mit einem Smartphone mit Arduino Uno gesteuert werden kann – wikiHow
Heimwerken || Wie man einen Spider-Roboter herstellt, der mit einem Smartphone mit Arduino Uno gesteuert werden kann: Während man einen Spider-Roboter baut, kann man so viele Dinge über Robotik lernen. Wie die Herstellung von Robotern ist sowohl unterhaltsam als auch herausfordernd. In diesem Video zeigen wir Ihnen, wie Sie einen Spider-Roboter bauen, den wir mit unserem Smartphone (Androi
Bewegungsaktivierte Cosplay Wings mit Circuit Playground Express - Teil 1: 7 Schritte (mit Bildern)
Bewegungsaktivierte Cosplay-Flügel mit Circuit Playground Express - Teil 1: Dies ist Teil 1 eines zweiteiligen Projekts, in dem ich Ihnen meinen Prozess zur Herstellung eines Paars automatisierter Feenflügel zeige. Der erste Teil des Projekts ist der Mechanik der Flügel, und der zweite Teil macht es tragbar und fügt die Flügel hinzu
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: 7 Schritte (mit Bildern)
Schnittstellentastatur mit Arduino. [Einzigartige Methode]: Hallo, und willkommen zu meinem ersten instructable! :) In diesem instructables möchte ich eine fantastische Bibliothek für die Schnittstelle der Tastatur mit Arduino teilen - 'Password Library' einschließlich 'Keypad Library'. Diese Bibliothek enthält die besten Funktionen, die wir wi
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Erfahren Sie, wie Sie mit PROCESSING eine Echtzeitschnittstelle in ARDUINO erstellen !!!!): 5 Schritte (mit Bildern)
SCARA-Roboter: Lernen über Vorwärts- und inverse Kinematik !!! (Plot Twist Learn How to Make a Real Time Interface in ARDUINO Using PROCESSING !!!!): Ein SCARA-Roboter ist eine sehr beliebte Maschine in der Industriewelt. Der Name steht sowohl für Selective Compliant Assembly Robot Arm als auch für Selective Compliant Articulated Robot Arm. Es ist im Grunde ein Roboter mit drei Freiheitsgraden, da er die ersten beiden Displ
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: 7 Schritte (mit Bildern)
Einfaches BLE mit sehr geringem Stromverbrauch in Arduino Teil 3 - Nano V2-Ersatz - Rev 3: Update: 7. April 2019 - Rev 3 von lp_BLE_TempHumidity, fügt Datums- / Zeitdiagramme mit pfodApp V3.0.362+ hinzu und automatische Drosselung beim Senden von DatenUpdate: 24. März 2019 – Rev 2 von lp_BLE_TempHumidity, fügt weitere Plotoptionen hinzu und i2c_ClearBus, fügt GT832E