Este es el primer video de una nueva sección en la que
voy a subir proyectos usando los conocimientos que vamos adquiriendo en la
serie “ESP32 desde Cero”. En este primer proyecto explico como reproducir el
audio de un archivo WAV utilizando uno de los DAC. Todos esto lo logramos con
sólo 6 líneas de código.
Código Fuente:
Código Fuente:
void setup() { } void loop() { for (int i = 0; i < 22000; ++i){ dacWrite(25, rawData[i]); delayMicroseconds(38); // ((1/22050)*1000000) - 7 } }
Gracias, me ha gustado mucho tu video. Sencillo y funcional y muy bien explicado
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarEste comentario ha sido eliminado por el autor.
ResponderEliminarHay un problema: los datos se cargan en RAM y el ESP32 está limitado en RAM. Aconsejo cargar los datos en Flash, que es enorme. Bajar el retardo en uSec porque es una memoria más lenta:
ResponderEliminarvoid playSound(float volumen) {
for (int i = 0; i < sizeof (SineWave); i++) {
dac_output_voltage(DAC_CHANNEL_2, (uint8_t)((volumen/100)*(float)pgm_read_word(&(SineWave[i]))));
delayMicroseconds(10);
}
y los datos así:
unsigned char SineWave[] PROGMEM = {
0x52, 0x49, 0x46, 0x46, 0xEE, 0xD6, 0x00, 0x00, 0x57, 0x41, 0x56, 0x45,
0x66, 0x6D, 0x74, 0x20, 0x12, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,....
Muy buen dato. Gracias Germán.
EliminarBravo, very good!
EliminarHola buen día, estoy muy interesado en hacer un reproductor de audio de 30 seg de duración con esp32, porfavor alguien me podria ayudar a hacerlo de antemano gracias este es mi numero de whatsapp en México 2721671023
EliminarYo no entiendo como es que se hizo el cambio de memoria RAM a Flash, supongo que debe ser el lugar en donde declaras el arreglo de datos, pero en tu ejemplo no lo veo, sera que es adentro de la funcion playSound?????
Eliminarhola, excelente practica, se puede aplicar con NODEMCU ESP8266
ResponderEliminarHola Roberto. ESP8266 no tiene DAC. Podés hacer algo parecido usando PWM y un filtro. Saludos.
EliminarBravo, Thank you
ResponderEliminarSe puede aplicar para esp32 battery oled
ResponderEliminar