Página principal

Grabador y reproductor de audio en SD
con arduino.


En un circuito antiguo arduvoz.html y arvoc.html , había realizado un reproductor de audio grabado en una tarjeta SD.
En otro de mis circuitos ardu_os.html también había realizado un digitalizador de 66k muestras por segundo.
Ahora juntamos los dos montajes y tenemos un grabador/reproductor de audio en una tarjeta SD con el arduino.
En una tarjeta SD almaceno las muestras de la entrada de A0 en ficheros wav en un formato de 8bits y con  una frecuencia de 11KHz.
Mediante la consola serie escribo el nombre del fichero a reproducir, y el arduino lo reproduce si existe.
Realmente no se almacena como formato wav, sino como formato en bruto, lo único que para mantener la compatibilidad con formato wav, dejo 1000bytes a cero como cabecera.
Para poder entender todo bien recomiendo que veáis la explicación de los anteriores artículos.En la salida, pin 9 del arduino,  sale la señal de audio que se filtra mediante un condensador.

La tarjeta SD funciona a 3,3V, y como el arduino funciona a 5V debemos hacer adaptar la entradas y salidas. Para no complicar el circuito y no gastarnos dinero en un adaptador, lo realizo con resistencias.
Es fácil y normalmente funciona bien.

Esquema eléctrico.


Circuito eléctrico montado en un adaptador de SD a MicroSD.


Diagrama del filtro de salida del audio.


Entrada audio.

Para poder digitalizar audio en el arduino, debemos elevar la tensión de entrada A0 del arduino a 2,5V, esto lo hacemos con dos resistencias de 10K.


El montaje realizado.

Las prueba las he realizado digitalizando una emisora de radio y son las que muestro en el vídeo siguiente.
https://youtu.be/fYuAXFDe1pg


Ordenes desde la consola

modo=0     pasa entrada a salida directamente
modo=1     reproduce
modo=2     graba

stop            para la grabación o reproducción




Si queremos importar el audio y transformarlo en cualquier formato, wav ,mp3, ogg, debemos utilizar el programa Audacity.

Ficheros grabados tarjeta SD.


Importar archivo en bruto y cambiar a una frecuencia de muestreo de 11000Hz.


Como podéis ver en el archivo importado, hay al principio 1000bytes a cero que si se quiere se pueden eliminar.

El resultado del audio no es muy bueno pero sirve perfectamente para digitalizar voz.

En el próximo montaje realizaré un grabador de audio utilizando un micrófono y un LCD para su control.

PROGRAMA


Saludos
Juan Galaz



Bibliografía:
http://www.seta43.netau.net/arduvoz.html
http://www.seta43.netau.net/arvoc.html
http://ravc00cs.blogspot.com.es/2012/07/pwm.html
https://github.com/TMRh20/TMRpcm/wiki
http://apcmag.com/arduino-project-5-digital-audio-player.htm
http://arduino-info.wikispaces.com/Arduino-PWM-Frequency
http://hykrion.com/?q=node/153
http://arduino.cc/es/Tutorial/SecretsOfArduinoPWM