Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Danas ćemo govoriti o dva pitanja. Prvi je DAC (digitalno-analogni pretvarač). Smatram to važnim, jer preko njega, na primjer, stvaramo audio izlaz u ESP32. Drugo pitanje koje ćemo danas riješiti je osciloskop. Zatim ćemo sastaviti osnovni DAC kod u ESP32 i osciloskopom vizualizirati analogne signale valnog oblika koje generira mikrokontroler.
Današnje okupljanje je jednostavno, toliko da nisam snimio demonstracije. Lako je razumjeti samo sa postavljenom slikom. U osnovi, imamo ESP32 koji će kroz program generirati nekoliko vrsta valnih oblika.
Kao izlaz koristimo GPIO25, a kao referencu GND.
Korak 1: Korišteni resursi
• ESP32
• Osciloskop
• Protoboard (opcionalno)
• Džemperi
Korak 2: Upotrebljen bor
U ovom primjeru koristit ćemo GPIO 25, koji odgovara DAC_1.
Drugi primjer koji se može koristiti je GPIO 26, koji odgovara DAC_2.
Korak 3: ESP32 kod - valna matrica
Imamo izvorni kod koji će generirati četiri vrste valnih oblika.
Prvo sastavljamo dvodimenzionalnu matricu.
Ovdje navodim oblik sinusnih i trokutastih valova.
Na slikama prikazujem oblik zuba pile i kvadrat.
Što se tiče izvornog koda, u postavljanju nisu potrebne nikakve radnje. U petlji određujem položaj matrice koji odgovara tipu vala i koristim primjer kvadratnog vala. Podatke pohranjene u matrici zapisujemo na pin 25. Provjerite je li "i" u zadnjoj koloni niza. Ako je tako, "i" se poništava i vraćamo se na početak.
Želim jasno staviti do znanja da je ovaj DAC unutar ESP32 STM32, odnosno čipova, općenito, malog kapaciteta. Oni su za općenitiju upotrebu. Za generiranje visokofrekventnih valova postoji sam DAC čip koji, na primjer, nude Texas ili Analog Devices.
void setup () {//Serial.begin(115200); } // TESTE SEM POSICIONAMENTO (GLAVNE FREKVENCIJE) /* void loop () {dacWrite (25, 0xff); // 25 ou 26 dacWrite (25, 0x00); // 25 ou 26 // delayMicroseconds (10); } */// TESTE COM POSICIONAMENTO (MENORSKE FREKVENCIJE) void loop () {byte wave_type = 0; // Sinus // bajt wave_type = 1; // Trokut // byte wave_type = 2; // Sawtooth // byte wave_type = 3; // kvadrat dacWrite (25, WaveFormTable [wave_type] ); // 25 ou 26 i ++; if (i> = Broj_uzoraka) i = 0; }
Referentni ID:
Korak 4: Profesionalni generator
Donosim ovdje primjer profesionalnog generatora, samo da vam dam ideju o cijeni ove opreme. Može se koristiti, na primjer, za simulaciju izvora i generiranje rušenja. Mogli bismo ubrizgati električni šum u STM mikrokontroler, analizirajući koliko bi buka poremetila čip. Ovaj model također ima automatsku funkciju za generiranje električne buke.
Korak 5: Hantek DSO 4102C 100mhz osciloskop sa generatorom proizvoljnih funkcija
Ovo je savjet u vezi jeftinijih opcija opreme. Na Aliexpressu košta oko 245 USD. Sviđa mi se jer ima generator funkcija, a da ne spominjem da olakšava lokaciju grešaka u krugu.
Korak 6: Valovi dobiveni osciloskopom:
Prvo hvatamo valove u sinusoidnom obliku, trokutasto, pilasto i na kraju, kvadrat.
Korak 7: Preuzmite datoteke:
JA NE