Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Idag kommer vi att prata om två frågor. Den första är DAC (Digital-to-Analog Converter). Jag anser att det är viktigt, för genom det gör vi till exempel en ljudutgång i ESP32. Den andra frågan vi ska ta upp idag är oscilloskopet. Vi kommer sedan att sammanställa en grundläggande DAC -kod i ESP32 och visualisera med oscilloskop de analoga vågformssignalerna som genereras av en mikrokontroller.
Monteringen idag är enkel, så mycket att jag inte spelade in en demonstration. Det är lätt nog att förstå med bara bilden placerad här. I grund och botten har vi en ESP32 som genom ett program kommer att generera flera typer av vågformer.
Vi använder GPIO25 som utdata och GND som referens.
Steg 1: Resurser som används
• ESP32
• Oscilloskop
• Protoboard (tillval)
• Hoppare
Steg 2: Tall används
I det här exemplet kommer vi att använda GPIO 25, som motsvarar DAC_1.
Ett annat exempel som kan användas är GPIO 26, som motsvarar DAC_2.
Steg 3: ESP32 -kod - Wave Matrix
Vi har en källkod som genererar fyra typer av vågformer.
Först monterar vi en tvådimensionell matris.
Här specificerar jag formen på sinus- och triangulära vågor.
I en av bilderna visar jag formen på tanden på sågen och torget.
När det gäller källkoden krävs ingen åtgärd i installationen. I slingan bestämmer jag matrispositionen som motsvarar vågtypen och använder ett fyrkantvågsexempel. Vi skriver data som lagras i matrisen på stift 25. Kontrollera om "i" finns i den sista kolumnen i matrisen. I så fall återställs "i" och vi går tillbaka till början.
Jag vill göra det klart att denna DAC inuti ESP32 i STM32, det vill säga chipsen i allmänhet, har liten kapacitet. De är för mer generisk användning. För att generera högfrekventa vågor finns det själva DAC-chipet, som till exempel erbjuds av Texas eller Analog Devices.
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; // Sinus // byte wave_type = 1; // Triangel // byte wave_type = 2; // Sågtand // byte wave_type = 3; // Square dacWrite (25, WaveFormTable [wave_type] ); // 25 ou 26 i ++; om (i> = Num_Samples) i = 0; }
Referens-id:
Steg 4: Professionell generator
Jag tar här ett exempel på en professionell generator, bara för att ge dig en uppfattning om kostnaden för denna utrustning. Det kan till exempel användas för att simulera en källa och generera en krasch. Vi kan injicera ett elektriskt brus i en STM -mikrokontroller och analysera hur mycket bruset skulle störa chipet. Denna modell har också en automatisk funktion för att generera elektriskt brus.
Steg 5: Hantek DSO 4102C 100mhz oscilloskop med godtyckliga funktioner
Detta är ett tips om billigare utrustningsalternativ. Det kostar runt $ 245 på Aliexpress. Jag gillar det, eftersom det har en funktionsgenerator, för att inte tala om att det underlättar platsen för fel i kretsen.
Steg 6: Vågor som erhålls med oscilloskopet:
Vi fångar först vågor i sinusform, triangulär, sågtand och slutligen torget.
Steg 7: Ladda ner filerna:
INO