Выбор входа АЦП Arduino Nano
Максимальная частота дискретизации АЦП для '328p при использовании предделителя по умолчанию 128 составляет примерно 10 000 выборок в секунду. Возможно, я пропустил, но не могу понять, является ли это общей частотой дискретизации для всех входов или каждый мультиплексированный вход может поддерживать такую частоту?
В любом случае, если я собираюсь использовать только один аналоговый вход (например, A0), есть ли способ отключить мультиплексирование и выбрать, какой вход будет активным, возможно, с помощью регистра ADMUX?
@Jim Mack, 👍1
Обсуждение1 ответ
Лучший ответ:
При предделителе по умолчанию 128 максимальная частота дискретизации составляет
9615 выборок/с (16 МГц/128/13). Этого можно добиться, установив АЦП в режим
«режим свободного выполнения». При запуске analogRead() в замкнутом цикле, максимальная
Частота дискретизации составляет 8929 с/с (16 МГц/128/14). Поскольку АЦП всего один, это
общая скорость для всех выборочных входных данных.
Есть ли способ отключить мультиплексирование и выбрать, какой вход будет активным?
МУЛЬТИПЛЕКСОР — это физическое устройство, которое располагается между входами и АЦП. Вы не можете физически удалить его. Что вы подразумеваете под «отключить»? Можно. конечно, сохраняйте выбор каналов постоянным.
Я предполагал, что мультиплексор поочередно проверяет каждый вход, но это может быть что если я буду читать только с канала 0, то мультиплексор никогда не будет выбрать другой канал?
В самом деле. Можно представить MUX как 1P11T (один полюс, одиннадцать сигналов). Переключатель. Каждый раз, когда вы меняете настройки мультиплексора, он переключается на другой Канал. Если не изменить его настройки, он не будет двигаться.

Может быть, я преувеличиваю. Я предполагал, что мультиплексор поочередно проверяет каждый вход, но, возможно, если я всегда читаю только с канала 0, то мультиплексор никогда не выберет другой канал?, @Jim Mack
@Jim Mack Грубо говоря, мультиплексирование — это установка статического маршрута между выводом и АЦП, и в любой момент времени может быть только один такой маршрут. Если вы вызываете, скажем, AnalogRead(A1), маршрут для этого вызова устанавливается. Последующий вызов AnalogRead(A2) удалит все предыдущие маршруты и создаст свой собственный., @6v6gt
@JimMack: Смотрите отредактированный ответ., @Edgar Bonet
- Измерение напряжения литий-ионного элемента, используемого для питания Arduino через повышающий модуль
- Использование библиотеки емкостных датчиков с мультиплексором 74HC4067
- Чтение линейного ПЗС-датчика TCD1304
- Использование CD74HC4067 16-канальный аналоговый мультиплексор Демультиплексор работает не так, как ожидалось
- Выводы Portenta для АЦП
- Что произойдет, если я установлю ARef на 3,3 В и попытаюсь использовать adc, подключенный к 5 В?
- Частота дискретизации нескольких аналоговых контактов на Arduino
- Использование Arduino для записи аналоговых сигналов с помощью SPI ADC + проблема с частотой дискретизации
Каково конкретное применение и сколько выборок в секунду вам нужно? Помимо работы АЦП в автономном режиме, о котором уже упоминалось ниже, вы можете управлять АЦП по таймеру и использовать обработчик прерываний АЦП для выполнения кода по завершении преобразования. Мультиплексирование в данном контексте означает возможность маршрутизации выбранного вывода к АЦП. Это не автоматическое и активное сканирование всех выводов, как, например, мультиплексирование семисегментного дисплея., @6v6gt
выберите, какой вход активен... разве не это делает мультиплексор?, @jsotola@6v6gt — Действительно, я сделал необоснованное предположение, что мультиплексирование АЦП — это активное автоматическое сканирование аналоговых входов. Теперь я вижу, что это не так, и это всё проясняет., @Jim Mack