Точный омметр для измерения термисторов

Nutya
Offline
Зарегистрирован: 09.06.2020

Для измерения термисторов решил сделать омметр, но не устраивает точность измерений. Измерять нужно от 1кОм до 60 кОм, одновременно от 12 до 30 термисторов . Делитель поставил на 70,9 кОм.( делитель стоит между А0-GND для 1 мультиплексора и А1-GND для 2 мультиплексора)

Для увеличения точности думаю или вводить поправочные коэффициенты, вычесленные эмперическим путем, либо попробовать собрать схему с мостом Уинстона, но с ним уменя как раз проблема - никак не могу сообразить как это сделать на основе ардуино.

#define EN 3
#define S0 4
#define S1 5
#define S2 6
#define S3 7
#define SIG1 A0
#define SIG2 A1
#define R1 70900
#define U_THERMISTOR	5000	//Напряжение подаваемое на термистор в мВольтах
void setup()
{
  Serial.begin(9600);

  pinMode(S0, OUTPUT);
  pinMode(S1, OUTPUT);
  pinMode(S2, OUTPUT);
  pinMode(S3, OUTPUT);

  digitalWrite(S0, LOW);
  digitalWrite(S1, LOW);
  digitalWrite(S2, LOW);
  digitalWrite(S3, LOW);

  pinMode(EN, OUTPUT);
  digitalWrite(EN, LOW);

  delay(1000); //Ждем переходные процессы в схеме
}

int ADCMux;

void loop()
{
  //Loop through and read all 16 values
  //Reports back Value at channel 6 is: 346
  for (int j = 0; j < 2; j ++)
  {
    Serial.print("Mux: ");
    Serial.print(j + 1);
    for (int i = 0; i < 16; i ++)
    {
      Serial.print(" ch");
      Serial.print(i);
      Serial.print(": ");
      ADCMux = readMux(j + 1, i);
      Serial.print(" [v1: ");
      Serial.print(ConvertADCToVoltage(ADCMux));
      //Serial.print(ADCMux);
      Serial.print(" r2: ");
      Serial.print(CalculateThermistor(ConvertADCToVoltage(ADCMux)));
      Serial.print("]");
    }
    Serial.println();
  }
  Serial.println();
  delay(2000);
}

/**
   Функция выбора мультиплексора и канала в нём
   @param  mux_n   Номер мультиплексора 1-2
   @param  channel Канал 0-15
   @return         Значение АЦП, -1 - ошибка выбора мультиплексора
*/
int readMux(int mux_n, int channel)
{
  int adc = 0;
  if ((mux_n <= 0) || (mux_n >= 3)) return -1;

  int controlPin[] = {S0, S1, S2, S3};

  int muxChannel[16][4] =
  {
    {0, 0, 0, 0}, //channel 0
    {1, 0, 0, 0}, //channel 1
    {0, 1, 0, 0}, //channel 2
    {1, 1, 0, 0}, //channel 3
    {0, 0, 1, 0}, //channel 4
    {1, 0, 1, 0}, //channel 5
    {0, 1, 1, 0}, //channel 6
    {1, 1, 1, 0}, //channel 7
    {0, 0, 0, 1}, //channel 8
    {1, 0, 0, 1}, //channel 9
    {0, 1, 0, 1}, //channel 10
    {1, 1, 0, 1}, //channel 11
    {0, 0, 1, 1}, //channel 12
    {1, 0, 1, 1}, //channel 13
    {0, 1, 1, 1}, //channel 14
    {1, 1, 1, 1} //channel 15
  };

  //loop through the 4 sig
  for (int i = 0; i < 4; i ++)
  {
    digitalWrite(controlPin[i], muxChannel[channel][i]);
  }
  delay(200);
  //return the value
  for (int i = 0; i < 16; i++)
  	adc += analogRead(mux_n == 1 ? SIG1 : SIG2);
    return adc / 16;

  //return analogRead(mux_n == 1 ? SIG1 : SIG2);
}

/**
   Конвертируем показания АЦП в напряжение, в мВольтах
   @param  adc показания АЦП
   @return     напряжение, в мВольтах
*/
uint16_t ConvertADCToVoltage(uint16_t adc)
{
  return (adc * 4.8828125); //adc * (5000mV / 1024)
}

