Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Тема закрыта

ТC PT1000 и АТМega

Чт июл 05, 2012 13:49:04

Доброго времени суток =)

Появилась задача прикрутить данный ТС к аврке, схему вроде набросал
Изображение

но сразу возник ряд вопросов. Нижний резистор, каков должен быть его номинал и его точность, если требуемый мне диапазон в 50 градусов и точность измерения +-1 градус хватит.
Питание, заводимое на ТС, используют ли для этой цели общее питание с МК от стабилизатора типа 7805 или требуется отдельный прецизионный источник.
Может быть уже есть готовые проект с кодом и схемами, буду признателен за любую помощь.

P.S. Плз, не надо писать про использование DS18(B/S)20 или замену ТС на него.

Re: ТC PT1000 и АТМega

Чт июл 05, 2012 14:52:02

Номинал нижнего резистора должен быть таким, чтобы в середине диапазона измерения в точке соединения резисторов было половина напряжения ИОН*. Резистор очень желательно с минимальным ТКС. Точность его неважна, так как придётся всё равно калибровать сие изделие и составить таблицу соответствия показаний АЦП и измеренной температуры. Таблица зашивается в программу и она корректирует показания. График изменения вроде должен быть нелинейный с такой схемой включения. Образцовый термометр должен иметь погрешность не хуже 0,2 градуса.
И естественно питание датчика должно быть стабильное, чем больше , тем лучше.

P.S.: Если кстати посмотреть график изменения сопротивления от температуры, то видно, что при изменении температуры от 0 до 50 град сопротивление меняется с 1000 до 1193.95 Ом, т.е. на ~20%. И таким образом, если нижний резистор у нас 1 кОм, то напряжение в средней точке изменится от 2,5В до 2,721 В, что весьма мало для обеспечения данной точности измерения. Нужно усилить сигнал с датчика или использовать резисторный мост, или второе с первым. Усиление должно быть таким, чтобы напряжение изменялось от примерно 10 до 90% полной шкалы АЦП (обычно это напряжение ИОН*).

Всё написанное является моим мнением. Я бы делал так.
(*ИОН - источник опорного напряжения)

Re: ТC PT1000 и АТМega

Чт июл 05, 2012 19:51:00

А никого не смущает то, что в этом МК АЦП всего 10-разряный?

Re: ТC PT1000 и АТМega

Чт июл 05, 2012 21:39:40

А не очень и смущает. Диапазон 50 градусов. Точность 1 градус. даже 8 разрядов хватит. 200 шагов - это дискретность 0,25 градуса. Если конечно усилить сигнал датчика до приемлемого.

Re: ТC PT1000 и АТМega

Пт июл 06, 2012 05:54:07

orinoko писал(а): Нужно усилить сигнал с датчика или использовать резисторный мост, или второе с первым. Усиление должно быть таким, чтобы напряжение изменялось от примерно 10 до 90% полной шкалы АЦП (обычно это напряжение ИОН*).

А можно с этого места поподробней, плз.

Re: ТC PT1000 и АТМega

Пт июл 06, 2012 08:48:25

Biggy писал(а):Доброго времени суток =)

Появилась задача прикрутить данный ТС к аврке, схему вроде набросал
но сразу возник ряд вопросов. Нижний резистор, каков должен быть его номинал и его точность, если требуемый мне диапазон в 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

            ldi     r23, 50           ;
            ldi     r24, $ff          ;
div_r2120:
            inc     r24               ;
            sub     r20, r23          ;
            brcc    div_r2120         ;
            subi    r21, 1            ;
            brcc    div_r2120         ;
            add     r20, r23          ;
            lsr     r23
            sub     r20, r23
            brcs    no_corect
            inc     r24               ;
no_corect:
            add     r17, r17          ;
            add     r16, r16
            brcc    r17_nopDT1
            inc     r17 
r17_nopDT1:
            ldi     r20, $ff          ;
div_r1716:
            inc     r20               ;
            sub     r16, r24          ;
            brcc    div_r1716         ;
            subi    r17, 1            ;
            brcc    div_r1716         ;
            add     r16, r24          ;
            lsr     r24
            sub     r16, r24
            brcs    no_corect1
            inc     r20               ;
no_corect1:
            sub     r0, r20           ;
            brcc    r1_nopDT          ;
            dec     r1                ;
r1_nopDT:
            mov     r16, r0
            mov     r17, r1
            subi    r16, $f4          ;
            brcc    r17_nopDT2        ;
            dec     r17               ;
r17_nopDT2:
            subi    r17, $01     ; На выходе r17:r16 температура в hex, шкала 0.1*C
            ...
            ...
            ...


ADC_TEMP_3900:   ; Material Constant = 3900
            .dw     $0544,$0640
            .dw     $0802,$0ac0,$0e4a,$1360,$1a40,$2440,$31c0,$4440
            .dw     $5c40,$7900,$9880,$b700,$d0c0,$e3c0,$efc0,$f6c8
            .dw     $4f80             ; АЦП при t=25*C

Re: ТC PT1000 и АТМega

Пт июл 06, 2012 11:39:30

Biggy писал(а):
orinoko писал(а): Нужно усилить сигнал с датчика или использовать резисторный мост, или второе с первым. Усиление должно быть таким, чтобы напряжение изменялось от примерно 10 до 90% полной шкалы АЦП (обычно это напряжение ИОН*).

