Table des matières:

Lecteur MP3 avec Arduino : 6 étapes
Lecteur MP3 avec Arduino : 6 étapes

Vidéo: Lecteur MP3 avec Arduino : 6 étapes

Vidéo: Lecteur MP3 avec Arduino : 6 étapes
Vidéo: ARDUINO #5 - Créer Du Son Avec Le DFPlayer Mini MP3 2024, Novembre
Anonim
Image
Image
Fiche technique
Fiche technique

Dans ce montage, nous avons utilisé un lecteur mp3 avec Arduino Uno, un mini amplificateur de son PAM8403 avec réglage du volume, un module mp3 DFPlayer Mini, et une paire d'enceintes 3 Watts.

Ce schéma sert non seulement pour le lecteur de musique, mais aussi pour permettre des fonctions vocales pour un dispositif de barrière de stationnement ou un robot, entre autres. Ce montage permettra le placement d'une voix enregistrée dans les appareils. Cette voix sera naturelle et non synthétisée. Pour la plupart des gens, ce sont des fonctionnalités préférables par rapport aux alternatives standard.

Pour ce montage, nous utilisons spécifiquement l'Arduino Uno, mais vous pouvez également vous connecter à ESP8266 ou ESP32. Évidemment, un réglage sera nécessaire sur les broches.

Étape 1: Fiche technique

Étape 2: Module DFPlayer

Module DFPlayer
Module DFPlayer

Le module DFPlayer utilise la communication série RX TX, VCC, GND. Il a une sortie vers deux haut-parleurs et une entrée audio.

Étape 3: Mini amplificateur PAM8403

Mini amplificateur PAM8403
Mini amplificateur PAM8403

Étape 4: Assemblage

Assemblée
Assemblée

Étape 5: Bibliothèques

Bibliothèques
Bibliothèques

Ajoutez la bibliothèque "DFRobotDFPlayerMini" suivante pour la communication avec le module mp3.

Accédez simplement à "Esquisse >> Inclure les bibliothèques >> Gérer les bibliothèques …"

Étape 6: Code source

Nous commencerons par définir les bibliothèques et les constantes que nous utiliserons avec notre code.

Commencez par créer un objet, le logiciel série, et un autre, myDFPlayer.

La variable buf, qui est de type String, servira à stocker les données provenant de l'Arduino Serial, qui seront les commandes du module MP3. La variable "pause" sera utilisée pour indiquer si la musique est en cours de lecture ou en pause (pause = true, et indique qu'elle est en pause, sinon elle est en cours de lecture).

#include "SoftwareSerial.h"#include "DFRobotDFPlayerMini.h" //Inicia a serial por software nos pinos 10 et 11 SoftwareSerial mySoftwareSerial(10, 11); // RX, TX //Objeto responsável pela comunicação com o módulo MP3 (DFPlayer Mini) DFRobotDFPlayerMini myDFPlayer; //variable responsável por armazenar os commandos enviados para controlar o player String buf; //variável responsável por armazenar o estado do player (0: tocando; 1: pause) boolean pausa = false; //variavel 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 = Classic, 5 = Bass)" //variável responsável por armazenar o total de músicas presentes no SD card. int maxSongs = 0;

Installer

Dans cette étape, nous mettons des options d'impressions pour vous donner des indications qu'il est en train de monter le circuit, avec des évaluations de fausses conditions, par exemple.

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 segments)"); if (!myDFPlayer.begin(mySoftwareSerial)) { Serial.println("Nao inicializado:"); Serial.println("1. Check as conexoes do DFPlayer Mini"); Serial.println("2. Insira um cartao SD"); tandis que (vrai); } Serial.println(); Serial.println("Modulo DFPlayer Mini inicializado!"); //Definicoes iniciais myDFPlayer.setTimeOut(500); //Timeout série 500ms myDFPlayer.volume(10); //Volume 10 va de 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); //Plus de menu de commandes menu_opcoes();

Menu d'options

Vous contrôlez l'ensemble de cet assemblage via le moniteur série. Ainsi, à chaque fois, le schéma imprimera le menu d'options que vous avez, avec des commandes, des instructions.

void menu_opcoes(){ Serial.println(); Serial.println("Comandos:"); Serial.print(" [1-"); Serial.print(maxSongs); Serial.println("] Pour sélectionner ou archiver MP3"); Serial.println(" [s] parar reproducao"); Serial.println(" [p] pause/continue une musique"); Serial.println("[e] seleciona equalizacao"); Serial.println(" [+ ou -] aumenta ou diminui o volume"); Serial.println(); }

Boucle

void loop(){ //Aguarda une entrée de série de données while (Serial.available() > 0) { //récupération de données d'entrée 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()); // joue dans la musique menu_opcoes(); } //Pause/Continuer une musica if (buf == "p") { if (pausa) { Serial.println("Continua musica…"); monDFPlayer.start(); } else { Serial.println("Musica pause…"); monDFPlayer.pause(); } pause = !pause; menu_opcoes(); } //Parada if (buf == "s") { myDFPlayer.stop(); Serial.println("Musica parada!"); menu_opcoes(); } //Seleciona equalizacao if (buf == "e") { equalizacao++; if (equalizacao == 6) { equalizacao = 0; } monDFPlayer. EQ(égalisation); Serial.print("Equalizacao: "); Serial.print(equalizacao); Serial.println(" (0 = Normal, 1 = Pop, 2 = Rock, 3 = Jazz, 4 = Classique, 5 = Basse)"); menu_opcoes(); } //Augmenter le volume if (buf == "+") { myDFPlayer.volumeUp(); Serial.print("Volume réel:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } //Diminui le volume if (buf == "-") { myDFPlayer.volumeDown(); Serial.print("Volume réel:"); Serial.println(myDFPlayer.readVolume()); menu_opcoes(); } } //pendant que } //boucle

Conseillé: