Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Vandaag zullen we het hebben over twee problemen. De eerste is de DAC (Digitaal-naar-Analoog Converter). Ik vind het belangrijk, omdat we er bijvoorbeeld een audio-uitgang mee maken in ESP32. Het tweede probleem dat we vandaag gaan behandelen, is de oscilloscoop. Vervolgens compileren we een basis-DAC-code in ESP32 en visualiseren we met een oscilloscoop de analoge golfvormsignalen die door een microcontroller worden gegenereerd.
De vergadering van vandaag is zo eenvoudig dat ik geen demonstratie heb opgenomen. Het is gemakkelijk genoeg om te begrijpen met alleen de afbeelding die hier is geplaatst. Kortom, we hebben een ESP32 die, via een programma, verschillende soorten golfvormen zal genereren.
We gebruiken de GPIO25 als output, en de GND als referentie.
Stap 1: Gebruikte bronnen
• ESP32
• Oscilloscoop
• Protoboard (optioneel)
• Truien
Stap 2: grenen gebruikt
In dit voorbeeld gebruiken we de GPIO 25, die overeenkomt met de DAC_1.
Een ander voorbeeld dat kan worden gebruikt, is de GPIO 26, die overeenkomt met de DAC_2.
Stap 3: ESP32-code - golfmatrix
We hebben een broncode die vier soorten golfvormen zal genereren.
Eerst stellen we een tweedimensionale matrix samen.
Hier specificeer ik de vorm van de sinus- en driehoekige golven.
In één van de afbeeldingen laat ik de vorm van de tand van de zaag en het vierkant zien.
Wat de broncode betreft, is er geen actie nodig in de Setup. In de Loop bepaal ik de matrixpositie die overeenkomt met het golftype en gebruik ik een voorbeeld van een blokgolf. We schrijven de gegevens die in de matrix zijn opgeslagen op pin 25. Controleer of "i" in de laatste kolom van de array staat. Als dat zo is, wordt de "i" gereset en gaan we terug naar het begin.
Ik wil duidelijk maken dat deze DAC in de ESP32 van de STM32, dat wil zeggen van de chips, over het algemeen een kleine capaciteit heeft. Ze zijn voor meer generiek gebruik. Om hoogfrequente golven te genereren is er de DAC-chip zelf, aangeboden door bijvoorbeeld Texas of Analog Devices.
void setup() { //Serial.begin(115200); } //TESTE SEM POSICIONAMENTO (MAIOR FREQUENCIA) /* void loop() { dacWrite(25, 0xff); //25 of 26 dacWrite(25, 0x00); //25 of 26 //delayMicroseconds(10); } */ //TESTE COM POSICIONAMENTO (MENOR FREQUENCIA) void loop () { byte wave_type = 0; // Sinus //byte wave_type = 1; // Driehoek //byte wave_type = 2; // Zaagtand //byte wave_type = 3; // Vierkant dacWrite (25, WaveFormTable [wave_type]); //25 of 26 i++; als (i >= Num_Samples) i = 0; }
Referentie-ID:
Stap 4: Professionele generator
Ik breng hier een voorbeeld van een professionele generator, om u een idee te geven van de kosten van deze apparatuur. Het kan bijvoorbeeld worden gebruikt om een bron te simuleren en een crash te genereren. We zouden een elektrische ruis in een STM-microcontroller kunnen injecteren en analyseren hoeveel de ruis de chip zou verstoren. Dit model heeft ook een automatische functie om elektrische ruis te genereren.
Stap 5: Hantek DSO 4102C 100 mhz oscilloscoop met generator voor willekeurige functies
Dit is een tip over goedkopere uitrustingsopties. Het kost ongeveer $ 245 op Aliexpress. Ik vind het leuk, omdat het een functiegenerator heeft, om nog maar te zwijgen van het feit dat het de locatie van fouten in het circuit vergemakkelijkt.
Stap 6: Golven verkregen met de oscilloscoop:
We vangen eerst golven op in sinusvorm, driehoekig, zaagtand en tenslotte het vierkant.
Stap 7: Download de bestanden:
INO