sábado, 2 de junio de 2018

Proyectos con ESP32 #1: Reproducir Audio Usando el DAC


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:

void setup() {
}
void loop() { 
  for (int i = 0; i < 22000; ++i){
    dacWrite(25, rawData[i]);
    delayMicroseconds(38); // ((1/22050)*1000000) - 7
  }
}


9 comentarios:

  1. Gracias, me ha gustado mucho tu video. Sencillo y funcional y muy bien explicado

    ResponderEliminar
  2. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  4. Hay 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:

    void 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,....

    ResponderEliminar
  5. hola, excelente practica, se puede aplicar con NODEMCU ESP8266

    ResponderEliminar
    Respuestas
    1. Hola Roberto. ESP8266 no tiene DAC. Podés hacer algo parecido usando PWM y un filtro. Saludos.

      Eliminar