/**
   Находим значение термистора, в Ом
   @param  v1 напряжение на делителе
   @return    сопротивление термистора, в Ом
*/
uint32_t CalculateThermistor(uint16_t v1)
{
  return ((U_THERMISTOR * R1) / v1) - R1;
}

 

Nutya
Offline
Зарегистрирован: 09.06.2020
rkit
Offline
Зарегистрирован: 23.11.2016

Может быть, если тебе нужна точность, ты удосужишься определить, что за точность тебе нужна?

Nutya
Offline
Зарегистрирован: 09.06.2020

с погрешностью +-50 Ом

rkit
Offline
Зарегистрирован: 23.11.2016

Окей, строй прецизионный источник тока для генерации смещения на резисторе, строй переключатель каналов для него, бери ацп разрешением бит 16, и делай. Вопрос в схемотехнике, а не в ардуино.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Не могли бы Вы пояснить

1. с какой целью Вы притянули входы A0 и A1 к земле, и о каком делителе Вы говорите? Делитель образуется этим резистором, которым Вы притягивали и измеряемым, правильно?

2. из Вашего поста неясно, а вопрос то к нам у Вас какой?

Nutya
Offline
Зарегистрирован: 09.06.2020

1.Резистивимный делитель напряжения. Поскольку резисторы соединены последовательно, то ток через них будет одинаков в соответствии с первым правилом КирхгофаПадение напряжения на каждом резисторе согласно закону Ома будет пропорционально сопротивлению (ток, как было установлено ранее, одинаков).

2. Сейчас все работает, но погрешность измерения сопротивления 150-300 Ом. Вопрос в том каким образом уменьшить погрешность, хотябы до 50 Ом. Потому что на термисторах которые я использую , погрешность в 300 Ом это примерно 1 градус.

b707
Offline
Зарегистрирован: 26.05.2017

Nutya пишет:

2. Сейчас все работает, но погрешность измерения сопротивления 150-300 Ом. Вопрос в том каким образом уменьшить погрешность, хотябы до 50 Ом. Потому что на термисторах которые я использую , погрешность в 300 Ом это примерно 1 градус.

а вы это измеряете в термостате со стабильной температурой с точностью до 0.2 градусов? - иначе ни о какой стабильности и точности измерений термисторов смысла говорить нет

Nutya
Offline
Зарегистрирован: 09.06.2020

да, но нужен он для измерений в полевых условиях (в скважинах). Так же имеется старый прибор (еще советский) , но проблема в том что он уже отжил свое (постоянно вырубается, удаляет данные и другие болячки). На старом приборе погрешность 30 Ом (проверял), в обычных условиях сверялся с ним.

b707
Offline
Зарегистрирован: 26.05.2017

еще раз повторяю вопрос - старый прибор в термостате работает?

Потому что иначе все эти байки про точность 30 Ом - вранье

Nutya
Offline
Зарегистрирован: 09.06.2020

b707 пишет:

еще раз повторяю вопрос - старый прибор в термостате работает?

Потому что иначе все эти байки про точность 30 Ом - вранье

Проверял в установке для тарировки терморезисторов точность рабочей камеры вроде бы 0,03 градуса. Термомеристор брал ММТ-4   1,5 кОм

b707
Offline
Зарегистрирован: 26.05.2017

Nutya пишет:

Проверял в установке для тарировки терморезисторов точность рабочей камеры вроде бы 0,03 градуса. Термомеристор брал ММТ-4   1,5 кОм

ну отлично. Не забудьте эту камеру приделать к своему прибору на 30 термисторов, иначе искать точность 50 Ом смысла нет

rkit
Offline
Зарегистрирован: 23.11.2016

 

Ну или вот например простая цепь, дающая линейный выход с переменного резистора, который остается только оцифровать с желаемым разрешением

SLKH
Offline
Зарегистрирован: 17.08.2015

Nutya пишет:

2. Сейчас все работает, но погрешность измерения сопротивления 150-300 Ом. 

Для этой схемы - вполне приличный результат.

Цитата:
 каким образом уменьшить погрешность, хотя бы до 50 Ом.  
#4

ВН
Offline
Зарегистрирован: 25.02.2016

60кОм/ 50 =1200, что явно больше чем 1023, т.е. 10-ти разрядным ацп точность 50 Ом не обеспечить в принципе.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

