Podemos utilizar vários reprodutores de sons. Vamos testar 2 deles:
Usando JR6001:
#include <SoftwareSerial.h> // RX, TX do Arduino (Módulo TX -> 10, Módulo RX -> 11) SoftwareSerial JR6001(10, 11); char digitou; void comando(String controle) { JR6001.println(controle); /* A2 = play/ reproduzir musica atual A3 = pausa A4 = parar a reproducao A5 = proxima musica A6 = ultima musica A7 = informar qual musica ex.: A7:00001 A8 = informar qual musica ex.: A8:02/00003*??? AE = termina a execucao atual AF = ajusta volume entre 00 e 30, ex.: AF:30 B0 = aumenta o volume B1 = diminui o volume B4 = estabelece o ciclo, ex.: B4:03 para musica randomica B7 = combinacao, ex.: B7:01020504 reproduz arquivos 01, 02, 05, 04 B8 = termina execucao de combinacao iniciada com B7 */ } void setup() { Serial.begin(9600); JR6001.begin(9600); delay(1000); comando("AF:30"); //volume maximo Serial.println("Digite o numero da musica"); } void loop() { if (Serial.available()) { digitou = Serial.read(); switch(digitou) { case '0': Serial.println(" - reproduzindo a musica atual"); comando("A2"); break; case '1': Serial.println(" - reproduzindo 00001.mp3"); comando("A7:00001"); break; case '2': Serial.println(" - reproduzindo 00002.mp3"); comando("A7:00002"); break; case '3': Serial.println(" - reproduzindo 00003.mp3"); comando("A7:00003"); break; case '4': Serial.println(" - reproduzindo 00004.mp3"); comando("A7:00004"); break; } } }
Usando DFPlayer Mini:
#include <SoftwareSerial.h> #include <DFRobotDFPlayerMini.h> //usei: https://github.com/DFRobot/DFRobotDFPlayerMini/tree/master SoftwareSerial comunicacao(11, 10); DFRobotDFPlayerMini DFPlayer; char digitou; void inicializarDFPlayer(){ comunicacao.begin(9600); delay(1000); if (!DFPlayer.begin(comunicacao)) { Serial.println(F("Nao inicializado")); while (true); } Serial.println(); Serial.println(F("DFPlayer inicializado!")); DFPlayer.setTimeOut(500); //Timeout serial 500ms DFPlayer.volume(30); //Volume DFPlayer.EQ(DFPLAYER_EQ_NORMAL); //Equalizacao normal /* DFPlayer.volumeUp(); //Aumenta volume DFPlayer.volumeDown(); //Diminui volume DFPlayer.EQ(DFPLAYER_EQ_NORMAL); DFPlayer.EQ(DFPLAYER_EQ_POP); DFPlayer.EQ(DFPLAYER_EQ_ROCK); DFPlayer.EQ(DFPLAYER_EQ_JAZZ); DFPlayer.EQ(DFPLAYER_EQ_CLASSIC); DFPlayer.EQ(DFPLAYER_EQ_BASS); */ } void reproduzir(int qualMusica) { DFPlayer.stop(); delay(150); DFPlayer.play(qualMusica); delay(150); int file = DFPlayer.readCurrentFileNumber(); while (file != qualMusica) { DFPlayer.play(qualMusica); delay(150); file = DFPlayer.readCurrentFileNumber(); } } void setup() { Serial.begin(9600); inicializarDFPlayer(); Serial.println("Digite o numero da musica"); } void loop() { if (Serial.available()) { digitou = Serial.read(); switch(digitou) { case '1': Serial.println(" - reproduzindo 00001.mp3"); reproduzir(1); break; case '2': Serial.println(" - reproduzindo 00002.mp3"); reproduzir(2); break; case '3': Serial.println(" - reproduzindo 00003.mp3"); reproduzir(3); break; case '4': Serial.println(" - reproduzindo 00004.mp3"); reproduzir(4); break; } } }
Para aumentar o volume do som precisamos utilizar um AMPLIFICADOR. Vamos ver duas opções:
Com módulo amplificador (já está pronto, é só ligar, é estéreo – não dá para modificar parâmetros):
1 – o módulo
2 – a ligação com o JR6001
3 – a ligação com o módulo DF Player Mini
Com circuito integrado amplificador (tem que montar; um módulo por canal; podemos modificar as caracterÃsticas e ampliar a potência):
1 – o circuito
2 – a ligação com o módulo JR6001

3 – a ligação com o módulo DF Player Mini

Antes de colocarmos a seleção de músicas que iremos reproduzir, precisamos compreender o RFID e identificar as tags. Veja ( __aqui__ ).