Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
Dziś porozmawiamy o dwóch kwestiach. Pierwszym z nich jest DAC (przetwornik cyfrowo-analogowy). Uważam to za ważne, bo za jego pośrednictwem robimy np. wyjście audio w ESP32. Drugą kwestią, którą dzisiaj zajmiemy się, jest oscyloskop. Następnie skompilujemy podstawowy kod DAC w ESP32 i zwizualizujemy za pomocą oscyloskopu analogowe sygnały falowe generowane przez mikrokontroler.
Dzisiejszy montaż jest tak prosty, że nie nagrałem demonstracji. Łatwo to zrozumieć dzięki umieszczonemu tutaj obrazowi. Zasadniczo mamy ESP32, który za pomocą programu wygeneruje kilka rodzajów przebiegów.
Używamy GPIO25 jako wyjścia, a GND jako odniesienia.
Krok 1: Wykorzystane zasoby
• ESP32
• Oscyloskop
• Płyta prototypowa (opcjonalnie)
• Zworki
Krok 2: Używana sosna
W tym przykładzie użyjemy GPIO 25, co odpowiada DAC_1.
Innym przykładem, który można wykorzystać, jest GPIO 26, które odpowiada DAC_2.
Krok 3: Kod ESP32 - macierz fal
Mamy kod źródłowy, który wygeneruje cztery rodzaje przebiegów.
Najpierw składamy dwuwymiarową matrycę.
Tutaj określam kształt fal sinusoidalnych i trójkątnych.
Na jednym z obrazów pokazuję kształt zęba piły oraz kwadrat.
Jeśli chodzi o kod źródłowy, nie jest wymagane żadne działanie w Instalatorze. W Pętli określam pozycję macierzy odpowiadającą typowi fali i używam przykładu fali prostokątnej. Dane zapisane w macierzy zapisujemy na pinie 25. Sprawdź, czy w ostatniej kolumnie tablicy znajduje się „i”. Jeśli tak, „i” jest resetowane i wracamy do początku.
Chcę wyjaśnić, że ten DAC wewnątrz ESP32 STM32, czyli ogólnie chipów, ma małą pojemność. Są do bardziej ogólnego użytku. Do generowania fal o wysokiej częstotliwości służy sam układ DAC, oferowany np. przez Texas czy Analog Devices.
void setup() { //Serial.begin(115200); } //TESTE SEM POSICIONAMENTO (MAIOR CREQUENCIA) /* void loop() { dacWrite(25, 0xff); //25 lub 26 dacWrite(25, 0x00); //25 lub 26 //opóźnienieMikrosekund(10); } */ //TESTE COM POSICIONAMENTO (MENOR FREQUENCIA) void loop() { byte wave_type = 0; // Sinus //bajt wave_type = 1; // Trójkąt //bajt wave_type = 2; // Sawtooth //bajt wave_type = 3; // Kwadratowy dacWrite(25, WaveFormTable[wave_type]); //25 lub 26 i++; jeśli (i >= Liczba_Próbek) i = 0; }
Identyfikator referencyjny:
Krok 4: Profesjonalny generator
Przytaczam tutaj przykład profesjonalnego generatora, żeby dać wyobrażenie o kosztach tego sprzętu. Można go wykorzystać na przykład do symulacji źródła i wygenerowania awarii. Moglibyśmy wprowadzić szum elektryczny do mikrokontrolera STM, analizując, jak bardzo szum zakłóci układ. Model ten posiada również automatyczną funkcję generowania szumu elektrycznego.
Krok 5: Oscyloskop Hantek DSO 4102C 100mhz z generatorem funkcji arbitralnych
To wskazówka dotycząca tańszych opcji wyposażenia. Na Aliexpress kosztuje około 245 USD. Podoba mi się, bo ma generator funkcji, nie mówiąc już o tym, że ułatwia lokalizację błędów w obwodzie.
Krok 6: Fale uzyskane za pomocą oscyloskopu:
Najpierw rejestrujemy fale w postaci sinusoidalnej, trójkątnej, piłokształtnej, a na końcu kwadratowej.
Krok 7: Pobierz pliki:
JA NIE