ВН пишет:
60кОм/ 50 =1200, что явно больше чем 1023, т.е. 10-ти разрядным ацп точность 50 Ом не обеспечить в принципе.

это если измерять от 0 Ом, а зачем? Он же измеряет определённый номинал, под него и затачивать прибор

SLKH
Offline
Зарегистрирован: 17.08.2015

ua6em пишет:

ВН пишет:
60кОм/ 50 =1200, что явно больше чем 1023, т.е. 10-ти разрядным ацп точность 50 Ом не обеспечить в принципе.

это если измерять от 0 Ом, а зачем? Он же измеряет определённый номинал, под него и затачивать прибор

акая сексуальная разница?

у него цена деления (т.е. минимальная _теоретически_ достижимая погрешность) порядка 130 ом. Реальная, естественно, больше.

SLKH
Offline
Зарегистрирован: 17.08.2015

b707 пишет:

Nutya пишет:

Проверял в установке для тарировки терморезисторов точность рабочей камеры вроде бы 0,03 градуса. Термомеристор брал ММТ-4   1,5 кОм

ну отлично. Не забудьте эту камеру приделать к своему прибору на 30 термисторов, иначе искать точность 50 Ом смысла нет

до термокамеры ещё далеко. 

для начала нужно омметр сочинить - а он п(р)оверяется гораздо проще, магазином. 

SLKH
Offline
Зарегистрирован: 17.08.2015

Nutya пишет:

с погрешностью +-50 Ом

возможно (но не обязательно), погрешность удастся несколько снизить при: 

- уменьшить номиналы r1, r2. может быть, приколхозить какой-нибудь переключатель для разных диапазонов измерения.

- на аналоговые входы припаять керам. конденсаторы.

- перед измерением очередного резистора отработать 2-3 раз analogRead() без записи результата измерения.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

SLKH пишет:

ua6em пишет:

ВН пишет:
60кОм/ 50 =1200, что явно больше чем 1023, т.е. 10-ти разрядным ацп точность 50 Ом не обеспечить в принципе.

это если измерять от 0 Ом, а зачем? Он же измеряет определённый номинал, под него и затачивать прибор

акая сексуальная разница?

у него цена деления (т.е. минимальная _теоретически_ достижимая погрешность) порядка 130 ом. Реальная, естественно, больше.

ждёмс аппаратное решение как 10 битным цапом измерить максимально точно, если известен диапазон измеряемых величин

SLKH
Offline
Зарегистрирован: 17.08.2015

ua6em пишет:

SLKH пишет:

ua6em пишет:

ВН пишет:
60кОм/ 50 =1200, что явно больше чем 1023, т.е. 10-ти разрядным ацп точность 50 Ом не обеспечить в принципе.

это если измерять от 0 Ом, а зачем? Он же измеряет определённый номинал, под него и затачивать прибор

акая сексуальная разница?

у него цена деления (т.е. минимальная _теоретически_ достижимая погрешность) порядка 130 ом. Реальная, естественно, больше.

ждёмс аппаратное решение как 10 битным цапом измерить максимально точно, если известен диапазон измеряемых величин

1. что такое "максимально точно"?

"Может быть, если тебе нужна точность, ты удосужишься определить, что за точность тебе нужна?"

2. почему нужно измерять обязательно "10 битным цапом"

3. Бюджет?

 

nik182
Offline
Зарегистрирован: 04.05.2015

SLKH пишет:

акая сексуальная разница?

у него цена деления (т.е. минимальная _теоретически_ достижимая погрешность) порядка 130 ом. Реальная, естественно, больше.

Большая разница. Сдвиг уровня на операционнике и если нужно скажем измерять изменение в 1к то на 10битном ацп ардуины будем иметь точность около 3 Ом. Без сдвига уже приводили цифры.

ВН
Offline
Зарегистрирован: 25.02.2016

nik182 пишет:

 Сдвиг уровня на операционнике и если нужно скажем измерять изменение в 1к то на 10битном ацп ардуины будем иметь точность около 3 Ом. Без сдвига уже приводили цифры.

Операционники сами не безпогрешны, а в однополярном включении в близкой к земле области и подавно.

Это будет отельная секс-песня.

зы. вроде даже недавно где-то тут ЕП сетовал, что ну не обеспечивают китайские райл-то-райл операш точности. 

