Найти тему

Осциллографический пробник на базе Arduino (программное обеспечение)

В прошлой статье шла речь о схеме, теперь статья о программном обеспечении осциллографического пробника.

Эмблему rcl-radio из уважения к ресурсу не убрал. Изменения коснулись оформления экрана, добавления отдельно кнопки HOLD, подключение пина переключения диапазона. Провел опыты с делителем частоты, при коэффициенте 4 резко падает точность, 8 актуально (2 мГц), скорость считывания при этом сильно не возрастает. Для контроля можно снять комментарий после цикла измерения на передачу данных в консоль. Разрядность можно выбирать - 8, 9 или 10 бит (комментируя или снимая комментарий строки) Текст скетча,, к сожалению, дзен не позволяет публиковать, ссылка на скетч в конце статьи (проект osc.ino). Несколько фотографий работы пробника:

Тактовый импульс после дифцепи.
Тактовый импульс после дифцепи.
Синус 6760 Гц
Синус 6760 Гц
Меандр с кмоп генератора
Меандр с кмоп генератора
Пила.
Пила.
Синус 14.7 кГц
Синус 14.7 кГц
Синус 15.625 кГц. Строчная частота.
Синус 15.625 кГц. Строчная частота.

Библиотека изменения частоты PWM: https://github.com/atmelino/Arduino/tree/master/libraries/PWM

Ссылка на скачивание скетча: https://cloud.mail.ru/public/yBBS/of2ntdaAu

Наладка осциллографического пробника.

Методика измерения сигнала - относительная.

Для наладки  используется любой фиксированный источник тока с напряжением. не превышающим 5 вольт. Хорошо подойдет элемент питания АА или ААА. В первую очередь выставляем сопротивлением  R12 (см. схему) выставляем "0". При выбранном 10 битном режиме АЦП последний старший бит будет "шуметь". Это связано и с упрощенным построением "земли" в ардуино (нет разделения на "цифровую" и "аналоговую" землю), и с качеством применяемых операционных усилителей, и монтаж тоже добавит свое.

Здесь была схема, по мнению Дзена, дублирующая контент.

Схему смотрите в статье "Осциллографический пробник на Arduino (схема)", так как дзен любимый всеми считает, если я картинку из другой своей статьи вставлю - все, дублирую контент. Вольтметром измеряем напряжение элемента питания. Далее измеряем пробником элемент питания, и сопротивлением R6 добиваемся показаний, соответствующих измеренным вольтметром. Переключаемся в диапазон 25 вольт и сопротивлением R8 добиваемся таких же показаний (не забываем, что в диапазоне 25В цена деления 0.05, а в диапазоне 5В 0.01). Если при переключении с диапазона на диапазон "0" значительно "плывет" - значит у вас экземпляр ОУ с большим смещением входа (делитель на входе тоже делит напряжение смещения). В таком случае коррекцию можно внести на программном уровне, вычитая или прибавляя arr и arr1. И помним, что это не точный измерительный прибор, задача смотреть примерную картину происходящего.

Скетч основан на материале  этой статьи .

С уважением к читателям. Пожалуйста оценивайте материал, задавайте вопросы, постараюсь ответить.

Мой блог и статья: https://sp8plus.blogspot.com/2021/03/arduino_5.html