Πίνακας περιεχομένων:

MP3 Player με Arduino: 6 βήματα
MP3 Player με Arduino: 6 βήματα

Βίντεο: MP3 Player με Arduino: 6 βήματα

Βίντεο: MP3 Player με Arduino: 6 βήματα
Βίντεο: Блютуз модуль HC-06 и Ардуино 2024, Νοέμβριος
Anonim
Image
Image
Φύλλο δεδομένων
Φύλλο δεδομένων

Σε αυτήν τη συναρμολόγηση, χρησιμοποιήσαμε ένα mp3 player με το Arduino Uno, έναν μίνι ενισχυτή ήχου PAM8403 με ρύθμιση έντασης, μια μονάδα mp3 DFPlayer Mini και ένα ζευγάρι ηχεία 3 Watt.

Αυτό το σχήμα χρησιμεύει όχι μόνο για το πρόγραμμα αναπαραγωγής μουσικής, αλλά και για να επιτρέπει φωνητικές λειτουργίες για μια συσκευή φραγμού στάθμευσης ή ένα ρομπότ, μεταξύ άλλων. Αυτή η διάταξη θα επιτρέψει την τοποθέτηση μιας ηχογραφημένης φωνής στις συσκευές. Αυτή η φωνή θα είναι φυσική και όχι συνθετική. Για τους περισσότερους ανθρώπους, αυτά είναι προτιμότερα χαρακτηριστικά σε σύγκριση με τις τυπικές εναλλακτικές λύσεις.

Για αυτήν τη συναρμολόγηση, χρησιμοποιούμε συγκεκριμένα το Arduino Uno, αλλά μπορείτε επίσης να συνδεθείτε με ESP8266 ή ESP32. Προφανώς, απαιτείται προσαρμογή στις ακίδες.

Βήμα 1: Φύλλο δεδομένων

Βήμα 2: Ενότητα DFPlayer

Ενότητα DFPlayer
Ενότητα DFPlayer

Η μονάδα DFPlayer χρησιμοποιεί τη σειριακή επικοινωνία RX TX, VCC, GND. Έχει έξοδο σε δύο ηχεία και είσοδο ήχου.

Βήμα 3: Μίνι ενισχυτής PAM8403

Μίνι ενισχυτής PAM8403
Μίνι ενισχυτής PAM8403

Βήμα 4: Συναρμολόγηση

Συνέλευση
Συνέλευση

Βήμα 5: Βιβλιοθήκες

Βιβλιοθήκες
Βιβλιοθήκες

Προσθέστε την ακόλουθη βιβλιοθήκη "DFRobotDFPlayerMini" για επικοινωνία με τη μονάδα mp3.

Απλώς αποκτήστε πρόσβαση στο "Sketch >> Include Libraries >> Manage Libraries …"

Βήμα 6: Πηγαίος κώδικας

Θα ξεκινήσουμε καθορίζοντας τις βιβλιοθήκες και τις σταθερές που θα χρησιμοποιήσουμε με τον κώδικά μας.

Ξεκινήστε δημιουργώντας ένα αντικείμενο, το σειριακό λογισμικό και ένα άλλο, το οποίο είναι το myDFPlayer.

Η μεταβλητή buf, η οποία είναι τύπου String, θα χρησιμεύσει για την αποθήκευση των δεδομένων που προέρχονται από το Arduino Serial, οι οποίες θα είναι οι εντολές για τη μονάδα MP3. Η μεταβλητή "παύση" θα χρησιμοποιηθεί για να δείξει εάν η μουσική παίζει ή έχει διακοπεί (παύση = αληθινή, και δηλώνει ότι έχει τεθεί σε παύση, διαφορετικά παίζει).

#include "SoftwareSerial.h" #include "DFRobotDFPlayerMini.h" // Inicia a serial por software no pinos 10 e 11 SoftwareSerial mySoftwareSerial (10, 11); // RX, TX // Αποστολή απαντήσεων για εύκολη επικοινωνία με MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; // variável responsável for armazenar os 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 for 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 responsável for armazenar o total de músicas presentes no SD card. Int maxSongs = 0;

Ρύθμιση

Σε αυτό το βήμα, βάζουμε επιλογές εκτυπώσεων για να σας δώσουμε ενδείξεις ότι τοποθετεί το κύκλωμα, με αξιολογήσεις ψευδών συνθηκών, για παράδειγμα.

void setup () {// Comunicacao serial com o modulo mySoftwareSerial.begin (9600); // Inicializa a serial do Arduino Serial.begin (115200); // Verifica se o 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"); ενώ (αληθινό)? } Serial.println (); Serial.println ("Modulo DFPlayer Mini inicializado!"); // Definicoes iniciais myDFPlayer.setTimeOut (500); // Σειριακό χρονικό όριο 500ms myDFPlayer.volume (10); // Τόμος 10 από 0 έως 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 ();

Μενού επιλογών

Μπορείτε να ελέγξετε ολόκληρο αυτό το συγκρότημα μέσω της σειριακής οθόνης. Έτσι, κάθε φορά, το σχήμα θα εκτυπώνει το μενού επιλογών που έχετε, με εντολές, οδηγίες.

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 reproducao"); Serial.println ("[p] pausa/Continua a musica"); Serial.println ("[e] seleciona equalizacao"); Serial.println ("[+ ή -] aumenta ou diminui o volume"); Serial.println (); }

Βρόχος

void loop () {// Aguarda a entrada de dados pela serial while (Serial.available ()> 0) {// recupera os dados de entrada buf = Serial.readStringUntil ('\ n'); // Αναπαραγωγή (índice da música) if ((buf.toInt ()> = 1) && (buf.toInt () <= maxSongs)) {Serial.print ("Reproduzindo musica:"); Serial.println (buf.toInt ()); myDFPlayer.play (buf.toInt ()); // dá play 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 ++; εάν (ισοσταθμισμός == 6) {ισοδύναμος = 0; } myDFPlayer. EQ (equalizacao); Serial.print ("Equalizacao:"); Serial.print (equalizacao); Serial.println ("(0 = Normal, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Classic, 5 = Bass)"); menu_opcoes (); } // Aumenta volume if (buf == "+") {myDFPlayer.volumeUp (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); } // Ένταση Diminui if (buf == "-") {myDFPlayer.volumeDown (); Serial.print ("Volume atual:"); Serial.println (myDFPlayer.readVolume ()); menu_opcoes (); }} // while} // βρόχος

Συνιστάται: