Ви не увійшли.
Сторінки 1
Добрый день,
Хочу задать такой вопрос. Вернее уточнить у знающих - правильно ли я понимаю ситуацию.
Есть Ардуина (не важно какая), опорное напряжение в виде 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?
Неактивний
И что будет оцифровано, если опорное напряжение 4 В, а на входе АЦП -- аж 5 Вольт.
Вот мне и интересно, а что будет то? Референс зачем вообще? Если я правильно понимаю - для того, чтобы знать, что 1024 = РЕФЕРЕНС. А то, что я подаю чуть больше, зная какой референс и чему равна 1 на входе АЦП - в чем криминал? Для другого порта референсом есть измеренное точно VCC... Нет?
Неактивний
некие основы по АЦП
http://lsm.epfl.ch/files/content/sites/ … s_2009.pdf
я задачу не понял вообще (
Вам нужно точно знать значение напряжения питания?
Неактивний
Выходит, что Референс - потолок, выше него АЦП не померяет.
Задача: используя внешний AREF = 4.086V узнать текущее напряжение питания датчика, чтобы потом, используя это знание, нормализовать оцифрованное значение аналогового выхода датчика, т.к. оно зависит от напряжения питания.
Неактивний
Хм, но тогда если убрать источник опорного напряжения, то АЦП в МК и датчик будут отдавать и получать значения относительно референса, равного напряжению питания. И ничего пересчитывать не придётся.
Неактивний
я бы пошел от обратного,
стабилизировал питание датчика )
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
а зачем такие танцы при использовании встроенного АЦП ??? )
Неактивний
Хм, но тогда если убрать источник опорного напряжения, то АЦП в МК и датчик будут отдавать и получать значения относительно референса, равного напряжению питания. И ничего пересчитывать не придётся.
Это естественно, как и предложение надежного стабилизированного питания. Но точное опорное для того и нужно, чтобы быть уверенным, что там вот столько-то вольт плюс-минус заявленные 2% (к примеру). Некая теоретическая универсальность.
Я таки вечером попробую погонять и так и так и посмотреть на цифры. Действительно ли при внешнем АРЕФ тупо отрезается шкала до референса или же просто идет рассчет с таким упором.
Есть простой выход - везде ставить делители резистивные с максимумом референса, но их то тоже нужно калибровать, да и лишние детали.
А тут везде написано как-то расплывчато, мол, АЦП "сравнивает" с опорным напряжением... Что оно сравнивает, как...
Кстати видел несколько раз использование внутреннего 1.1В референса, но он менее точный чем LM4040. А стабилизираторы точные - дороже опорного диода.
Неактивний
Йожэг, прав
// 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 во всех битах
Остання редакція NoName (2016-01-12 18:32:34)
Неактивний
Йожэг, прав
// 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 во всех битах
Все верно, выше референса кажет максимум. А жаль.
Неактивний
Сторінки 1