Inhoudsopgave:

MP3-speler met Arduino: 6 stappen
MP3-speler met Arduino: 6 stappen

Video: MP3-speler met Arduino: 6 stappen

Video: MP3-speler met Arduino: 6 stappen
Video: Arduino Start #6. Модуль MP3 и ARDUINO 2024, November
Anonim
Image
Image
Data papier
Data papier

In deze montage gebruikten we een mp3-speler met Arduino Uno, een mini PAM8403 geluidsversterker met volumeregeling, een mp3-module DFPlayer Mini en een paar luidsprekers van 3 Watt.

Dit schema dient niet alleen voor de muziekspeler, maar ook om spraakfuncties mogelijk te maken voor onder meer een parkeerbarrière of een robot. Deze assemblage zal de plaatsing van een opgenomen stem in de apparaten mogelijk maken. Deze stem zal natuurlijk zijn en niet gesynthetiseerd. Voor de meeste mensen zijn dit functies die de voorkeur hebben in vergelijking met de standaardalternatieven.

Voor deze montage gebruiken we specifiek de Arduino Uno, maar je kunt ook verbinding maken met ESP8266 of ESP32. Uiteraard zal er een aanpassing aan de pinnen nodig zijn.

Stap 1: Gegevensblad

Stap 2: DFPlayer-module

DFPlayer-module
DFPlayer-module

De DFPlayer-module gebruikt de seriële communicatie RX TX, VCC, GND. Het heeft uitgang naar twee luidsprekers en audio-ingang.

Stap 3: Miniversterker PAM8403

Miniversterker PAM8403
Miniversterker PAM8403

Stap 4: Montage

samenkomst
samenkomst

Stap 5: Bibliotheken

Bibliotheken
Bibliotheken

Voeg de volgende bibliotheek "DFRobotDFPlayerMini" toe voor communicatie met de mp3-module.

Ga gewoon naar "Schets >> Bibliotheken opnemen >> Bibliotheken beheren …"

Stap 6: Broncode

We beginnen met het definiëren van de bibliotheken en constanten die we met onze code zullen gebruiken.

Begin met het maken van een object, de seriële software en een ander, namelijk myDFPlayer.

De buf-variabele, die van het type String is, zal dienen om de gegevens op te slaan die afkomstig zijn van de Arduino Serial, die de opdrachten voor de MP3-module zullen zijn. De variabele "pause" wordt gebruikt om aan te geven of de muziek wordt afgespeeld of gepauzeerd (pause = true, en geeft aan dat deze is gepauzeerd, anders wordt deze afgespeeld).

#include "SoftwareSerial.h"#include "DFRobotDFPlayerMini.h" //Inicia a serial por software nos pinos 10 e 11 SoftwareSerial mySoftwareSerial(10, 11); // RX, TX //Objeto responsavel pela comunicação com of módulo MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; //variável responsavel door armazenar en comandos enviados para controlar o player String buf; //variável responsável por armazenar o 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 = Normaal, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Klassiek, 5 = Bas)" //variável responsável por armazenar o total de músicas presenteert geen SD-kaart. int maxSongs = 0;

Opstelling

In deze stap plaatsen we opties voor afdrukken om u een indicatie te geven dat het circuit wordt gemonteerd, bijvoorbeeld met evaluaties van valse omstandigheden.

void setup () {// Comunicacao seriële com o modulo mySoftwareSerial.begin (9600); //Inicializa a serial do Arduino Serial.begin(115200); //Verificatie van de modulo esta respondendo e se o //cartao SD foi encontrado Serial.println(); Serial.println ("DFRobot DFPlayer Mini"); Serial.println("Inicializando modulo DFPlayer… (3~5 segmenten)"); if (!myDFPlayer.begin(mySoftwareSerial)) { Serial.println("Nao inicializado:"); Serial.println("1. Cheque zoals conexoes doen DFPlayer Mini"); Serial.println("2. Insira um cartao SD"); terwijl (waar); } Serieel.println(); Serial.println("Modulo DFPlayer Mini begint!"); //Definieert mijnDFPlayer.setTimeOut(500); //Time-out serieel 500ms myDFPlayer.volume (10); //Volume 10 vai de 0 a 30 myDFPlayer. EQ (0); //Equalizacao normal //recupera o numero de Músicas encontradas no SD. maxSongs = mijnDFPlayer.readFileCounts(DFPLAYER_DEVICE_SD); Serieel.println(); Serial.print("Numero de arquivos geen cartao SD: "); Serial.println(maxSongs); //Mostra o menu de commando's menu_opcoes();

Optiemenu

Je bestuurt deze hele assembly via de seriële monitor. Dus elke keer drukt het schema het optiemenu af dat je hebt, met opdrachten, aanwijzingen.

void menu_opcoes(){ Serial.println(); Serial.println("Comandos:"); Serieel.print(" [1-"); Serial.print (maxSongs); Serial.println("] Geselecteerde of arquivo MP3"); Serial.println(" [s] parare reproductie"); Serial.println(" [p] pauze/continua a musica"); Serial.println(" [e] seleciona equalizacao"); Serial.println(" [+ of -] vergroot of verkleint volume"); Serieel.println(); }

Lus

void loop () { // Aguarda een 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()); mijnDFPlayer.play(buf.toInt()); // speel op muziek menu_opcoes(); } //Pausa/Continua a musica if (buf == "p") { if (pausa) { Serial.println("Continua musica…"); mijnDFPlayer.start(); } else { Serial.println("Musica pausada…"); mijnDFPlayer.pauze(); } pauze = !pauze; menu_opcoes(); } //Parada if (buf == "s") { myDFPlayer.stop(); Serial.println ("Muziekparada!"); menu_opcoes(); } //Seleciona equalizacao if (buf == "e") { equalizacao++; if (equalizacao == 6) { equalizacao = 0; } mijnDFPlayer. EQ(equalizacao); Serial.print("Equalizacao: "); Serial.print(equalizacao); Serial.println(" (0 = Normaal, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Klassiek, 5 = Bas)"); menu_opcoes(); } // Aumenta volume 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(); } } //herhalingslus

Aanbevolen: