Descrição
(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); } }







