INHOUDSOPGAWE:

MP3 -speler met Arduino: 6 stappe
MP3 -speler met Arduino: 6 stappe

Video: MP3 -speler met Arduino: 6 stappe

Video: MP3 -speler met Arduino: 6 stappe
Video: Использование Melexis MLX90614 Инфракрасный термометр с Arduino 2024, November
Anonim
Image
Image
Gegewensblad
Gegewensblad

In hierdie samestelling gebruik ons 'n mp3-speler met Arduino Uno, 'n mini PAM8403-klankversterker met volume-aanpassing, 'n mp3-module DFPlayer Mini en 'n paar 3-Watt luidsprekers.

Hierdie skema dien nie net vir die musiekspeler nie, maar ook om stemfunksies toe te laat vir onder meer 'n parkeerhinder of 'n robot. Hierdie vergadering maak voorsiening vir die plasing van 'n opgeneemde stem in die toestelle. Hierdie stem sal natuurlik wees en nie gesintetiseer word nie. Vir die meeste mense is dit beter funksies in vergelyking met die standaard alternatiewe.

Vir hierdie samestelling gebruik ons spesifiek die Arduino Uno, maar u kan ook aansluit by ESP8266 of ESP32. Uiteraard sal 'n aanpassing op die penne nodig wees.

Stap 1: Gegewensblad

Stap 2: DFPlayer -module

DFPlayer -module
DFPlayer -module

Die DFPlayer -module gebruik die seriële kommunikasie RX TX, VCC, GND. Dit het uitvoer na twee luidsprekers en klankinvoer.

Stap 3: Mini -versterker PAM8403

Mini versterker PAM8403
Mini versterker PAM8403

Stap 4: Montering

Vergadering
Vergadering

Stap 5: Biblioteke

Biblioteke
Biblioteke

Voeg die volgende "DFRobotDFPlayerMini" -biblioteek by vir kommunikasie met die mp3 -module.

Gaan eenvoudig na "Skets >> Sluit biblioteke in >> Beheer biblioteke …"

Stap 6: Bronkode

Ons begin met die definisie van die biblioteke en konstantes wat ons met ons kode sal gebruik.

Begin met die skep van een voorwerp, die seriële sagteware en 'n ander, wat myDFPlayer is.

Die buf -veranderlike, wat van die tipe String is, sal die data van die Arduino Serial stoor, wat die opdragte vir die MP3 -module sal wees. Die veranderlike "pouse" sal gebruik word om aan te dui of die musiek speel of onderbreek word (pouse = waar, en dui aan dat dit onderbreek is, anders speel dit).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inisieer 'n reeks sagteware van 10 en 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // Verantwoordelike reaksie op 'n kombinasie van MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // variável responsável por armazenar os comandos enviados para controlar or 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 = Bass) "// verskillende reaksies op die totale musiek bied geen SD -kaart nie. Int maxSongs = 0;

Stel op

In hierdie stap plaas ons opsies vir afdrukke om aan te dui dat dit die kring aanpas, met byvoorbeeld evaluerings van valse toestande.

ongeldige opstelling () {// Comunicacao serial com or modulo mySoftwareSerial.begin (9600); // Inicializa a serial do Arduino Serial.begin (115200); // Verifieer ons as modulo esta respondendo 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"); terwyl (waar); } Serial.println (); Serial.println ("Modulo DFPlayer Mini inicializado!"); // Definicoes iniciais myDFPlayer.setTimeOut (500); // Time -out reeks 500ms myDFPlayer.volume (10); // Deel 10 van 0 tot 30 myDFPlayer. EQ (0); // Equalizacao normal // recupera o numero 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 ();

Opsieskieslys

U beheer hierdie hele samestelling via die seriële monitor. Die skema sal dus elke keer die opsie -menu wat u het, druk, met opdragte, aanwysings.

ongeldig menu_opcoes () {Serial.println (); Serial.println ("Komando's:"); Serial.print ("[1-"); Serial.print (maxSongs); Serial.println ("] Para selecionar or arquivo MP3"); Serial.println ("[s] parar reproducao"); Serial.println ("[p] pausa/continua a musica"); Serial.println ("[e] seleciona equalizacao"); Serial.println ("[+ of -] aumenta ou diminui o volume"); Serial.println (); }

Lus

void loop () {// Aguarda a entrada de dados pela serial while (Serial.available ()> 0) {// recupera os dados de entrada buf = Serial.readStringUntil ('\ n'); // Reproducao (índice da música) if ((buf.toInt ()> = 1) && (buf.toInt () <= maxSongs)) {Serial.print ("Reproduzindo musica:"); Serial.println (buf.toInt ()); myDFPlayer.play (buf.toInt ()); // speel die musiek menu_opcoes (); } // Pausa/Continua a musica if (buf == "p") {if (pausa) {Serial.println ("Continua musica …"); myDFPlayer.start (); } anders {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 ++; as (equalizacao == 6) {equalizacao = 0; } myDFPlayer. EQ (equalizacao); Serial.print ("Equalizacao:"); Reeks.afdruk (equalizacao); Serial.println ("(0 = Normaal, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Klassiek, 5 = Bas)"); menu_opcoes (); } // Aumenta volume as (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Diminui volume as (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // terwyl} // lus

Aanbeveel: