Оглавление:
2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
Сегодня мы поговорим о двух вопросах. Первый - это ЦАП (цифро-аналоговый преобразователь). Считаю это важным, потому что через него, например, мы делаем аудиовыход в ESP32. Вторая проблема, к которой мы сегодня обратимся, - это осциллограф. Затем мы скомпилируем базовый код ЦАП в ESP32 и визуализируем с помощью осциллографа аналоговые сигналы, генерируемые микроконтроллером.
Сборка сегодня простая, да так, что демонстрацию я не записывал. Это достаточно легко понять, просто разместив здесь изображение. По сути, у нас есть ESP32, который с помощью программы генерирует несколько типов сигналов.
Мы используем GPIO25 как выход, а GND как ссылку.
Шаг 1. Используемые ресурсы
• ESP32
• Осциллограф
• Протоборд (по желанию)
• Джемперы
Шаг 2: Использованная сосна
В этом примере мы будем использовать GPIO 25, который соответствует DAC_1.
Другой пример, который можно использовать, - это GPIO 26, который соответствует DAC_2.
Шаг 3: Код ESP32 - Волновая матрица
У нас есть исходный код, который будет генерировать четыре типа сигналов.
Сначала собираем двумерную матрицу.
Здесь я указываю форму синусоидальной и треугольной волн.
На изображениях я показываю форму зуба пилы и квадрата.
Что касается исходного кода, никаких действий в Setup не требуется. В цикле я определяю положение матрицы, соответствующее типу волны, и использую пример прямоугольной волны. Мы записываем данные, хранящиеся в матрице, на выводе 25. Проверяем, находится ли «i» в последнем столбце массива. Если это так, то «i» сбрасывается, и мы возвращаемся к началу.
Хочу прояснить, что этот ЦАП внутри ESP32 STM32, то есть микросхем, в общем, малой емкости. Они предназначены для более общего использования. Для генерации высокочастотных волн существует сам чип ЦАП, например, предлагаемый Texas или Analog Devices.
void setup () {//Serial.begin(115200); } // ТЕСТИРОВАНИЕ ПОЗИЦИИ SEM (ОСНОВНАЯ ЧАСТОТА) / * void loop () {dacWrite (25, 0xff); // 25 или 26 dacWrite (25, 0x00); // 25 или 26 // delayMicroseconds (10); } * / // ТЕСТИРОВАНИЕ ПОЛОЖЕНИЯ COM (ЧАСТОТА МЕНОРЫ) void loop () {byte wave_type = 0; // Синус // байт wave_type = 1; // Треугольник // байт wave_type = 2; // Пилообразный // байт wave_type = 3; // Квадрат dacWrite (25, WaveFormTable [wave_type] ); // 25 или 26 i ++; если (я> = Num_Samples) я = 0; }
Идентификатор ссылки:
Шаг 4: профессиональный генератор
Я привожу здесь пример профессионального генератора, просто чтобы дать вам представление о стоимости этого оборудования. Его можно использовать, например, для имитации источника и создания сбоя. Мы могли ввести электрический шум в микроконтроллер STM, анализируя, насколько шум повредил бы микросхему. Эта модель также имеет автоматическую функцию генерации электрического шума.
Шаг 5: Осциллограф Hantek DSO 4102C 100 МГц с генератором произвольных функций
Это подсказка относительно более дешевых вариантов оборудования. На Алиэкспресс он стоит около 245 долларов. Мне он нравится, потому что в нем есть генератор функций, не говоря уже о том, что он облегчает обнаружение ошибок в схеме.
Шаг 6: волны, полученные с помощью осциллографа:
Сначала мы захватываем волны синусоидальной формы, треугольной, пилообразной и, наконец, квадратной.
Шаг 7: Загрузите файлы:
Я НЕТ