SLKH
Offline
Зарегистрирован: 17.08.2015

nik182 пишет:

SLKH пишет:

акая сексуальная разница?

у него цена деления (т.е. минимальная _теоретически_ достижимая погрешность) порядка 130 ом. Реальная, естественно, больше.

Большая разница. Сдвиг уровня на операционнике и если нужно скажем измерять изменение в 1к то на 10битном ацп ардуины будем иметь точность около 3 Ом. Без сдвига уже приводили цифры.

точность или индикацию?  

 

nik182
Offline
Зарегистрирован: 04.05.2015

ВН пишет:

nik182 пишет:

 Сдвиг уровня на операционнике и если нужно скажем измерять изменение в 1к то на 10битном ацп ардуины будем иметь точность около 3 Ом. Без сдвига уже приводили цифры.

Операционники сами не безпогрешны, а в однополярном включении в близкой к земле области и подавно.

Это будет отельная секс-песня.

зы. вроде даже недавно где-то тут ЕП сетовал, что ну не обеспечивают китайские райл-то-райл операш точности. 


Безгрешность операционников определяется только Вашим умением их применять. Все слова про сетования исключительно от не знания и попыток выйти за пределы определённые мануалом на операционник.

nik182
Offline
Зарегистрирован: 04.05.2015

SLKH пишет:

nik182 пишет:

SLKH пишет:

акая сексуальная разница?

у него цена деления (т.е. минимальная _теоретически_ достижимая погрешность) порядка 130 ом. Реальная, естественно, больше.

Большая разница. Сдвиг уровня на операционнике и если нужно скажем измерять изменение в 1к то на 10битном ацп ардуины будем иметь точность около 3 Ом. Без сдвига уже приводили цифры.

точность или индикацию?  

 


Точность определяется калибровкой. 3 Ом это аппаратный параметр железа, лучше которого, даже после калибровки, получить точное значение не получится. Но эта точность существенно выше необходимой ТС. Поэтому на индикаторе можно показывать любое округленное значение в большую сторону и оно будет истинным, с точностью до округления.

svm
Offline
Зарегистрирован: 06.11.2016

1 Измерение сопротивления в корне неправильно. Вы заранее вносите погрешность, приняв напряжение на делителе=5 В. На самом деле оно никогда не будет таковым. Правильнее измерять соотношение напряжений на верхнем и среднем концах делителя.  Если внимательнее посмотреть на формулу расчета делителя, то напряжение в ней сокращается. Поэтому измерять нужно не в милливольтах, а в (попугаях) единицах АЦП на верхнем и среднем выводах делителя.

2. Максимального разрешения можно добиться если верхнее и нижнее плечо делителя равны, в Вашем случае в середине диапазона около 30 КОм. И то 30 Ом от 30 КОм составляет 0,1% При 60-0,05%. Но точности в 30 Ом. Даже в этом случае не получить, т.к. на один разряд АЦП приходится около 60 Ом. Если применять несколько опорных резисторов (переключать диапазоны). То в нижнем конце 1-10 КОм это получится.

rkit
Offline
Зарегистрирован: 23.11.2016

svm пишет:

Максимального разрешения можно добиться если верхнее и нижнее плечо делителя равны.

Бред.

ВН
Offline
Зарегистрирован: 25.02.2016

nik182 пишет:
Безгрешность операционников определяется только Вашим умением их применять.

В общем - верно, но вот как-то сам не готов излагать томик Фолкенберри на форуме, хотя мне только рукой до него дотянуться ... 

nik182 пишет:
  Все слова про сетования исключительно от не знания и попыток выйти за пределы определённые мануалом на операционник.

Ну что вы так категоричны-то на ровном месте, поищите, где Евгений Петрович излагает этот вопрос, посмотрите даташит на то что он там применяет, может тогда и снизойдет просветление, что не все микрухи с Али соответствуют  якобы родным для них мануалам. Еще будь кто-то другой, я бы может и засомневался, но в данном разе уверен, что ЕП прежде десяток раз проверил перед тем как вынес на форум этот вопрос. 

svm
Offline
Зарегистрирован: 06.11.2016

rkit пишет:

svm пишет:

Максимального разрешения можно добиться если верхнее и нижнее плечо делителя равны.

Бред.

Не бред, а математика. Если резисторы делителя равны или близки друг к другу, то при изменении одного из них процентное изменение напряжения будет максимальным. А если один из них допустим на порядок больше другого, то и изменение напряжения соответственно уменьшится. Закон Ома суров, но справедлив.

И еще одно замечание, для измерения сопротивления на делителе не нужен прецизионный источник. В вычислениях не участвует абсолютные значения напряжения, а только их соотношение. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

svm пишет:

Не бред, а математика. Если резисторы делителя равны или близки друг к другу, то при изменении одного из них процентное изменение напряжения будет максимальным. А если один из них допустим на порядок больше другого, то и изменение напряжения соответственно уменьшится. Закон Ома суров, но справедлив.

Так-то оно так, только вот с равенством там не совсем получается. Да и о каком равенстве речь, если измеряемый резистор заведомо может иметь различные сопротивления. Если выписать формулу для делителя, а потом взять максимальное и минимальное сопротивление датчика/"измеряемого резистора" (Rmax и Rmin) и решить задачу поиска максимума величины разброса напряжений в средней точке (ведь именно при максимуме точность наилучшая - больше попугаев влезет), то получается. что максимум достается, когда второй резистор делителя равен среднему геометрическому между Rmax и Rmin. И это не зависит от того, в каком плече делителя находится измеряемый резистор, а в каком рассчитываемый. Подробно все выкладки приведены здесь.

svm
Offline
Зарегистрирован: 06.11.2016

ЕвгенийП пишет:

svm пишет:

Не бред, а математика. Если резисторы делителя равны или близки друг к другу, то при изменении одного из них процентное изменение напряжения будет максимальным. А если один из них допустим на порядок больше другого, то и изменение напряжения соответственно уменьшится. Закон Ома суров, но справедлив.

Так-то оно так, только вот с равенством там не совсем получается. Да и о каком равенстве речь, если измеряемый резистор заведомо может иметь различные сопротивления. Если выписать формулу для делителя, а потом взять максимальное и минимальное сопротивление датчика/"измеряемого резистора" (Rmax и Rmin) и решить задачу поиска максимума величины разброса напряжений в средней точке (ведь именно при максимуме точность наилучшая - больше попугаев влезет), то получается. что максимум достается, когда второй резистор делителя равен среднему геометрическому между Rmax и Rmin. И это не зависит от того, в каком плече делителя находится измеряемый резистор, а в каком рассчитываемый. Подробно все выкладки приведены здесь.

Я не говорю о строгом равенстве, хотя-бы порядок. Но применение образцового резистора в 70 КОм при использовании термистора на 1,5 КОм это перебор. 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Да, перебор. Пусть, кстати, ТС мои формулы почитает. Тогда он по пределам измерения легко посчитает разброс напряжений, и вопросы о теоретически достижимой точности отпадут сами собой - там всё очевидно.

nik182
Offline
Зарегистрирован: 04.05.2015

Я следил за укрощением операционника Евгением. Я не  имею ввиду алишные подделки. Вопрос качества купленных усилителей за рамками данного топика. На аналоговых схемах летали ракеты, где минимальные ошибки приводят к огромным интегральным накоплениям. Сделать простую схему сдвига уровня и усиления для формирования на входе АЦП сигнала точно в нужных ТС диапазоне изменения входного напряжения операционника на резистивном делителе нет никаких проблем, даже на хреновых алишных. Разрешение изменения температуры будет выше, чем необходимо ТС. Соответствие  полученных значений температуры реальным, в любом случае, можно обеспечить только калибровкой.     

rkit
Offline
Зарегистрирован: 23.11.2016

svm пишет:

Я не говорю о строгом равенстве

Зато ох как громко на математику ссылаешься.

Реальные способы максимизации разрешения в этой теме я уже написал. Делитель в два резистора - самый простой, но одновременно и самый плохой способ измерения сопротивления, какие бы ты замысловатые круги вокруг него не выплясывал.  И это как раз математика. От человека, который ее считал, а не просто ссылается с умным видом.

svm
Offline
Зарегистрирован: 06.11.2016

ЕвгенийП пишет:

Да, перебор. Пусть, кстати, ТС мои формулы почитает. Тогда он по пределам измерения легко посчитает разброс напряжений, и вопросы о теоретически достижимой точности отпадут сами собой - там всё очевидно.

