Arduino UNO R4 - Reproductor de MP3

Este tutorial explica cómo crear un reproductor MP3 usando un Arduino UNO R4, un módulo reproductor MP3, una tarjeta Micro SD y un altavoz. El reproductor MP3 carga música o grabaciones de audio desde la tarjeta Micro SD. El Arduino UNO R4 controla el módulo reproductor MP3 para seleccionar y reproducir una canción de la tarjeta, convertirla en una señal de audio y enviar esta señal al altavoz. Abordaremos estos pasos en detalle.

Luego, puedes modificar el código para incluir un potenciómetro o un codificador rotatorio para ajustar el volumen.

Arduino UNO R4 reproductor MP3

Acerca del módulo reproductor MP3 por puerto serie y del altavoz

Disposición de pines del módulo reproductor MP3 en serie

Un módulo reproductor de MP3 en serie incluye tres interfaces:

  • La interfaz para el Arduino UNO R4: tiene cuatro pines:
    • Pin RX: Este es para datos y debe conectarse al pin TX del Arduino UNO R4, utilizando Serial de hardware o Serial por software.
    • Pin TX: Esto también es para datos y debe conectarse al pin RX del Arduino UNO R4, a través de Serial de hardware o Serial por software.
    • Pin VCC: Esto es para alimentación y debe conectarse a VCC (5V).
    • Pin GND: Este es un pin de tierra y debe conectarse a GND (0V).
  • La interfaz para el altavoz: una toma hembra de salida Aux de 3,5 mm.
  • La interfaz para la tarjeta Micro SD: La ranura para tarjetas Micro SD ubicada en la parte trasera del módulo.
Pinout del módulo reproductor MP3 en serie
image source: diyables.io

Esquema de pines del altavoz

Un altavoz generalmente tiene dos puntos de conexión:

  • Conexión de audio: Utiliza un conector macho auxiliar de 3,5 mm para conectar al reproductor de MP3.
  • Conexión de alimentación: Puede usar USB, un adaptador de corriente de 5 V, u otros tipos de conexiones de alimentación.

Cómo funciona

Lo que necesitamos para estar preparados:

  • Guardar una lista de canciones o grabaciones en una tarjeta microSD.
  • Colocar la tarjeta microSD en el módulo reproductor de MP3.
  • Conectar el módulo reproductor de MP3 al Arduino UNO R4.
  • Conectar el módulo reproductor de MP3 a un altavoz.
  • Conectar el altavoz a una fuente de alimentación.

Cada archivo MP3 en la tarjeta microSD tiene un número que empieza desde 0 y que indica el orden de las canciones.

Luego podemos configurar el Arduino UNO R4 para enviar comandos al módulo reproductor de MP3. El módulo reproductor de MP3 puede manejar estos comandos:

  • Iniciar reproducción
  • Detener
  • Reproducir siguiente
  • Reproducir anterior
  • Ajustar volumen

El módulo reproductor de MP3 reproduce el archivo MP3 almacenado en la tarjeta microSD, lo transforma en una señal de audio y envía esta señal al altavoz a través de la interfaz auxiliar de 3,5 mm.

Diagrama de Cableado

Diagrama de cableado del módulo reproductor MP3 para Arduino UNO R4

This image is created using Fritzing. Click to enlarge image

Código de Arduino UNO R4 - Reproducir música

El código que se muestra a continuación empieza a reproducir la primera canción guardada en la tarjeta microSD.

/* * Este código de Arduino UNO R4 fue desarrollado por es.newbiely.com * Este código de Arduino UNO R4 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-mp3-player */ #include <SoftwareSerial.h> #define CMD_PLAY_NEXT 0x01 #define CMD_PLAY_PREV 0x02 #define CMD_PLAY_W_INDEX 0x03 #define CMD_SET_VOLUME 0x06 #define CMD_SEL_DEV 0x09 #define CMD_PLAY_W_VOL 0x22 #define CMD_PLAY 0x0D #define CMD_PAUSE 0x0E #define CMD_SINGLE_CYCLE 0x19 #define DEV_TF 0x02 #define SINGLE_CYCLE_ON 0x00 #define SINGLE_CYCLE_OFF 0x01 #define ARDUINO_RX 7 // The Arduino UNO R4 pin connected to the TX of the Serial MP3 Player module #define ARDUINO_TX 6 // The Arduino UNO R4 pin connected to the RX of the Serial MP3 Player module SoftwareSerial mp3(ARDUINO_RX, ARDUINO_TX); void setup() { Serial.begin(9600); mp3.begin(9600); delay(500); // wait chip initialization is complete mp3_command(CMD_SEL_DEV, DEV_TF); // select the TF card delay(200); // wait for 200ms mp3_command(CMD_PLAY, 0x0000); // Play mp3 //mp3_command(CMD_PAUSE, 0x0000); // Pause mp3 //mp3_command(CMD_PLAY_NEXT, 0x0000); // Play next mp3 //mp3_command(CMD_PLAY_PREV, 0x0000); // Play previous mp3 //mp3_command(CMD_SET_VOLUME, 30); // Change volume to 30 } void loop() { } void mp3_command(int8_t command, int16_t dat) { int8_t frame[8] = { 0 }; frame[0] = 0x7e; // starting byte frame[1] = 0xff; // version frame[2] = 0x06; // the number of bytes of the command without starting byte and ending byte frame[3] = command; // frame[4] = 0x00; // 0x00 = no feedback, 0x01 = feedback frame[5] = (int8_t)(dat >> 8); // data high byte frame[6] = (int8_t)(dat); // data low byte frame[7] = 0xef; // ending byte for (uint8_t i = 0; i < 8; i++) { mp3.write(frame[i]); } }