А можно с этого места поподробней, плз.


Как то так. Схемотехнически. В данном случае подразумевается, что в качестве ИОН используется питание.
Тут есть правде небольшой камушек подводный. При такой схеме включения термосопротивления на нём будет рассеиваться около 6 мВт. Т.е. эту мощность он будет выделять в виде тепла.
Вложения
ТСамр.png
(34.89 KiB) Скачиваний: 992

Re: ТC PT1000 и АТМega

Пт июл 06, 2012 13:03:51

Дико извиняюсь за свою необразованность, но не понимаю что конкретно операционник здесь усиливает? В той простенькой схеме, что я привел в 1 посте вроде все понятно, меняется сопротивление - меняется напряжение в точке, ацп замерил скок там и перевел в код. А в данной схеме идет токовый сигнал? Или как, вообще логику работы схемы не понял... =(

Re: ТC PT1000 и АТМega

Пт июл 06, 2012 13:14:06

Прочтите внимательно второй пост этого топика. А если вкратце, то при заданном диапазоне температур незначительное изменение сопротивления, как следствие, маленький диапазон напряжений на входе АЦП. Надеюсь, мысль сами закончите

Re: ТC PT1000 и АТМega

Пт июл 06, 2012 13:43:12

Здравствуйте.
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

В принципе, можно оставить и такое включение, но выражение будет иным. Можете вывести его самостоятельно.

Re: ТC PT1000 и АТМega

Пт июл 06, 2012 18:36:52

Чтобы получился не показометр, а термометр, всё же нужно калибровать девайс. Тем более что ТКС разный в зависимости от температуры. Не сильно разный, но всё же. Плюс при изменении сопротивления меняется ток через резисторы, что добавляет нелинейности.

Re: ТC PT1000 и АТМega

Пт июл 06, 2012 18:52:07

При этом надо применять не какой попало, а качественный ОУ, т.е. с малым дрейфом и малым
напряжением смещения. На эту тему есть неплохой аппноут от фирмы MICROCHIP.

Re: ТC PT1000 и АТМega

Сб июл 07, 2012 07:23:23

Правильно, так и надо
- понаставить качественныеОУ
- мосты
- прецизионные ИОН'ы.
Вместо того, чтобы применить подходящий именно в этом случае "ратиометрический метод", при котором, в идеале, для получения параметра температуры нужен всего один точный резистор.

Re: ТC PT1000 и АТМega

Сб июл 07, 2012 08:24:10

Если не сложно, нарисуйте примерную схему подключения?

Re: ТC PT1000 и АТМega

Вс июл 08, 2012 19:34:12

У меня такое чувство. что имелась ввиду 1 самая простая схемка, там как раз нужен точный резюк.

Re: ТC PT1000 и АТМega

Вс июл 08, 2012 20:53:53

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

Re: ТC PT1000 и АТМega

Пн июл 09, 2012 07:15:59

orinoko писал(а): А если вкратце, то при заданном диапазоне температур незначительное изменение сопротивления, как следствие, маленький диапазон напряжений на входе АЦП. Надеюсь, мысль сами закончите

Понял. Понравилась схема с резистивным мостом и усилителем, но возникли пару вопросов по ней. По сути мне подстроечные резисторы ведь не нужны, пока все плечи моста будут по 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В как раз вроде прекрасно для АЦП)

Re: ТC PT1000 и АТМega

Пн июл 09, 2012 08:54:49

Делитель R1R3 формирует как-бы виртуальный "ноль" для ОУ, вот поэтому и 2,5В при нулевом смещении. И вы забыли резистор (R4') между +ОУ и средней точкой правой пары резисторов. Тогда КУ = R4/R4' + 1. И этот R4' должен быть хотя бы 10к. А подстроечник я нарисовал, чтобы вывести немного в "плюс" точку 0 градусов, так как у нас операционник питается не 2-полярным питанием. Всё же не все операционники работают от нуля по выходу достаточно линейно. Поиграйтесь номиналами элементов пока не получится заданный диапазон напряжений на выходе. В данном случае удобнее Мультисимом, так как там можно крутить ручку подстроечника во время симуляции.

Re: ТC PT1000 и АТМega

Пн июл 09, 2012 11:56:55

orinoko писал(а):Делитель R1R3 формирует как-бы виртуальный "ноль" для ОУ, вот поэтому и 2,5В при нулевом смещении..

Как это "виртуальный 0"? В точке соединения правого плеча и -ОУ там же 2,5В, как и в лемом плече. Нипонял сей момент. :?

orinoko писал(а):И вы забыли резистор (R4') между +ОУ и средней точкой правой пары резисторов..

Так?
Изображение
КУ=190/10+1=20, должно быть 4,4В, а там это магическое -14В, это что глюк шпротеуса или я чего то не понимаю, почему без ООС -14В кажет?

Re: ТC PT1000 и АТМega

Пн июл 09, 2012 12:14:35

Не. стоп. Посмотрите на мою схему (насчёт R4').
А насчёт 2,5В - таки да, что-то тут не то. Наверное издержки симуляции. Может кто-то другой объяснит, где собака порылась.
P.S.: всё таки правильно. И должно быть 2,5В. Вот интересная ссылка http://cxem.net/beginner/beginner96.php.
Последний раз редактировалось orinoko Пн июл 09, 2012 13:18:20, всего редактировалось 1 раз.
Тема закрыта