Максимальная частота, которую можно преобразовать с помощью Arduino Uno?

На плате Arduino Uno используется последовательный АЦП с разрядностью 12 бит и тактовой частотой 16 МГц. Какую максимальную частоту голоса можно преобразовать с помощью платы arduino uno? Мне нужно пошаговое решение с расчетами.

, 👍1

Обсуждение

вы не получите пошаговое решение с расчетами .... пожалуйста, предоставьте код, который вы написали, объясните, как вы ожидаете, что он будет работать, и объясните, где он терпит неудачу, @jsotola


1 ответ


Лучший ответ:

2

Во-первых, АЦП на Uno 10-битный, а не 12-битный.

Наивный подход с использованием analogRead() в тесном цикле может дать вам до 8,9 кС/с (112 мкс на образец), но вы не сможете делать многое другое, так как ЦП проводит большую часть своего времени, просто ожидая АЦП делает свое дело. Если вы настраиваете АЦП вручную, то вы можете установить в так называемый «режим свободного хода». Затем вы получите о 9,6 кС/с (104 мкс/с), но тогда ЦП свободен для обработки одного образец, пока следующий конвертируется.

Если вам нужно работать быстрее, вы можете настроить частоту внутреннего часы АЦП. Тогда это компромисс между скоростью и точностью: быстрее вы идете менее точно. Вы можете получить грубый, но полезный образцы со скоростью до 77 кСм/с (13 мкс/с).

Для подробного сравнения различных вариантов тактирования со скоростью и оценку точности см. в статье преобразование АЦП на Arduino (аналоговое чтение), Ник Гэммон.

,

Обратите внимание, что благодаря теореме Найквиста-Шеннона частота дискретизации в два раза превышает максимальную частоту контента, поэтому 8,9 кС/с соответствует максимальной звуковой частоте 4,45 кГц., @Majenko