Преобразование ячеек АЦП в напряжение [закрыто]

Допустим, у меня есть 12-битный аналого-цифровой преобразователь (4096 шагов). И допустим у меня есть сигнал от 0 до 5 Вольт.

какова правильная формула преобразования для преобразования ячеек АЦП в Вольты?

V = ADC / 4096 * 5

или

V = ADC / 4095 * 5

Я делю на 4096, потому что в АЦП есть 4096 ячеек?

Или я делю на 4095, потому что это самое высокое значение, которое возвращает АЦП?

5 ответов


спецификация для АЦП должны определите, как 5V представлен с точки зрения ваших 12 бит.

Я подозреваю, что 4095 соответствует 5V, и, следовательно, ваше второе решение правильно. В противном случае вы никогда не сможете правильно идентифицировать сигнал 5V.


предложение Брайана О проверке таблицы данных ADC идеально. Но! Предполагая, что ваше максимальное напряжение (5V) равно максимальному входу АЦП (12 бит = 4095), следующее преобразование должно работать для вас:

const float maxAdcBits = 4095.0f; // Using Float for clarity
const float maxVolts = 5.0f;      // Using Float for clarity
const float voltsPerBit = (maxVolts / maxAdcBits);

float yourVoltage = ADCReading * voltsPerBit;

быстрый осмотр математики с Excel приводит меня к выводу, что это правильно.


V = ADC / 4096 * 5

- правильная формула для преобразования цифрового значения обратно в (аппроксимацию) аналогового напряжения.

Это согласно Справочник "Конвертация Данных", отредактировано Walt Kester (Newnes, 2005), и доступный на (по состоянию на 2011/10/25) на:

http://www.analog.com/library/analogDialogue/archives/39-06/data_conversion_handbook.html

см., В частности, рисунки 2.4 и 2.5 в Глава 2: Figures 2.4 and 2.5 from Data Conversion Handbook

в вашем случае FS будет 5 V. (и, конечно, вы используете 12-битный АЦП, а не 3-битный.) Обратите внимание, что даже если значение АЦП является максимально возможным (4095 в вашем случае), соответствующее аналоговое напряжение будет немного меньше, чем "полномасштабное" напряжение (5 В в вашем случае).


для 12-битного значения максимальное представимое значение равно 4095, но, конечно, есть 4096 значений total (включая ноль). Предполагая, что ваш АЦП является линейным, то да, 4095 эквивалентно полной шкалы. Это не обязательно 5V, но независимо от вашего опорного напряжения эквивалентно или значение, превышающее это напряжение (конечно).


насколько придирчивым вы хотите стать? Если вы хотите действительно стать придирчивым, то вы также должны учитывать, что каждый "bin" представляет собой небольшой диапазон значений (около 1,2 МВ в вашем случае). Итак, когда вы преобразуете в значение напряжения, вы хотите вернуть значение напряжения середины бункера или нижнего края бункера? То есть, вы хотите эффективно "усечь" или "округлить" значение, о котором вы сообщаете?

кроме того, шаги АЦП, вероятно, четные (линейные), но позаботьтесь о том, что ADC делает с бункерами на двух концах диапазона. Эти бункеры, возможно, вдвое меньше остальных. Это зависит от АЦП, поэтому проверьте спецификацию.

имеет ли это значение вообще, зависит от вашего приложения.