Módulo MP3 WTV020-SD
8 unidades em stock | SKU: LPM006790
(209)
Módulo MP3 WTV020-SD
WTV020
O WTV020-SD é um módulo compacto utilizado para reproduzir ficheiros de áudio a partir de um cartão microSD. Ele pode reproduzir áudio em formatos AD4 ou WAV convertidos especificamente para o módulo.
Principais características:
Armazenamento: Cartão microSD (até 2 GB).
Formatos suportados: AD4 (formato nativo) e WAV convertido.
Interface: Pode ser controlado diretamente por botões ou por microcontroladores (Arduino, PIC, etc.).
Baixo consumo energético: Adequado para dispositivos alimentados por bateria.
Saída de áudio: Ligação direta a um pequeno altifalante (speaker).
Aplicações comuns:
Brinquedos e jogos eletrónicos que emitem sons ou vozes.
Sistemas de alerta e segurança (campainhas inteligentes, alarmes).
Equipamentos educativos e interativos.
Projetos eletrónicos DIY que necessitem de reprodução simples de áudio.
Exemplo rápido de funcionamento:
Colocas ficheiros de áudio no cartão microSD.
Controlas a reprodução através de botões físicos ou usando comandos via Arduino.
O WTV020-SD é popular devido ao seu baixo custo, simplicidade e versatilidade na reprodução de áudio em pequenos projetos.
WTV020-SD Arduino (UNO/Nano)
VCC 3.3V (não utilizar 5V!)
GND GND
RESET Pin 2
CLK Pin 3
DI Pin 4
BUSY Pin 5
SPK+ e SPK- Altifalante (8Ω recomendado)
WTV020-SD exemplo básico para Arduino:
const int resetPin = 2; // Reset do módulo
const int clockPin = 3; // Clock (CLK)
const int dataPin = 4; // Data (DI)
const int busyPin = 5; // Busy (verifica se está a tocar)
void setup() {
pinMode(resetPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(busyPin, INPUT);
digitalWrite(resetPin, HIGH);
digitalWrite(clockPin, HIGH);
digitalWrite(dataPin, HIGH);
delay(300);
resetModule();
}
void loop() {
playAudio(0); // Reproduz o ficheiro de áudio "0000.ad4"
delay(5000); // Aguarda 5 segundos antes de repetir
}
void resetModule() {
digitalWrite(resetPin, LOW);
delay(50);
digitalWrite(resetPin, HIGH);
delay(300);
}
void playAudio(int trackNumber) {
sendCommand(trackNumber);
delay(20);
while (digitalRead(busyPin) == LOW); // Espera enquanto reproduz áudio
}
void sendCommand(int command) {
digitalWrite(clockPin, LOW);
delay(2);
for (int i = 0; i < 16; i++) {
digitalWrite(clockPin, LOW);
if (command & 0x8000)
digitalWrite(dataPin, HIGH);
else
digitalWrite(dataPin, LOW);
command <<= 1;
delayMicroseconds(50);
digitalWrite(clockPin, HIGH);
delayMicroseconds(50);
}
}