Toca sonidos .WAV en Arduino

Standard

Ya sea que tu intención sea tocar la Marcha Imperial en tu sable de luz DIY o algo menos buena onda. Te digo cómo hagas la conexión y programación para reproducir canciones o sonidos utilizando tu placa Arduino.

Los materiales que necesitarás son:

  • Una placa Arduino (en mi caso estoy utilizando un Arduino UNO)
  • Una bocina de 8 Ohms
  • Un módulo de tarjeta SD
  • Una tarjeta SD (no cualquiera funciona, usé una de 4GB y sin problema, pero una de 128MB no sirvió)
  • Cables

Primero haz el siguiente circuito. Nada del otro mundo:

Arduino, módulo SD y bocina

Ya que armaste el circuito y antes de programar, deberás preparar la tarjeta SD y el archivo de audio que pretendes reproducir en la bocina.

Primero la tarjeta SD. Para que no tengas problemas deberás formatear la tarjeta de la misma forma en la que lo haces con una memoria USB o similares. Pon la tarjeta en tu computadora, click derecho al ícono de la tarjeta, formatear e iniciar, asegúrate que en “Sistema de Archivos” diga FAT o FAT32.

Formatear

Ahora los archivos de sonido. ¿Cuál quieres reproducir? Busca un archivo que te interese, algo de preferencia menor a un minuto ya sea en formato .mp3 o .wav. Aquí una página que puede ayudarte en esta tarea: http://www.sonidosmp3gratis.com/

No es tan fácil como pasar el archivo a tu tarjeta SD y ya, antes deberás darle ciertas características. Para ello necesitarás un programa llamado Wav Sample Rate Converter, el cual te permitirá convertir tu archivo .mp3 (si es que esa es su extensión) en un archivo .wav o, si tu archivo ya es .wav, te permitirá modificarle ciertas características importantes.

Ya que hayas instalado el software, da click en el botón “Open Media File” y define el “Wave Format” como se especifica en la imagen:

  • Samples per second (Hz): Custom define 16000
  • Channels: Mono
  • Bits per sample: 8

wav converter

Usa el botón “Browse” para elegir el nombre del archivo de salida y la dirección en la que se guardará. Da click en “Convert” una vez que lo hayas hecho y listo, tendrás un archivo que deberás guardar en la tarjeta SD para después reproducirlo con Arduino.

Ahora la programación. Toda esta magia la hace una librería que se llama “TMRpcm” y de la cual puedes conocer más en este link. Descarga la líbreria e instalala en Arduino (si no sabes cómo, aquí te lo explican).

Este es el código necesario para reproducir un sonido cada minuto.

Programa

Puedes descargarlo de aquí.

Si quieres hacer alguna tarea en específico no dudes en preguntar en lo comentarios, con gusto te ayudaremos.

Comments

comments

14 thoughts on “Toca sonidos .WAV en Arduino

  1. Marcelo

    Hola. Cual es la cantidad maxima de archivos que puedo cargar en la tarjeta? puedo hacer que arduino haga una suerte de sintesis de voz concatenativa con estos archivos?

  2. Bryan

    Estoy pensando en hacer una especie de teclado, pero que cada boton produzca un sonido diferente, no un tono como en un piano.
    Como podria integrar botones a este circuito?
    Espero tu consejo

    • Jorge

      Lograste decifrar eso? yo necesito hacer algo similar, pero en lugar de controlarlo con botones que sea el mismo arduino el que determinara que sonido reproducir. compre un modulo WTV020-16DIP con la esperanza de que funcionara con eso, pero estuve leyendo y no he logrado decifrar como hacerlo funcionar. cualquier ayuda será bienvenida.

  3. rodrigo contreras

    Hola, tengo un WTV020-16DIP reproductor de audio un arduino uno y un sensor pir , necesito programar el arduino para cuando el pir detecte un movimiento reproduzca un tema asi cuando el sensor detecte otro pase a otra cancion y asi, me podrias ayudar con el codigo?

  4. Luis

    Buen día, quiero hacer la aplicacion con el módulo dfplayer mini, pero como hago para extraer la duracion de cada canción y ese tiempo usarlo para el delay para la reproduccion de la canción. No me sirve colocar un delay fijo, debe ser el mismo tiempo de la canción, se puede hacer eso? muchas gracias

  5. forteroca

    Hola amigo me podrías ayudar, seguí todos los pasos del tuto pero no logro que se escuche nada, la conecto a una bocina pero nada, debe haber un amplificador o algo? por favor ayudame.

  6. Alfredo

    Hola, muchas gracias por compartir. Al igual que otras personas que han hecho comentarios aquí, yo también quiero reproducir sonidos con arduino, pero cuando los active un sensor pir. Podrías ayudarme con la programacion. Gracias anticipadas y un cordial saludo.

  7. Roberto Ramirez

    hola buenas noches mi nombre es Roberto y estoy tratando de hacer un robot que se autocargue si pudieran ayudarme se los agradecería mucho..
    Vale la pedna destacar los tutoriales ue ustedes aportan a los qque estamos interesados en hacer nuestros propios proyectos

  8. jordi

    Hola, necesito carpurar audio con un hydrofono o microfono conectado a un arduino y almacenrlo en tiempo real en un servidor. o al menos almacenarlo asi no sea en tiempo real. Cualquier sugerencia será bienvenida, gracias de antemano. He leído bastante pero no he hallado solucion

  9. Al momento en que tmrpcm.play se ejecuta, no se escucha la bocina, si funciona la bocina, ya la probé, pero no se porque no reproduce, hice todo al pie de la letra como lo han descrito. ayuda por favor!

  10. Fernando

    Hola, gracias por el aporte, necesito una ayuda con la programación: Quiero reproducir relatos de goles en un futbolin, grabaría en la sd los resultados y estos deberían ser reproducidos una ves que los goles entren a cada arco de futbol; lo que busco es que con las dos señales se pueda relatar el resultado, habría 05 bolas por partido y siempre habría un ganador.

    Gracias.

  11. Juan

    Buenas noches,
    Tengo un pequeño problema en el momento en que quiero subir el programa a la placa.
    La librería TMRpcm.h no la detecta coo libreria. Alguien mepodria decir porque?

    Muchas gracias,

    Juan S.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *