Частота дискретизации нескольких аналоговых контактов на Arduino

как я проверил на веб-сайте Arduino, они упомянули все платы: UNO, Nano, Mini, Mega имеют максимальную частоту дискретизации 10 кГц для каждого аналогового контакта. Итак, моя забота: 1) есть ли разница между частотой дискретизации при чтении одного аналогового вывода и нескольких аналоговых выводов? Например, если мы читаем только 1 аналоговый вход, максимальная частота дискретизации может достигать 10 кГц. Как насчет максимальной частоты дискретизации, когда мы хотим прочитать 6 аналоговых входов? Максимальная частота дискретизации будет 10 кГц или (10/6) кГц? Можем ли мы одновременно считывать аналоговый ввод или нет?

2) Что делать, если я хочу получить частоту дискретизации не менее 1 кГц для каждой платы Arduino (предположим, 5 аналоговых входов)?

3) Если нам нужно подключить несколько плат Arduino по протоколу I2C или SPI, связана ли частота дискретизации с этими двумя протоколами?

, 👍0


1 ответ


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

2

1) У вас есть только один АЦП на плате, и все контакты проходят через мультиплексор. Вы можете прочитать только один контакт за раз. Если вы готовы отказаться от какого-то решения, вы можете читать немного быстрее, но это становится тяжело. Что еще хуже, когда вы переключаете контакты очень быстро, это может испортить ваши показания, так что для некоторых вещей, особенно при высоком входном импедансе, вам придется читать дважды и отбрасывать первое показание. Так что это, по сути, снижает вашу частоту дискретизации вдвое прямо здесь.

2) Это может быть выполнимо. Или хотя бы что-то близкое к этому. Вы бы работали в автономном режиме и написали жесткий ISR для чтения прерывания, когда аналоговое чтение завершено, и записывали каждое другое значение и переключали вывод каждый раз. Теоретически вы должны приблизиться к 1 кГц с 5 контактами. Может быть, немного быстрее, если немного отказаться от разрешения.

3) Эти протоколы связи работают со скоростью света по сравнению с аналоговым чтением.

,

Что, если мне нужно получить частоту дискретизации 5 кГц для каждого аналогового входа? Использовать только 1 аналоговый вывод на каждой плате Arduino? Есть ли лучший способ?, @Hector Ta

Получите микросхему АЦП. Они делают некоторые действительно быстрые. Это было бы более разумно, чем покупать кучу Arduino., @Delta_G

Спасибо. Кстати, есть ли какая-либо связь между скоростью передачи данных и частотой дискретизации? Можете ли вы поделиться со мной образцом кода, как настроить частоту дискретизации?, @Hector Ta

Скорость передачи — это количество битов в секунду, которое отправляет последовательное соединение. Частота дискретизации — это количество выборок в секунду при измерении. Это два совершенно разных понятия., @Delta_G

Я уверен, что профессор Google может найти примеры того, как запустить АЦП на Arduino в автономном режиме., @Delta_G

Можете ли вы предложить мне внешний чип АЦП на 30 аналоговых входов с частотой дискретизации 100 Гц? Я думаю, что Arduino Mega и 1 чип ADC в порядке. Потому что, если мы используем 2 Arduino Mega, подключенных через I2C, код может быть более сложным., @Hector Ta

Я не знаю ни одного навскидку. Обычно я просто захожу на сайт Mouser.com и ищу там. У них есть хорошая функция фильтра поиска., @Delta_G