Precisa colocar algum tipo de efeito sonoro no seu robô, brinquedo ou alarme ? Utilize o módulo MP3 WTV020-SD.

Esse módulo possui um slot para cartão microSD, onde são armazenados os arquivos de áudio, sendo que ele é mais indicado para reprodução de arquivos de voz, mas também é possível reproduzir músicas.

Modulo MP3 WTV020-SD Arduino

Os formatos suportados são WAV e AD4, com taxa de amostragem (sampling rate) entre 6KHz a 36KHz para os arquivos de voz no formato AD4, e de 6KHz a 16KHz para os arquivos de voz no formato WAV.

módulo WTV020-SD pode ser utilizado basicamente de duas maneiras. Uma delas é conectado ao microcontrolador, onde utilizamos 4 pinos para comunicação com o módulo e controle das funções de reproduzir música, pausar, volume, etc.

Já o segundo método é o MODO MP3, onde podemos utilizar push-buttons para acionar os pinos do módulo e executar as mesmas funções de reprodução de música mencionadas acima.

Existem ainda outros modos de operação, como o Key mode e o Power-Loop, que são utilizados em casos específicos. Para maiores informações sobre esses modos de operação, consulte o datasheet.

Com relação à capacidade do cartão microSD suportado pelo módulo, encontrei em vários documentos e posts a informação de que a capacidade máxima do cartão é de 1 GB. Nos meus testes, porém, o módulo funcionou normalmente com um cartão de 2GB.

Pinagem e conexão do módulo WTV020-SD ao Arduino

O módulo WTV020-SD segue a pinagem mostrada abaixo, com o pino 1 no mesmo lado da marca indicada pelo círculo:

Pinagem modulo WTV020-SD-16P

No lado esquerdo da placa, próximo à marca, você pode selecionar a alimentação para 5V ou 3.3V, soldando os terminais correspondentes. Utilize essa opção com cuidado, já que eu não testei no modo 5V, e vi em grupos de discussão que algumas pessoas tiveram problemas em usar o módulo nessa configuração.

No Arduino Uno, utilizamos os pinos 4, 5, 6 e 7 para ligação aos pinos 1 (RESET), 7 (P04/CLK), 10 (P05/DI) e 15 (P06/BUSY) do módulo. A alimentação será de 3.3V:

Circuito Arduino Uno e modulo WTV020-SD

Preparação do cartão SD e programação do módulo

Formate um cartão SD utilizando FAT  e coloque nele dois arquivos de áudio, nomeados como 0001.ad4 e 0002.ad4. Você pode converter seus arquivos MP3 e WAV para AD4 utilizando um software como o  AD4CONVERTER , ou então baixar alguns arquivos de exemplo neste link.

Antes de carregar o programa no Arduino, baixe a biblioteca Wtv020sd16p aqui.

//Programa : Modulo MP3 WTV020-SD e Arduino Uno
//Autor : Arduino e Cia
 
#include <Wtv020sd16p.h>

int resetPin = 4;  //Pino Reset
int clockPin = 5;  //Pino clock
int dataPin = 6;   //Pino data (DI)
int busyPin = 7;   //Pino busy
 
//Variavel que armazena os caracteres recebidos
char buf;

Wtv020sd16p wtv020sd16p(resetPin,clockPin,dataPin,busyPin);
 
void setup()
{
  //Inicializa a serial
  Serial.begin(9600);
  //Inicializa o modulo WTV020
  wtv020sd16p.reset();
  //Informacoes iniciais 
  menu_inicial();
}
 
void loop()
{
  //Aguarda os dados da serial
  while(Serial.available() > 0)
  {
    buf = Serial.read();
    //Caso seja recebido o numero 1, reproduz o arquivo 0001.ad4
    if (buf == '1')
    {
      Serial.println("Reproduzindo 0001.ad4");
      wtv020sd16p.playVoice(0);
      //Reproduz o arquivo 1
      wtv020sd16p.asyncPlayVoice(1);
      delay(3000); 
      wtv020sd16p.stopVoice();
      delay(2000);
      menu_inicial();  
    }
     
    //Caso seja recebido o numero 2, reproduz o arquivo 0002.ad4
    if (buf == '2')
    {
      Serial.println("Reproduzindo 0002.ad4");
      wtv020sd16p.playVoice(0);
      //Reproduz o arquivo 2
      wtv020sd16p.asyncPlayVoice(2);
      delay(3000);
      wtv020sd16p.stopVoice();
      delay(2000);
      menu_inicial();
    }
  }
}
 
//Mostra menu de opcoes
void menu_inicial()
{
  Serial.println("nDigite : ");
  Serial.println("1 - Reproduz o arquivo 0001.ad4");
  Serial.println("2 - Reproduz o arquivo 0002.ad4");
  Serial.println();
}

Após o carregamento, abra o Serial Monitor e utilize as teclas indicadas para reproduzir/tocar os arquivos 1 e 2 que foram colocados no cartão:

WTV020-SD Serial Monitor

Vamos agora ver como controlar diretamente o módulo com o modo MP3, sem utilizar o Arduino.

Módulo WTV020-SD no modo MP3

Nesse modo são utilizados push-buttons para controlar a reprodução dos sons. Monte o circuito abaixo e alimente o circuito com uma bateria ou fonte externa de até 3.3V:

WTV020-SD Modo MP3

Carregue os arquivos de áudio no cartão SD, respeitando os limites dos formatos de arquivos mencionados no início deste post (taxa de amostragem (sampling rate) entre 6KHz a 36KHz para AD4, e de 6KHz a 16KHz para WAV).

Pressione os botões NEXT e PREV para alternar a reprodução dos arquivos de áudio. O led vai permanecer aceso caso nenhum botão seja pressionado, e se apaga enquanto o som estiver sendo reproduzido.

(Atualizado em 25/10/2017): Precisando de um módulo que rode MP3 sem necessidade de conversão? conheça o módulo MP3 DFPlayer Mini.

Avalie este post!