Когда я делал пробник, то руководствовался этими-же соображениями. Измерение сопротивлений ардуино , с необходимой точностью,  оказалось самым простым. Пробник измеряет сопротивления от 10 Ом до 2 МОм с тремя образцовыми резисторами 470Ом, 4,7 КОм и 47 КОм с достаточной точностью (1 знак после запятой), что для пробника вполне достаточно. Если необходимы более точные результаты, то можно разбить на более узкие диапазоны,  подобрав соответствующие образцовые резисторы.

svm
Offline
Зарегистрирован: 06.11.2016

rkit пишет:

svm пишет:

Я не говорю о строгом равенстве

Зато ох как громко на математику ссылаешься.

Реальные способы максимизации разрешения в этой теме я уже написал. Делитель в два резистора - самый простой, но одновременно и самый плохой способ измерения сопротивления, какие бы ты замысловатые круги вокруг него не выплясывал.  И это как раз математика. От человека, который ее считал, а не просто ссылается с умным видом.

А Вы, что предлагаете, измерять без делителя и образцового резистора?  Это самый простой и точный метод, если есть ардуино и образцовый резистор. Остальное все от лукавого. Ну и насчет математики погорячился. Это арифметика.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

svm пишет:
Это арифметика.
Ну-ну!!! :-)))

В моём PDF для решения задачи оптимизации производная используется (можно даже, с натяжкой, сказать - диф. уравнение) - галимый матан!

SLKH
Offline
Зарегистрирован: 17.08.2015

svm пишет:

ЕвгенийП пишет:

Да, перебор. Пусть, кстати, ТС мои формулы почитает. Тогда он по пределам измерения легко посчитает разброс напряжений, и вопросы о теоретически достижимой точности отпадут сами собой - там всё очевидно.

Когда я делал пробник, то руководствовался этими-же соображениями. Измерение сопротивлений ардуино , с необходимой точностью,  оказалось самым простым. Пробник измеряет сопротивления от 10 Ом до 2 МОм с тремя образцовыми резисторами 470Ом, 4,7 КОм и 47 КОм с достаточной точностью (1 знак после запятой), что для пробника вполне достаточно. Если необходимы более точные результаты, то можно разбить на более узкие диапазоны,  подобрав соответствующие образцовые резисторы.

и мы плавно подходим к магазину Р33...

svm
Offline
Зарегистрирован: 06.11.2016

ЕвгенийП пишет:

svm пишет:
Это арифметика.
Ну-ну!!! :-)))

В моём PDF для решения задачи оптимизации производная используется (можно даже, с натяжкой, сказать - диф. уравнение) - галимый матан!

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

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

svm пишет:
я электронику больше задом чую.
Нетрадиционный электронщик?

(не обижайся, сам подставился - грех не стебануться -)

svm
Offline
Зарегистрирован: 06.11.2016

Ворота пишет:

svm пишет:
я электронику больше задом чую.
Нетрадиционный электронщик?

(не обижайся, сам подставился - грех не стебануться -)

У, ты какая!

nik182
Offline
Зарегистрирован: 04.05.2015

svm пишет:

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

Стебаться не буду, но замечу, что в случае сдвига уровня операционником и последующим усилением варианты с большим отношением образцового и измеряемого сопротивления более предпочтительны, т.к.  при равенстве их, функция 1/R , лежащая в основе метода, имеет большую нелинейность и требует больше математики (не арифметики) для восстановления измеренного значения. Или таблицу пересчёта попугаев в сопротивление. 

svm
Offline
Зарегистрирован: 06.11.2016

Ладно, спорить не будем, но мне не ясно, зачем сначала уменьшать разрешение, затем усиливать и еще математику с нелинейными функциями применять. Не проще разбить на несколько диапазонов и сравнивать "попугаев". Ведь мы измеряем сопротивление, а зачем измерять напряжения и токи с высокой точностью, если сопротивление от них не зависит (в разумных пределах).

nik182
Offline
Зарегистрирован: 04.05.2015

Есть понятие метод измерения. У Вас нет возможности прямого измерения сопротивления. Только расчёт на основе закона Ома. К тому же метод с образцовым сопротивлением имеет большую нелинейность, так что даже если Вы разбили на много диапазонов то точное значение сопротивления без пересчёта получаете в одной точке. Что бы измерять сопротивление без пересчёта, нужно подавать на него калиброванный стабилизированный ток, и тогда АЦП даст измеренное напряжение, пропорциональное сопротивлению.

