Микроконтролери и електроника
http://mcu-bg.com/mcu_site/

Температурен датчик PT1000 код
http://mcu-bg.com/mcu_site/viewtopic.php?f=3&t=11684
Страница 1 от 3

Автор:  nikolovs [ Пон Сеп 02, 2013 5:31 pm ]
Заглавие:  Температурен датчик PT1000 код

Здравейте на всички :) ! Да му се намира на някои примерен код за реализация с този датчик. В едни източници го реализират с операционни усилватели, а в други чрез резистор към захранване. Кой вариант е най удачен ? Насочил съм се към по опростения вариант. :)

Автор:  Бай Ставри [ Пон Сеп 02, 2013 6:07 pm ]
Заглавие:  Re: Температурен датчик PT1000 код

Изображение

ПО опростен вариант от този няма!!!

Автор:  ToHu [ Вто Сеп 03, 2013 4:49 am ]
Заглавие:  Re: Температурен датчик PT1000 код

Само не разбрах код ли ти трябва или схема :)

Автор:  nikolovs [ Вто Сеп 03, 2013 10:38 am ]
Заглавие:  Re: Температурен датчик PT1000 код

И двете трябват :D

Автор:  Бай Ставри [ Вто Сеп 03, 2013 11:43 am ]
Заглавие:  Re: Температурен датчик PT1000 код

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

Автор:  nikolovs [ Вто Сеп 03, 2013 11:54 am ]
Заглавие:  Re: Температурен датчик PT1000 код

Примерно по-горе показаната схема как да преобразувам напрежението чрез пик микроконтролер

Автор:  Бай Ставри [ Вто Сеп 03, 2013 12:01 pm ]
Заглавие:  Re: Температурен датчик PT1000 код

закачаш го на АЦП-то и мериш....след това директно преобразуваш в квото искаш....ако търсиш по-голяма точност и линейност....првиш темп таблица и по нея....

unsigned int temp_res;

void main() {
ANSEL = 0x04; // Configure AN2 pin as analog
ANSELH = 0; // Configure other AN pins as digital I/O
C1ON_bit = 0; // Disable comparators
C2ON_bit = 0;

TRISA = 0xFF; // PORTA is input
TRISC = 0; // PORTC is output
TRISB = 0; // PORTB is output

do {
temp_res = ADC_Read(2); // Get 10-bit results of AD conversion
PORTB = temp_res; // Send lower 8 bits to PORTB
PORTC = temp_res >> 8; // Send 2 most significant bits to RC1, RC0
} while(1);
}


-----------------------------
http://electronicseverywhere.blogspot.com/2010/10/pic16f887877-programming-in-c-tutorial.html

Автор:  nikolovs [ Сря Сеп 04, 2013 10:28 pm ]
Заглавие:  Re: Температурен датчик PT1000 код

Изходното напрежение на по горната схема при 25 градуса стайна ми показва 1.02 в някъде на изхода на операционния. Тази схема с какъв коефициент на усилване е. Измерих напрежението на pt1000 и там ми отчита 0.49 - 0.50 В. Това дава 2x коефициент на усилване. Но по мой сметки 10к/1к= 10 пъти! Къде бъркам ? Мисля да увелича коефициента на усилване, за да елиминирам голямата грешка от измерването, мисля да слагам делител на напрежение след операционния, както и програмно си го деля за да намеря съпротивлението на датчика по формулата.

Автор:  ToHu [ Чет Сеп 05, 2013 1:16 am ]
Заглавие:  Re: Температурен датчик PT1000 код

Доста има да понаучиш за аналоговите схеми, http://en.wikipedia.org/wiki/Wheatstone_bridge , може би ще ти се поизясни, но само тов ане стига де, и опамп трябва да поразбереш как работят.

Автор:  nikolovs [ Чет Сеп 05, 2013 9:37 am ]
Заглавие:  Re: Температурен датчик PT1000 код

Е да то без четене не става тая работа, но си иска време. Проблема е че като не се ползва се забравя. Не е сложна материята но си иска да се погледне. Мост на Уитстон учихме още по електрически измервания. Проблема е че търся бърз отговор и това провокира всичко това.

Автор:  sparkybg [ Чет Сеп 05, 2013 10:47 am ]
Заглавие:  Re: Температурен датчик PT1000 код

Източник на ток, да речем 1mA. Към него като вържеш PT1000, при температура нула градуса ще дава 1 волт напрежение. При 100 градуса - 1.385 волта и т.н. по таблицата. Източника на ток се прави например с операционник, дребен мосфет, 2-3 резистора и някакво референсно напрежение, ако искаш голяма точност. Иначе може и с прост делител от захранващото напрежение.

