Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Hoje, vamos falar sobre dois assuntos. O primeiro é o DAC (Conversor Digital para Analógico). Considero importante, pois através dela, por exemplo, fazemos uma saída de áudio no ESP32. O segundo problema que vamos abordar hoje é o osciloscópio. Em seguida, compilaremos um código DAC básico em ESP32 e visualizaremos com osciloscópio os sinais de forma de onda analógica gerados por um microcontrolador.
A montagem hoje é simples, tanto que não gravei nenhuma demonstração. É fácil de entender apenas com a imagem colocada aqui. Basicamente, temos um ESP32 que, por meio de um programa, irá gerar diversos tipos de formas de onda.
Usamos o GPIO25 como saída e o GND como referência.
Etapa 1: Recursos usados
• ESP32
• Osciloscópio
• Protoboard (opcional)
• Jumpers
Etapa 2: Pinheiro usado
Neste exemplo, usaremos o GPIO 25, que corresponde ao DAC_1.
Outro exemplo que pode ser utilizado é o GPIO 26, que corresponde ao DAC_2.
Etapa 3: Código ESP32 - Matriz de Onda
Temos um código-fonte que irá gerar quatro tipos de formas de onda.
Primeiro, montamos uma matriz bidimensional.
Aqui, eu especifico a forma das ondas senoidais e triangulares.
Em uma das imagens, exibo o formato do dente da serra e do quadrado.
Quanto ao código-fonte, nenhuma ação é necessária no Setup. No Loop, determino a posição da matriz correspondente ao tipo de onda e uso um exemplo de onda quadrada. Escrevemos os dados armazenados na matriz no pino 25. Verifique se "i" está na última coluna da matriz. Nesse caso, o "i" é zerado e voltamos ao início.
Quero deixar claro que esse DAC dentro do ESP32 do STM32, ou seja, dos chips, em geral, é de pequena capacidade. Eles são para uso mais genérico. Para gerar ondas de alta frequência, existe o próprio chip DAC, oferecido pela Texas ou Analog Devices, por exemplo.
void setup () {//Serial.begin(115200); } // TESTE SEM POSICIONAMENTO (MAIOR FREQUENCIA) / * void loop () {dacWrite (25, 0xff); // 25 ou 26 dacWrite (25, 0x00); // 25 ou 26 // delayMicroseconds (10); } * / // TESTE COM POSICIONAMENTO (MENOR FREQUENCIA) void loop () {byte wave_type = 0; // Seno // byte wave_type = 1; // Triângulo // byte wave_type = 2; // dente de serra // byte wave_type = 3; // Square dacWrite (25, WaveFormTable [wave_type] ); // 25 ou 26 i ++; if (i> = Num_Samples) i = 0; }
ID de referência:
Etapa 4: Gerador Profissional
Trago aqui um exemplo de gerador profissional, só para vocês terem uma ideia do custo desse equipamento. Pode ser usado, por exemplo, para simular uma fonte e gerar um travamento. Poderíamos injetar um ruído elétrico em um microcontrolador STM, analisando o quanto o ruído perturbaria o chip. Este modelo também possui uma função automática de geração de ruído elétrico.
Etapa 5: Osciloscópio Hantek DSO 4102C 100mhz com gerador de funções arbitrárias
Essa é uma dica sobre opções de equipamentos mais baratos. Custa cerca de US $ 245 no Aliexpress. Gosto, pois possui gerador de funções, sem contar que facilita a localização de erros no circuito.
Etapa 6: ondas obtidas com o osciloscópio:
Primeiro capturamos as ondas na forma sinusoidal, triangular, dente de serra e, finalmente, o quadrado.
Etapa 7: Baixe os arquivos:
EU NÃO