Hardware necesitado
1 Placa Arduino Due
1 Escudo Arduino con una tarjeta SD con CS CS 4 (como el escudo de Ethernet)
1 Altavoz de 8 ohmios
1 Circuito integrado LM386 (amplificador de audio de baja potencia)
1 Potenciómetro de 10 Kohm
1 Resistencia de 10 ohm
2 Condensadores de 10 uF
1 Condensador de 0,05 uF (o 0,1 uF)
1 Condensador de 250 uF
Circuito
El escudo se encuentra en la parte superior de la olaca
Due con una tarjeta micro-SD en la ranura. Un archivo .wav llamado "test.wav" se
encuentra en el directorio raíz de la tarjeta. Para una prueba simple se puede
conectar un par de auriculares directamente a tierra y DAC0, respetando la
polaridad.
Para conectar un altavoz a la placa que tiene agregar un circuito de
amplificación conectado entre el pin DAC0 y el altavoz. El circuito de
amplificación aumentará el volumen del altavoz. Hay muchos amplificadores de
audio disponibles, uno de los más comunes es el LM386. El siguiente esquema
muestra cómo construir el circuito con el LM386 y unos pocos componentes. Puede
alimentar el LM386 conectando la clavija Vs a tensiones diferentes, como por
ejemplo a +5 V en el pin 5 V del Arduino Due o a una batería de 9 V externa. La
ganancia del amplificador está dada por el condensador conectado a los pines 1 y
8 del LM386. Con el condensador de 10 mF la ganancia se establece en 200, sin el
condensador la ganancia es de 50. Con el potenciómetro se puede controlar el
volumen del amplificador.
Advertencia: no conecte el altavoz directamente a los pines del Arduino Due.
Archivo de audio
El archivo de audio para almacenar en la tarjeta SD debe
estar en formato .wav con 44100 Hz, calidad estéreo de 16 bits.
Código
/*
Sencillo reproductor de Audio
Demuestra el uso de la biblioteca Audio con el Arduino Due
Hardware requrido :
* Escudo Arduino con una tarjeta SD en CS4
* Un archivo de sonido llamada "test.wav" en el directorio raóz de la tarjeta
SD
* Un amplificador de audio conectado entre el pin DAC0 y masa
* Un altavoz conectado al amplificador de ausio
Original por Massimo Banzi Septiembre 20, 2012
Modificado por Scott Fitzgerald Octubre 19, 2012
Modificado por Arturo Guadalupi Diciembre 18, 2015
Este código es de dominio publico
http://www.arduino.cc/en/Tutorial/SimpleAudioPlayer
*/
#include <SD.h>
#include <SPI.h>
#include <Audio.h>
void setup() {
//
configura la comunicacion serie a 9600 baud
Serial.begin(9600);
//
inicializa la tarjeta SD
Serial.print("Initializando
la tarjeta SD...");
if (!SD.begin(4)) {
Serial.println("
fallo!");
while(true);
}
Serial.println("
termnado.");
//
transferencia SPI de alta velocidad
//
Frecuencia de muestreo 44100kHz stereo => 88200
//
100 mSec de pre buffer.
Audio.begin(88200, 100);
}
void loop() {
int count = 0;
//
abre el archivo de la tarjeta
File myFile = SD.open("test.wav");
if (!myFile) {
//
Si el archivo no se abre, imprimir un error y detener
Serial.println("error
abriendo test.wav");
while (true);
}
const int S = 1024; //
Numero de muestras a leer en un bloque
short buffer[S];
Serial.print("Reproduciendo");
//
hasta que el archivo se termine
while (myFile.available()) {
//
lee desde el buffer
myFile.read(buffer, sizeof(buffer));
//
Prepara muestras
int volume = 1024;
Audio.prepare(buffer, S, volume);
//
Muestras para el audio
Audio.write(buffer, S);
//
Cada 100 bloques, imprimir '.'
count++;
if (count == 100) {
Serial.print(".");
count = 0;
}
}
myFile.close();
Serial.println("Fin
de archivo. Gracias por escuchar!");
while (true) ;
}
Hola hay algo parecido con arduino uno o nano?desde ya gracias
ResponderEliminarhola los archivos para leer la sd y audio las pueden incluir en el link
ResponderEliminargracias
se podria cambiar la frecuencia en lugar del volumen_¿?
ResponderEliminarEl circuito esta incompleto, para publicar las cosas asi mejor no publiques nada!!
ResponderEliminar