Ви не увійшли.
Йожэг, прав
// source http://tim4dev.com/arduino-secret-true-voltmeter/ double Vcc = 5.0; // не всегда так int value = analogRead(0); double volt = (value / 1023.0) * Vcc; // правильно только если Vcc = 5.0В
только питание используйте стабильное для всей схемы
все что выше vref, adc покажет как 1 во всех битах
Все верно, выше референса кажет максимум. А жаль.
Йожэг, прав
// source http://tim4dev.com/arduino-secret-true-voltmeter/
double Vcc = 5.0; // не всегда так
int value = analogRead(0);
double volt = (value / 1023.0) * Vcc; // правильно только если Vcc = 5.0В
только питание используйте стабильное для всей схемы
все что выше vref, adc покажет как 1 во всех битах
Хм, но тогда если убрать источник опорного напряжения, то АЦП в МК и датчик будут отдавать и получать значения относительно референса, равного напряжению питания. И ничего пересчитывать не придётся.
Это естественно, как и предложение надежного стабилизированного питания. Но точное опорное для того и нужно, чтобы быть уверенным, что там вот столько-то вольт плюс-минус заявленные 2% (к примеру). Некая теоретическая универсальность.
Я таки вечером попробую погонять и так и так и посмотреть на цифры. Действительно ли при внешнем АРЕФ тупо отрезается шкала до референса или же просто идет рассчет с таким упором.
Есть простой выход - везде ставить делители резистивные с максимумом референса, но их то тоже нужно калибровать, да и лишние детали.
А тут везде написано как-то расплывчато, мол, АЦП "сравнивает" с опорным напряжением... Что оно сравнивает, как...
Кстати видел несколько раз использование внутреннего 1.1В референса, но он менее точный чем LM4040. А стабилизираторы точные - дороже опорного диода.
я бы пошел от обратного,
стабилизировал питание датчика )
Application 4. Rectified Output. 3.3 V scaling and rectification application
for A-to-D converters. Replaces current transformer solutions with simpler
ACS circuit. C1 is a function of the load resistance and filtering desired.
R1 can be omitted if the full range is desired.
из
https://www.sparkfun.com/datasheets/Bre … s/0712.pdf
а зачем такие танцы при использовании встроенного АЦП ??? )
Хм, но тогда если убрать источник опорного напряжения, то АЦП в МК и датчик будут отдавать и получать значения относительно референса, равного напряжению питания. И ничего пересчитывать не придётся.
Выходит, что Референс - потолок, выше него АЦП не померяет.
Задача: используя внешний AREF = 4.086V узнать текущее напряжение питания датчика, чтобы потом, используя это знание, нормализовать оцифрованное значение аналогового выхода датчика, т.к. оно зависит от напряжения питания.
некие основы по АЦП
http://lsm.epfl.ch/files/content/sites/ … s_2009.pdf
я задачу не понял вообще (
Вам нужно точно знать значение напряжения питания?
И что будет оцифровано, если опорное напряжение 4 В, а на входе АЦП -- аж 5 Вольт.
Вот мне и интересно, а что будет то? Референс зачем вообще? Если я правильно понимаю - для того, чтобы знать, что 1024 = РЕФЕРЕНС. А то, что я подаю чуть больше, зная какой референс и чему равна 1 на входе АЦП - в чем криминал? Для другого порта референсом есть измеренное точно VCC... Нет?
И что будет оцифровано, если опорное напряжение 4 В, а на входе АЦП -- аж 5 Вольт.
Добрый день,
Хочу задать такой вопрос. Вернее уточнить у знающих - правильно ли я понимаю ситуацию.
Есть Ардуина (не важно какая), опорное напряжение в виде LM4040-4.1 (4.086V) подключенное к AREF.
При такой конфигурации значение с порта analogRead будет равно опорному напряжению, тоесть 4.086 / 1023.
В случае, если к другому аналоговому порту идет подключение от, например, ACS172 и значения с этого датчика будут 0 - 5V (если VCC = 5V ровно и ACS172 подпитан от VCC), без делителя, правильно ли я понимаю, что можно высчитать точное значение измеряя VCC отдельно?
А именно - измеряем VCC (при помощи делителя р10к/р100к, откалиброванного до того как измерять внешним мультиметром), получаем, например, 4.85 и с порта датчика определяем значение как 4.85 / 1023?