Разрешение не уменьшается с учётом усиления. Оно сдвигается в более линейную область, где ошибка от нелинейности метода меньше и можно использовать оцифрованное значение без пересчёта. Ваши убеждения по поводу лучшего разрешения основаны только на том, что Вы желаете использовать максимально упрощённые входные цепи и получить максимально возможную точность. На процессоре это действительно можно сделать, т.к. есть возможность считать математику и использовать много образцовых резисторов, подключая их в момент измерения с помощью конфигурирования ног процессора. Это задача измерения сопротивления любого резистора. К задаче ТС это относится слабо, т.к. у него определёно сопротивление резистора и определен диапазон изменения сопротивления, в котором надо произвести измерение. И решать надо соответственно задачу ТС. Т.к диапазон изменения сопротивления существенно меньше значения сопротивления, то никакие ухищрения с выводом рабочей точки на центр не помогут добиться необходимой ТС точности при использовании простого резистивного делителя.           

svm
Offline
Зарегистрирован: 06.11.2016

Если ТС требуется точность 30 Ом или даже +/- 50 Ом, то диапазон 1,5-60 КОм легко перекроется тремя/четырьмя  образцовыми резисторами. Минимум деталей, простенькая программа. Зачем огород городить?  Выбор диапазона автоматом, ключами ардуино. Сопротивление открытого ключа 19-20 ом, легко учесть. Еще неизвестно, какую погрешность внесет аналоговый коммутатор.

nik182
Offline
Зарегистрирован: 04.05.2015

Аналоговый коммутатор откуда взаялся? Ваши домыслы? Вы читаете, что я пишу? Сопротивление известно. Известно изменение сопротивления при изменении температуры. Зачем 3 - 4 резистора, если всё изменение сопротивления укладывается в десяток процентов от полного сопротивления. Не надо измерять любое сопротивление. Задача другая и решать её надо соответственно.   

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Если поставить образцовый резистор 62к (это ближайший к идеальному из Е24), то получим теоретический предел точности - 120ом/попугая.

Так что, полученная ТС погрешность

Nutya пишет:
150-300 Ом. 

это очень хорошо! Учитывая, что абсолютная погрешность ардуиновского АЦП ±2lsb и то, что в ардуине АЦП распаян "экономно" - просто замечательный результат. 

Так что действительно, либо искать другой метод измерения, либо дробить интервал.

svm
Offline
Зарегистрирован: 06.11.2016

nik182 пишет:

Аналоговый коммутатор откуда взаялся? Ваши домыслы? Вы читаете, что я пишу? Сопротивление известно. Известно изменение сопротивления при изменении температуры. Зачем 3 - 4 резистора, если всё изменение сопротивления укладывается в десяток процентов от полного сопротивления. Не надо измерять любое сопротивление. Задача другая и решать её надо соответственно.   

У ТС на схеме ( пост #1) стоят два аналоговых коммутатора, чтобы контролировать, как он пишет от 12 до 30 термисторов. Так кажется. Да и диапазон измерения странный. Если он пишет что используется термистор на 1,5 КОм (это по идее при +25 градусах) и изменяется до 60 КОм - это наверное уже глубокий минус. Откуда он в скважине. Хотя я характеристики термистора не смотрел, может и ошибаюсь. Извиняюсь сейчас глянул характеристики у него отрицательный ТКС. И разброс характеристик до 20%.

rkit
Offline
Зарегистрирован: 23.11.2016

ЕвгенийП пишет:

Учитывая,

что он не проводил измерения на всём диапазоне, а сравнил одну-две цифры с эталоном на заведомо нелинейной схеме — погрешностью эту результат называть нельзя. Это просто шум.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

rkit пишет:

что он не проводил измерения на всём диапазоне, а сравнил одну-две цифры с эталоном на заведомо нелинейной схеме — погрешностью эту результат называть нельзя. Это просто шум.

да, возможно. 

Хотя, он не писал как именно он проводил измерения.

-----------

Кстати, в том моём посте забыл написать, что в расчётах я исходил из необходимости измерять сопротивления в диапазоне 1,5-60 кОм