Появилась задача прикрутить данный ТС к аврке, схему вроде набросал
но сразу возник ряд вопросов. Нижний резистор, каков должен быть его номинал и его точность, если требуемый мне диапазон в 50 градусов и точность измерения +-1 градус хватит. Питание, заводимое на ТС, используют ли для этой цели общее питание с МК от стабилизатора типа 7805 или требуется отдельный прецизионный источник. Может быть уже есть готовые проект с кодом и схемами, буду признателен за любую помощь.
P.S. Плз, не надо писать про использование DS18(B/S)20 или замену ТС на него.
Номинал нижнего резистора должен быть таким, чтобы в середине диапазона измерения в точке соединения резисторов было половина напряжения ИОН*. Резистор очень желательно с минимальным ТКС. Точность его неважна, так как придётся всё равно калибровать сие изделие и составить таблицу соответствия показаний АЦП и измеренной температуры. Таблица зашивается в программу и она корректирует показания. График изменения вроде должен быть нелинейный с такой схемой включения. Образцовый термометр должен иметь погрешность не хуже 0,2 градуса. И естественно питание датчика должно быть стабильное, чем больше , тем лучше.
P.S.: Если кстати посмотреть график изменения сопротивления от температуры, то видно, что при изменении температуры от 0 до 50 град сопротивление меняется с 1000 до 1193.95 Ом, т.е. на ~20%. И таким образом, если нижний резистор у нас 1 кОм, то напряжение в средней точке изменится от 2,5В до 2,721 В, что весьма мало для обеспечения данной точности измерения. Нужно усилить сигнал с датчика или использовать резисторный мост, или второе с первым. Усиление должно быть таким, чтобы напряжение изменялось от примерно 10 до 90% полной шкалы АЦП (обычно это напряжение ИОН*).
Всё написанное является моим мнением. Я бы делал так. (*ИОН - источник опорного напряжения)
А не очень и смущает. Диапазон 50 градусов. Точность 1 градус. даже 8 разрядов хватит. 200 шагов - это дискретность 0,25 градуса. Если конечно усилить сигнал датчика до приемлемого.
Нужно усилить сигнал с датчика или использовать резисторный мост, или второе с первым. Усиление должно быть таким, чтобы напряжение изменялось от примерно 10 до 90% полной шкалы АЦП (обычно это напряжение ИОН*).
Появилась задача прикрутить данный ТС к аврке, схему вроде набросал но сразу возник ряд вопросов. Нижний резистор, каков должен быть его номинал и его точность, если требуемый мне диапазон в 50 градусов и точность измерения +-1 градус хватит. Питание, заводимое на ТС, используют ли для этой цели общее питание с МК от стабилизатора типа 7805 или требуется отдельный прецизионный источник. Может быть уже есть готовые проект с кодом и схемами, буду признателен за любую помощь.
P.S. Плз, не надо писать про использование DS18(B/S)20 или замену ТС на него.
Вот, примерно такой расклад:
Спойлер
Код:
... ... ... ldi r16, 0b00100111 ; VCC as VREF, ADC left, вход ADC7 (PA7) out ADMUX, r16 ldi r16, 0b11000011 ; Enable ADС, Prescale = 1/8 out ADCSR, r16 adc_cnv_DT: sbic ADCSR, 6 rjmp adc_cnv_DT in r16, ADCL ; читаем код АЦП in r17, ADCH ;
ldi ZL, low(ADC_TEMP_3900) ; Характеристика датчика ldi ZH, high(ADC_TEMP_3900); add ZH, ZH add ZL, ZL brcc ZH_no_inc inc ZH ZH_no_inc: ldi r24, 170+20 ; Ищем диапазон характеристики датчика low_ADC: subi r24, 10 lpm r20,Z+ lpm r21,Z+ cp r21, r17 brlo low_ADC brne hig_ADC cp r20, r16 brlo low_ADC ; r17:r16 измеренное значение ADC hig_ADC: sbiw ZL, 4 lpm r18,Z+ ; наименьшая точка диапазона ADCmin lpm r19,Z+ ; ; sub r21,r19 sub r20,r18 brcc r21_nopDT dec r21 ; ширина диапазона ADC r21_nopDT: sub r17,r19 sub r16,r18 brcc r17_nopDT dec r17 ; смещение точки r17_nopDT: ; измеренного значения в диапазоне ADC ldi r22, 10 mul r24, r22 ; температура наим. точки диапазона ADC
Нужно усилить сигнал с датчика или использовать резисторный мост, или второе с первым. Усиление должно быть таким, чтобы напряжение изменялось от примерно 10 до 90% полной шкалы АЦП (обычно это напряжение ИОН*).
А можно с этого места поподробней, плз.
Как то так. Схемотехнически. В данном случае подразумевается, что в качестве ИОН используется питание. Тут есть правде небольшой камушек подводный. При такой схеме включения термосопротивления на нём будет рассеиваться около 6 мВт. Т.е. эту мощность он будет выделять в виде тепла.
Дико извиняюсь за свою необразованность, но не понимаю что конкретно операционник здесь усиливает? В той простенькой схеме, что я привел в 1 посте вроде все понятно, меняется сопротивление - меняется напряжение в точке, ацп замерил скок там и перевел в код. А в данной схеме идет токовый сигнал? Или как, вообще логику работы схемы не понял... =(
Прочтите внимательно второй пост этого топика. А если вкратце, то при заданном диапазоне температур незначительное изменение сопротивления, как следствие, маленький диапазон напряжений на входе АЦП. Надеюсь, мысль сами закончите
Здравствуйте. Biggy Если не отвлекаться от нарисованной в первом посте схемы и - поменять местами термосопротивление и опорный резистор номиналом 1000 Ом - предположить, что ТКС Pt1000 равен 0,00391, то температуру можно получить по выражению Т~256*{[CODE/(1023-CODE)]-1} Примеры Т0~256*{[511/(1023-512)]-1} =-0,5~0 T25~256*{[535/(1023-535)]-1} =24,65~25 T50~256*{[557/(1023-557)]-1} =49,99~50 T100~256*{[595/(1023-595)]-1} =99,88~100
В принципе, можно оставить и такое включение, но выражение будет иным. Можете вывести его самостоятельно.
Чтобы получился не показометр, а термометр, всё же нужно калибровать девайс. Тем более что ТКС разный в зависимости от температуры. Не сильно разный, но всё же. Плюс при изменении сопротивления меняется ток через резисторы, что добавляет нелинейности.
Карма: 6
Рейтинг сообщений: 61
Зарегистрирован: Вт сен 07, 2010 19:27:48 Сообщений: 927 Откуда: Ташкент
Рейтинг сообщения:0
При этом надо применять не какой попало, а качественный ОУ, т.е. с малым дрейфом и малым напряжением смещения. На эту тему есть неплохой аппноут от фирмы MICROCHIP.
Правильно, так и надо - понаставить качественныеОУ - мосты - прецизионные ИОН'ы. Вместо того, чтобы применить подходящий именно в этом случае "ратиометрический метод", при котором, в идеале, для получения параметра температуры нужен всего один точный резистор.
Для первой то схемы и проблема полностью описана в следующем посте. мной. Товарищ akl высказался, возможно не подумавши, и убежал. А вы тут типа сами думайте, что я хотел сказать.
А если вкратце, то при заданном диапазоне температур незначительное изменение сопротивления, как следствие, маленький диапазон напряжений на входе АЦП. Надеюсь, мысль сами закончите
Понял. Понравилась схема с резистивным мостом и усилителем, но возникли пару вопросов по ней. По сути мне подстроечные резисторы ведь не нужны, пока все плечи моста будут по 1k (при 0 градусов) тока не будет (при использование прецизионных резисторов) и на выходе будет 0. Вот тут первая трабла Какой собакой тут 2,5?! Причем если убрать R4 то тогда будет 0. Я всегда считал что ООС берет сигнал с выхода и гони его обратно...
Второй момент. Вот допустим мне 50 градусов сверху больше не будет точно. Там сопротивление ТС будет ну почти 1200 Ом. Тогда в плечах на R1 упадет 2,5В, а на ТС при (1,2k) упадет 2,72В, разница на входа ОУ будет 0,22В... и если убрать ООС, то и на выходе должно быть 0,22... ВТФ?!
И для тех кто хорошо разбирается в ОУ.... Как здесь рассчитать R4 под требуемый коэффициент (думаю нужен 20, потому что разность максимальная 0,22*20=4,4В как раз вроде прекрасно для АЦП)
Делитель R1R3 формирует как-бы виртуальный "ноль" для ОУ, вот поэтому и 2,5В при нулевом смещении. И вы забыли резистор (R4') между +ОУ и средней точкой правой пары резисторов. Тогда КУ = R4/R4' + 1. И этот R4' должен быть хотя бы 10к. А подстроечник я нарисовал, чтобы вывести немного в "плюс" точку 0 градусов, так как у нас операционник питается не 2-полярным питанием. Всё же не все операционники работают от нуля по выходу достаточно линейно. Поиграйтесь номиналами элементов пока не получится заданный диапазон напряжений на выходе. В данном случае удобнее Мультисимом, так как там можно крутить ручку подстроечника во время симуляции.
Не. стоп. Посмотрите на мою схему (насчёт R4'). А насчёт 2,5В - таки да, что-то тут не то. Наверное издержки симуляции. Может кто-то другой объяснит, где собака порылась. P.S.: всё таки правильно. И должно быть 2,5В. Вот интересная ссылка http://cxem.net/beginner/beginner96.php.
Последний раз редактировалось orinoko Пн июл 09, 2012 13:18:20, всего редактировалось 1 раз.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 27
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения