Перейти к содержанию
    

Как измерить сопротивление?

Хорошее предположение, а если наоборот +100 мВ, тогда ошибка уже будет 250 мВ. Вы этим резистором просто добавили ошибку в 150 мВ.

Если Vcc=5В, то при равенстве потенциалов земель на входе ADCin2 будет 147 мВ. 10-битный АЦП при Vcc=Vref=5В имеет разрешение 4.883 мB. То есть, измерив 147 мВ он в идеале выдаст значение 30. Следовательно, вычитая из результата измерения ADCin1 результат измерения ADCin2, мы вносим систематическую погрешность величиной 30 каунтов. Чтобы от нее избавиться, вычисления надо производить так:

 

RESULT = ADCin1 - ADCin2 + 30

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

RESULT = ADCin1 - ADCin2 + 30

 

Тогда можно использовать режим дифференциальных входов. И вычислять ничего не придется.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Есть криминал в сырце опроса АЦП...я сам недавно накололся на мегах 16/128 (думаю в этой врядле может быть по другому).

Пока усреднял измерение в канале по 100 точкам, некорректность была малозаметна. А как уменьшил число усредняемых точек, сразу вылезло - пришлось разбираться.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Запускаем измерение ADCin1 и сразу после этого изменяем мультиплексор на ADCin2. Сразу после запуска измерения ADCin2 меняем канал мультиплексора на ADCin1. Вот и все.

 

Вот для mega644

The MUXn and REFS1:0 bits in the ADMUX Register are single buffered through a temporary

register to which the CPU has random access. This ensures that the channels and reference

selection only takes place at a safe point during the conversion. The channel and reference

selection is continuously updated until a conversion is started. Once the conversion starts, the

channel and reference selection is locked to ensure a sufficient sampling time for the ADC. Continuous

updating resumes in the last ADC clock cycle before the conversion completes (ADIF in

ADCSRA is set). Note that the conversion starts on the following rising ADC clock edge after

ADSC is written. The user is thus advised not to write new channel or reference selection values

to ADMUX until one ADC clock cycle after ADSC is written.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
К сожалению, ваш контент содержит запрещённые слова. Пожалуйста, отредактируйте контент, чтобы удалить выделенные ниже слова.
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...