#include #include "DFRobotDFPlayerMini.h" // RX = pin 1 (XIAO recibe), TX = pin 0 (XIAO transmite) SoftwareSerial mp3Serial(27, 26); DFRobotDFPlayerMini mp3; bool reproduciendo = false; void setup() { Serial.begin(115200); mp3Serial.begin(9600); delay(1000); Serial.println("Inicializando MP3..."); while (!mp3.begin(mp3Serial)) { Serial.println("No se encontr贸 el m贸dulo MP3-TF-16P. Reintentando..."); delay(2000); } Serial.println("M贸dulo MP3 listo."); mp3.volume(20); Serial.println("MP3 listo. Envia 1-5 para reproducir. 's' para detener."); } void loop() { // Verifica si termin贸 de reproducirse una pista if (mp3.available()) { if (mp3.readType() == DFPlayerPlayFinished) { Serial.println("馃幍 Pista finalizada. Puedes enviar otra (1-5)."); reproduciendo = false; } } // Si hay datos en el monitor serial y no hay reproducci贸n activa if (Serial.available() && !reproduciendo) { char c = Serial.read(); if (c >= '1' && c <= '5') { int pista = c - '0'; mp3.play(pista); Serial.print("Reproduciendo pista "); Serial.println(pista); reproduciendo = true; } else if (c == 's') { mp3.stop(); Serial.println("Reproducci贸n detenida."); reproduciendo = false; } else { Serial.println("Comando no v谩lido."); } } }