Tabla de contenido:
2025 Autor: John Day | [email protected]. Última modificación: 2025-01-13 06:57
Hoy hablaremos de dos cuestiones. El primero es el DAC (convertidor de digital a analógico). Lo considero importante, porque a través de él, por ejemplo, hacemos una salida de audio en ESP32. El segundo tema que vamos a abordar hoy es el osciloscopio. Luego, compilaremos un código DAC básico en ESP32 y visualizaremos con un osciloscopio las señales de forma de onda analógica generadas por un microcontrolador.
El montaje de hoy es sencillo, tanto que no grabé una demostración. Es bastante fácil de entender con solo la imagen que se coloca aquí. Básicamente, tenemos un ESP32 que, a través de un programa, generará varios tipos de formas de onda.
Usamos el GPIO25 como salida y el GND como referencia.
Paso 1: Recursos utilizados
• ESP32
• Osciloscopio
• Protoboard (opcional)
• Jerséis
Paso 2: pino usado
En este ejemplo, usaremos el GPIO 25, que corresponde al DAC_1.
Otro ejemplo que se puede utilizar es el GPIO 26, que corresponde al DAC_2.
Paso 3: Código ESP32 - Matriz de ondas
Tenemos un código fuente que generará cuatro tipos de formas de onda.
Primero, ensamblamos una matriz bidimensional.
Aquí, especifico la forma de las ondas sinusoidal y triangular.
En una de las imágenes, muestro la forma del diente de la sierra y el cuadrado.
En cuanto al código fuente, no es necesario realizar ninguna acción en la configuración. En el bucle, determino la posición de la matriz correspondiente al tipo de onda y uso un ejemplo de onda cuadrada. Escribimos los datos almacenados en la matriz en el pin 25. Compruebe si "i" está en la última columna de la matriz. Si es así, la "i" se resetea y volvemos al principio.
Quiero dejar claro que este DAC dentro del ESP32 del STM32, es decir, de los chips, en general, es de poca capacidad. Son para un uso más genérico. Para generar ondas de alta frecuencia, existe el chip DAC en sí, ofrecido por Texas o Analog Devices, por ejemplo.
configuración vacía () {//Serial.begin(115200); } // TESTE SEM POSICIONAMENTO (FRECUENCIA MAYOR) / * bucle vacío () {dacWrite (25, 0xff); // 25 o 26 dacWrite (25, 0x00); // 25 o 26 // delayMicroseconds (10); } * / // TESTE COM POSICIONAMENTO (MENOR FRECUENCIA) void loop () {byte wave_type = 0; // Sine // byte wave_type = 1; // Triángulo // byte wave_type = 2; // Diente de sierra // byte wave_type = 3; // Cuadrado dacWrite (25, WaveFormTable [wave_type] ); // 25 ou 26 i ++; if (i> = Num_Samples) i = 0; }
Id de referencia:
Paso 4: Generador profesional
Les traigo aquí un ejemplo de un generador profesional, solo para darles una idea del costo de este equipo. Podría usarse, por ejemplo, para simular una fuente y generar un bloqueo. Podríamos inyectar un ruido eléctrico en un microcontrolador STM, analizando cuánto el ruido interrumpiría el chip. Este modelo también tiene una función automática para generar ruido eléctrico.
Paso 5: Osciloscopio Hantek DSO 4102C de 100 mhz con generador de funciones arbitrarias
Este es un consejo sobre opciones de equipo más baratas. Cuesta alrededor de $ 245 en Aliexpress. Me gusta, porque tiene un generador de funciones, sin mencionar que facilita la localización de errores en el circuito.
Paso 6: Ondas obtenidas con el osciloscopio:
Primero capturamos ondas en forma sinusoidal, Triangular, Sawtooth y, finalmente, la Cuadrada.
Paso 7: descargue los archivos:
INO