От там нататък тоя сигнал го прави каквото искаш - може да го приведеш към нула, усилваш, и каквото ти друго душа иска. Въпрос на няколко резистора и 1-2 операционника. Няма нищо екзотично или нестандартно в цялата работа. Все неща, които човъркащ се с аналоговщини ползва всеки ден.

ПП: Схемата горе няма да ти даде линеен сигнал спрямо температурата. Ще трябва да коригираш прочетемното от ADC-то после. Схема с източник на ток дава линеен изход в зависимост от съпротивлението на датчика. "По-сложна" е, но пък сухранява това, с което платинените датчици са най-ценни - линейността им.

Автор:  nikolovs [ Чет Сеп 05, 2013 11:35 am ]
Заглавие:  Re: Температурен датчик PT1000 код

Да колега, така е! Забелязах че тя не е линейна! Пробвах прост делител 10к към пт1000 и се получава :), но мери температурата неточно. Примерно от 19.6 градуса скача на 22 и така. Все пак процесора е със 10 битово АЦП.
Замислям се да го усиля този сигнал със операционен примерно коеф. на усилване 5 и после програмно да го деля и смятам ?

Автор:  sparkybg [ Чет Сеп 05, 2013 11:55 am ]
Заглавие:  Re: Температурен датчик PT1000 код

Ааа скокове няма, освен ако не са от ADC-то. Нещо си се объркал. Просто това, което измериш престава да е линейно, ами се изкривява, което после трябва да компенсираш софтуерно. С източник на ток си остава линейно - аз затова си го тача тоя метод. Просто не винаги е нужно, ама това зависи от целите дето си си поставил.

Трябва така да си направиш аналоговщината така че диапазона температури, който мериш, да напълва ADC-то, тоест например ако мериш 0-100 градуса, това да ти отговаря на показание 0-1000 на ADC-то. Ползват се и rail-to-rail операционници ако ползваш само едно захранване за всичко. На микрочип има подходящи и не-скъпи за целта. С подходящите чаркове се докарва доста прилична и температурно стабилна аналоговщина за човешки пари и ограничението ти става самото ADC в PIC-льото, което принципно не е върха на сладоледа, но пък хубавите са скъпи и капризни и вече става сложно.

Имай предвид че и ADC-то и операционниците в двата си края са най-неточни. Тоест, да речем първите и последните 8 стойности на 10 битово АДЦ (0-8 и 1015-1023) ще са с доста по-голяма грешка от стойностите около средата. Отделно има и други нелинейности и особености при конверсията, които понякога имат значение в зависимост от поставените цели.

Автор:  nikolovs [ Чет Сеп 05, 2013 12:29 pm ]
Заглавие:  Re: Температурен датчик PT1000 код

Да така си е, понеже ацп не мери с голяма точност и когато се колебае в mv градусите се изменят драстично. Пуснах за опорно напрежение 10.75 в използвано от филтровия кондензатор и резултата се подобри в известна граница. Все пак увеличавам изходното напрежение два пъти! Мисля да го захраня със по високо за момента, но това не е окончателно решение ! Трябва да си припомня малко тази аналогова схемотехника и подбера подходяща схема. Тук без Оп амп няма как да се мине. Но засега мисля че по високо напрежение примерно изходното при 1000 ома т.е 0 градуса да бъде на входа на пика 3 в ще е добър резултат. Вие как смятате?

Автор:  Ки4о [ Чет Сеп 05, 2013 12:55 pm ]
Заглавие:  Re: Температурен датчик PT1000 код

@sparkybg, моля те насочи ме към тази литература където пише, че нелинеен сензор като го включиш към генератор на ток и измерваш пада на напрежение върху него то се получава линейна зависимост входна величина/пад на напрежение. Защото мен са ме учили на други методи за линеаризация на харакатеристики и искам да си попълня този фатален пропуск в знанията си.

@nikolovs, изтегли си от нета AN687 на Микрочип или Analog Applications Journal на TI брой 4Q 2011 и виж как се прави. Компенсацията може да я направиш софтуерно или с линейно-отсечкова апроксимация. Въпрос на вкус е кое ще си избереш. И си намери хубави прецизни операционни усилватели, макар че и с OP07 може да се реши тази задачка ;)

Страница 1 от 3 Часовете са според зоната UTC + 2 часа [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/