Pasos R\u00e1pidos

Siga estas instrucciones paso a paso:

  • Si es la primera vez que utiliza la placa Arduino Uno R4 WiFi/Minima, consulte el tutorial sobre configurar el entorno para Arduino Uno R4 WiFi/Minima en el IDE de Arduino.
  • Conecte los componentes de acuerdo con el diagrama proporcionado.
  • Conecte la placa Arduino Uno R4 a su computadora usando un cable USB.
  • Inicie el IDE de Arduino en su computadora.
  • Seleccione la placa adecuada Arduino Uno R4 (p. ej., Arduino Uno R4 WiFi) y el puerto COM.
  • Siga los pasos de la sección Cómo funciona
  • Copie el código proporcionado y úselo en el IDE de Arduino
  • Presione el botón Subir en el IDE de Arduino para enviar el código al Arduino UNO R4
  • Diviértase con la música

Código Arduino UNO R4 - Reproducir música con botones de control

El código a continuación es una versión mejorada del código anterior. Incluye cuatro botones que permiten controlar el reproductor de MP3.

/* * Este código de Arduino UNO R4 fue desarrollado por es.newbiely.com * Este código de Arduino UNO R4 se proporciona al público sin ninguna restricción. * Para tutoriales completos y diagramas de cableado, visite: * https://es.newbiely.com/tutorials/arduino-uno-r4/arduino-uno-r4-mp3-player */ #include <SoftwareSerial.h> #include <ezButton.h> #define CMD_PLAY_NEXT 0x01 #define CMD_PLAY_PREV 0x02 #define CMD_PLAY_W_INDEX 0x03 #define CMD_SET_VOLUME 0x06 #define CMD_SEL_DEV 0x09 #define CMD_PLAY_W_VOL 0x22 #define CMD_PLAY 0x0D #define CMD_PAUSE 0x0E #define CMD_SINGLE_CYCLE 0x19 #define DEV_TF 0x02 #define SINGLE_CYCLE_ON 0x00 #define SINGLE_CYCLE_OFF 0x01 #define ARDUINO_RX 7 // The Arduino UNO R4 pin connected to the TX of the Serial MP3 Player module #define ARDUINO_TX 6 // The Arduino UNO R4 pin connected to the RX of the Serial MP3 Player module SoftwareSerial mp3(ARDUINO_RX, ARDUINO_TX); ezButton button_play(2); // create ezButton object that attach to pin 2 ezButton button_pause(3); // create ezButton object that attach to pin 3 ezButton button_next(4); // create ezButton object that attach to pin 4 ezButton button_prev(5); // create ezButton object that attach to pin 5 void setup() { Serial.begin(9600); mp3.begin(9600); delay(500); // wait chip initialization is complete mp3_command(CMD_SEL_DEV, DEV_TF); // select the TF card delay(200); // wait for 200ms button_play.setDebounceTime(50); // set debounce time to 50 milliseconds button_pause.setDebounceTime(50); // set debounce time to 50 milliseconds button_next.setDebounceTime(50); // set debounce time to 50 milliseconds button_prev.setDebounceTime(50); // set debounce time to 50 milliseconds } void loop() { button_play.loop(); // MUST call the loop() function first button_pause.loop(); // MUST call the loop() function first button_next.loop(); // MUST call the loop() function first button_prev.loop(); // MUST call the loop() function first if (button_play.isPressed()) { Serial.println("Play mp3"); mp3_command(CMD_PLAY, 0x0000); } if (button_pause.isPressed()) { Serial.println("Pause mp3"); mp3_command(CMD_PAUSE, 0x0000); } if (button_next.isPressed()) { Serial.println("Play next mp3"); mp3_command(CMD_PLAY_NEXT, 0x0000); } if (button_prev.isPressed()) { Serial.println("Play previous mp3"); mp3_command(CMD_PLAY_PREV, 0x0000); } } void mp3_command(int8_t command, int16_t dat) { int8_t frame[8] = { 0 }; frame[0] = 0x7e; // starting byte frame[1] = 0xff; // version frame[2] = 0x06; // the number of bytes of the command without starting byte and ending byte frame[3] = command; // frame[4] = 0x00; // 0x00 = no feedback, 0x01 = feedback frame[5] = (int8_t)(dat >> 8); // data high byte frame[6] = (int8_t)(dat); // data low byte frame[7] = 0xef; // ending byte for (uint8_t i = 0; i < 8; i++) { mp3.write(frame[i]); } }

Las conexiones de cableado para el código mencionado:

Diagrama de cableado del altavoz del reproductor MP3 para Arduino UNO R4

This image is created using Fritzing. Click to enlarge image

Ver La mejor forma de alimentar Arduino Uno R4 y otros componentes.

Ahora puedes cambiar los proyectos para incluir más características, por ejemplo:

Video Tutorial

Estamos considerando crear tutoriales en video. Si considera que los tutoriales en video son importantes, suscríbase a nuestro canal de YouTube para motivarnos a crear los videos.

Referencias de funciones

※ NUESTROS MENSAJES

  • No dude en compartir el enlace de este tutorial. Sin embargo, por favor no use nuestro contenido en otros sitios web. Hemos invertido mucho esfuerzo y tiempo en crear el contenido, ¡por favor respete nuestro trabajo!