В тази статия ще обсъдим различните видове температурни сензори и как те могат да се използват във всеки конкретен случай. Температурата е физически параметър, който се измерва в градуси. Това е съществена част от всеки процес на измерване. Областите, изискващи точни измервания на температурата, включват медицина, биологични изследвания, електроника, изследвания на материали и топлинни характеристики на електрическите продукти. Устройство, използвано за измерване на количеството топлинна енергия, което ни позволява да откриваме физически промени в температурата, е известно като температурен сензор. Те са цифрови и аналогови.
Основни видове сензори
Като цяло има два метода за получаване на данни:
1. Контакт... Контактните сензори за температура са във физически контакт с предмет или вещество. Те могат да се използват за измерване на температурата на твърди вещества, течности или газове.
2. Безконтактни... Безконтактните температурни сензори откриват температурата, като пресичат част от инфрачервената енергия, излъчвана от обект или вещество, и усещат нейната интензивност. Те могат да се използват само за измерване на температура в твърди вещества и течности. Те не могат да измерват температурата на газовете поради тяхната безцветност (прозрачност).
Видове температурни сензори
Има много различни видове температурни сензори. От просто включване / изключване на управлението на термостатично устройство до сложни системи за управление на водоснабдяването, с функция за нагряването му, използвани в процесите на отглеждане на растения. Двата основни типа сензори, контактни и безконтактни, се подразделят допълнително на резистивни, напреженови и електромеханични сензори. Трите най-често използвани температурни сензора са:
- Термистори
- Термодвойки за съпротивление
- Термодвойка
Тези температурни сензори се различават един от друг по отношение на оперативните параметри.
ТЕХНОЛОГИИ ЗА РАЗВИТИЕ НА ОБОРУДВАНЕТО
Урок за свързване на интегрални температурни сензори с аналогов изход към контролера Arduino. Представен е работен проект на термометъра и е описана програмираната обработка на информация от температурни сензори.
Предишен урок Списък на уроците Следващ урок
С тази публикация започвам поредица от уроци за измерване на температурата в системата Arduino. Общо са планирани 4 урока по различни видове температурни сензори:
- интегрирани температурни сензори с аналогов изход - LM35, TMP35, TMP36, TMP37;
- силициеви температурни сензори от серията KTY81;
- интегрирани сензори с 1-Wire цифров интерфейс - DS18B20;
- термодвойки (термоелектрически преобразуватели).
Във всеки урок ще ви кажа:
- накратко за принципа на работа и параметрите на температурните сензори;
- върху схемите за свързване на температурни сензори към микроконтролери;
- Ще ви разкажа за софтуерната обработка на информация от температурни сензори;
- Ще дам схема на термометър, базиран на платката Arduino и софтуер за нея.
Всеки урок ще разгледа проект за термометър, базиран на работещ контролер Arduino:
- в самостоятелен режим с извеждане на информация на LED индикатора;
- в режим на комуникация с компютър, който позволява не само показване на текущата температура, но и регистриране на температурни промени с извеждане на данни в графична форма.
Вградени температурни сензори с аналогов изход на напрежение.
С цялото разнообразие на тези устройства, са им присъщи следните общи качества:
- изходното напрежение е линейно пропорционално на температурата;
- сензорите имат калибриран мащабен коефициент за зависимост на изходното напрежение от температурата; не се изисква допълнително калибриране.
Най-просто казано, за да се измери температурата с помощта на сензори от този тип, е необходимо да се измери напрежението на изхода и чрез мащабен фактор да се преобразува в температура.
Има много термични сензори, които попадат в тази категория. Бих подчертал следните видове температурни сензори:
- LM35;
- TMP35;
- TMP36;
- TMP37.
Това са най-често срещаните, доста точни, евтини устройства. Написал съм статии за тези сензори. Можете да разгледате връзките LM35 и TMP35, TMP36, TMP37. Всички параметри, технически характеристики на устройствата, типични схеми за свързване са описани подробно там.
Свързване на температурни сензори към микроконтролер.
Най-удобно е да се използват сензори в пакет TO-92.
Схемата за свързване на устройства в пакет TO-92 изглежда така.
Всички изброени сензори ще работят по тази схема. Информация за други схеми за включване на температурни сензори може да бъде намерена на връзките LM35 и TMP35, TMP36, TMP37.
Основни параметри, сензорни разлики.
Основните разлики между изброените сензори един от друг са, че:
- TMP36 е единственият от изброените температурни сензори, способен да измерва отрицателни температури.
- Сензорите имат различни диапазони на измерване на температурата.
Говорим за температурни сензори, свързани съгласно горната схема. Например, има LM35 превключваща верига, която ви позволява да измервате отрицателните температури. Но е по-трудно за изпълнение и изисква допълнителна мощност. По-добре е да използвате TMP36 за отрицателни температури.
Обобщих основните параметри на температурните сензори LM35, TMP35, TMP36, TMP37 за тази верига в таблица.
Тип | Обхват на измерване на температурата, ° C | Изместване на изходното напрежение, mV | Фактор на мащаба, mV / ° C | Изходно напрежение при +25 ° C, mV |
LM35, LM35A | 0 … + 150 | 0 | 10 | 250 |
LM35C, LM35CA | 0 … + 110 | 0 | 10 | 250 |
LM35D | 0 … + 100 | 0 | 10 | 250 |
TMP35 | + 10 … + 125 | 0 | 10 | 250 |
TMP36 | — 40 … + 125 | 500 | 10 | 750 |
TMP37 | + 5 … + 100 | 0 | 20 | 500 |
За всички температурни сензори изходното напрежение може да бъде само положително, но поради отклонението, TMP36 е в състояние да измерва отрицателните температури. Нулевото напрежение на изхода му съответства на температура от -40 ° C, а при изходно напрежение 0,5 V температурата ще бъде 0 ° C. Смятам, че TMP36 е най-удобният за употреба аналогов I / C температурен сензор и ги използвам доста широко.
Проект на Arduino за термометър на температурни сензори LM35, TMP35, TMP36, TMP37.
Ще разработим термометър, който:
- В самостоятелен режим покажете стойността на температурата на четирицифрен седемсегментен светодиоден индикатор.
- Изпратете текущата стойност на температурата на компютъра. Можете да го наблюдавате с помощта на монитора за сериен порт на Arduino IDE.
- С помощта на специална програма от най-високо ниво (аз я написах): покажете измерената температура на монитора на компютъра.
- регистрирайте температурните промени и ги покажете графично.
Схема на термометър, базирана на платка Arduino UNO R3.
Необходимо е да се свържете с платката Arduino:
- четирицифрен седемсегментен LED индикатор в мултиплексиран режим;
- сензор за температура TMP36 или подобен.
Избрах LED индикатора тип GNQ-3641BUE-21. Той е ярък, размерът е оптимален за тази задача. Свързахме го с дъската Arduino в урок 20. В този урок можете да видите документацията за индикатора, схеми за свързване. Има и описание на библиотеката за управление на седемсегментни светодиодни индикатори.
Схемата на термометъра, базирана на платката Arduino UNO R3, изглежда така.
LED индикаторът е свързан към контролера в мултиплексиран режим (урок 19, урок 20).
Температурният датчик е свързан към аналогов вход A0. Кондензатор C1 - блокиращо захранване на сензора, R1 и C2 - най-простият аналогов филтър. Ако термодатчикът е инсталиран близо до микроконтролера, тогава филтърът може да бъде изключен от веригата.
TMP35, TMP36, TMP37 позволяват работа на товар с капацитет до 10 nF, а LM35 - не повече от 50 pF.Следователно, ако сензорът е свързан към контролера с дълга линия със значителен капацитет, тогава резисторът R1 трябва да бъде инсталиран от страната на сензора, а кондензаторът C2 от страната на контролера. Блокиращият кондензатор C1 винаги е инсталиран до температурния сензор.
Във всеки случай, цифровото филтриране на сигнала от сензора ще бъде приложено в програмата на контролера.
За да го тествам, сглобих устройството на макет.
Изчисляване на температурата.
Принципът е прост. За да изчислите температурата на сензорите LM35, TMP35, TMP37, трябва:
- Прочетете ADC кода.
- Изчислете напрежението на изхода на сензора като Uout = N * Uion / 1024, където
- Uout - напрежение на изхода на температурния сензор;
- N - ADC код;
- Uion - напрежение на референтния източник на напрежение (за нашата верига 5 V);
- 1024 - максималният брой ADC градации (10 бита).
Формулите за изчисляване на температурата за различни сензори с референтно напрежение 5 V изглеждат така.
Тип сензор | Формулата за изчисляване на температурата T (° C), с референтно напрежение 5 V, от ADC кода - N. |
LM35, TMP35 | Т = (N * 5/1024) / 0,01 |
TMP36 | Т = (N * 5/1024 - 0,5) / 0,01 |
TMP37 | Т = (N * 5/1024) / 0,02 |
Ако се използва цифрово филтриране, тогава е необходимо да се вземе предвид и коефициентът за него. Също така трябва да разберете, че формулите са написани в лесна за разбиране форма. В реална програма е по-добре да изчислите константната част на формулата предварително и да я използвате като коефициент. Това е описано подробно в урок 13. Има и информация за четене и цифрово филтриране на аналогов сигнал.
Програма за термометър Arduino.
Програмата трябва да изпълнява следните функции:
- прочетете стойностите на ADC кодовете;
- осреднете ги (цифрово филтриране), за да увеличите шумоустойчивостта;
- изчислете температурата от ADC кода;
- покажете стойността на температурата на четирицифрен светодиоден индикатор във формат: знак;
- десетки;
- единици;
- десети от ° C.
Разработката на програмата се основава на обичайния принцип:
- реализира се прекъсване на таймера с период от 2 ms;
- в него се случва паралелен процес: регенериране на LED индикатора;
- четене на ADC кодове и осредняване на стойностите им;
- софтуерни таймери.
- синхронизация от програмния таймер 1 сек;
Ако прочетете предишните уроци, тогава всичко ще е ясно.
Библиотеките MsTimer2.h и Led4Digits.h трябва да бъдат свързани. Можете да изтеглите библиотеките от Урок 10 и Урок 20. Има и подробно описание и примери. Вижте урок 13 за измерване на напрежението на аналоговите входове.
Веднага ще дам скица на програмата.
// термометър, сензори LM35, TMP35, TMP36, TMP37 #include #include
#define MEASURE_PERIOD 500 // време за измерване, * 2 ms #define ADC_RESOLUTION 4.8828125 // ADC резолюция, mV (5000 mV / 1024) #define OFFSET 500. // компенсиране на изходното напрежение, mV (за TMP36) #define SCALE_FACTOR 10. / / коефициент на мащаба, mV (за TMP36)
int timeCount; // брояч на времето за измерване дълга сумаA0; // променлива за сумиране на ADC кодове long avarageTemp; // средна стойност на температурата (сума от ADC кодове, средна стойност * 500) boolean flagTempReady; // знак за готовност за измерване на температурата температура на поплавъка; // изчислена температура, ° C
// индикатор тип 1; резултати от категории 5,4,3,2; сегментни щифтове 6,7,8,9,10,11,12,13 Led4Digits disp (1, 5,4,3,2, 6,7,8,9,10,11,12,13);
void setup () {MsTimer2 :: set (2, timerInterrupt); // задаваме периода на прекъсване на таймера на 2 ms MsTimer2 :: start (); // разрешаване на прекъсване на таймера Serial.begin (9600); // инициализиране на порта, скорост 9600}
цикъл void () {
if (flagTempReady == true) {flagTempReady = false; // данните са готови
// изчисляване на температурата на температурата = (avarageTemp * ADC_RESOLUTION / 500. - OFFSET) / SCALE_FACTOR;
// извеждане на температурата на индикатора if (температура> = 0) {// положителна температура disp.print ((int) (температура * 10.), 4, 1); } else {// отрицателна температура disp.digit [3] = 0x40; // показва се минус disp.print ((int) (температура * -1 * 10.), 3, 1); } disp.digit [1] | = 0x80; // осветява точката на втората цифра // прехвърля температурата на компютъра Serial.println (температура); }}
// ————————————— манипулатор на прекъсвания 2 ms void timerInterrupt () {disp.regen (); // регенериране на LED индикатора
// измерване на средната температура timeCount ++; // +1 брояч на усреднени извадки sumA0 + = analogRead (A0); // сумиране на кодовете A0 на ADC канала
// проверяваме броя на осредняващите извадки, ако (timeCount> = MEASURE_PERIOD) {timeCount = 0; avarageTemp = sumA0; // претоварване на средната стойност sumA0 = 0; flagTempReady = вярно; // подпишем, че резултатът е готов}}
Можете да изтеглите скицата от тази връзка:
Регистрирайте се и платете. Само 40 рубли. на месец за достъп до всички ресурси на сайта!
Зареждане, проверка. Стартираме монитора на серийния порт и проверяваме данните на компютъра.
Програмата е предназначена за сензори TMP36, но е лесна за адаптиране към други видове сензори. За да направите това, достатъчно е да промените стойностите на коефициента на мащаба и отместването, посочени в началото на програмата с инструкциите #define.
Тип сензор | Фактор и пристрастия |
LM35, TMP35 | #define OFFSET 0. #define SCALE_FACTOR 10. |
TMP36 | #define OFFSET 500. #define SCALE_FACTOR 10. |
TMP37 | #define OFFSET 0. #define SCALE_FACTOR 20. |
Разделителна способност и точност на термометъра.
Разделителната способност на ADC в нашата верига е 5 V / 1024 = 4,88 mV.
Разделителна способност на термометъра:
- при мащабен фактор 10 mV / ° C (LM35, TMP35, TMP36 сензори) е по-малко от 0,5 ° C;
- при коефициент на мащабиране 20 mV / ° C (сонда TMP37) по-малко от 0,25 ° C.
Съвсем прилични параметри.
Що се отнася до грешката при измерването, тя е малко по-лоша.
Грешката при измерване на самите сензори е:
- не повече от 0,5 ° C за LM35;
- не повече от 1 ° C за TMP35, TMP36, TMP37.
Грешка в измерването на ADC на платката Arduino.
В нашето устройство използвахме 5 V еталонно напрежение, т.е. захранващо напрежение. В платките Arduino UNO R3, напрежението 5 V се формира на линейния регулатор NCP1117ST50. Спецификации в PDF формат можете да видите на тази връзка NCP117.pdf. Стабилността на изходното напрежение на тази микросхема е доста висока - 1%.
Тези. общата грешка на измерването на термометъра е не повече от 2%.
Тя може да бъде леко увеличена чрез измерване на напрежението от 5 V на платката и настройка на разделителната способност на ADC в параметъра не на 5 V, а на по-точна стойност. На моята платка напрежението се оказа 5,01 V. В моята програма трябва да поправите:
#define ADC_RESOLUTION 4.892578 // ADC резолюция, mV (5010 mV / 1024)
Използване на външно референтно напрежение за платката Arduino.
Но има радикален начин за подобряване както на точността на измерване на ADC, така и на разделителната способност. Това е използването на външно референтно напрежение.
Най-често срещаният източник на стабилно напрежение е LM431, TL431 и др. Ще напиша статия за тази микросхема. Засега ще дам линк към информацията - LM431.pdf.
Ще дам превключващата верига LM431 като референтно напрежение 2,5 V за платката Arduino.
В програмата трябва да промените реда, който определя разделителната способност на ADC:
#define ADC_RESOLUTION 2.44140625 // ADC резолюция, mV (2500 mV / 1024)
И в setup () свържете външна референтна стойност на напрежението:
analogReference (EXTERNAL); // външно референтно напрежение
В резултат на това разделителната способност ще намалее 2 пъти, а стабилността ще намалее с порядък. Все пак, за да се подобри точността, е необходимо да се измери реалното напрежение на LM431 с волтметър и да се коригира в програмата.
Подобна модификация на термометъра е абсолютно необходима, ако устройството се захранва от нестабилизиран източник на захранване с напрежение близо до 5 V, например от галванични батерии или акумулаторна батерия. В този случай не е необходимо да се говори за стабилност на захранването и без стабилизиране на референтния източник на напрежение измерването ще бъде много условно.
Програма за термометър от най-високо ниво.
Разглеждането на работещите редове с числа в прозореца на монитора на Arduino IDE бързо става скучно. Просто искам да видя стойността на температурата. Освен това, за практическото използване на термометъра с компютър, трябва да се инсталира софтуерът Arduino IDE. Не всички компютри го имат. Също така, хората често се интересуват от температурните промени, процеса на отопление или охлаждане с течение на времето. Бих искал да мога да регистрирам температурни промени и да ги показвам графично.
За целта написах проста програма от най-високо ниво, която:
- показва текущата стойност на температурата;
- регистрира температурната промяна с дискретност от 1 сек;
- показва информация за температурните промени в графичен вид.
Тази програма може да се използва както с термометъра от тази статия, така и за термометрите на следващите уроци с други видове сензори.
Програмата работи под операционните системи Windows 95, 98, XP, 7. Останалите не съм пробвал.
Инсталиране на приложението.
- Изтеглете архивния файл Thermometer.zip:
Регистрирайте се и платете. Само 40 рубли. на месец за достъп до всички ресурси на сайта!
- Разархивирайте го в работната си папка. Можете да оставите папката от архива на термометъра.
Приложението се състои от два файла:
- Thermometer.exe - изпълним файл;
- Conf.txt - конфигурационен файл.
Няма нужда да инсталирате програмата, просто стартирайте файла Thermometer.exe.
Свързване на термометъра към компютъра.
Обменът на данни между компютъра и контролера се осъществява чрез COM порта. Портът може да бъде реален или виртуален.
Най-удобният начин е да се използва виртуалният порт, който се създава от драйвера на платката Arduino. Портът се появява, когато платката е свързана към компютъра. Не е нужно да стартирате IDE на Arduino. Номерът на порта може да се види: Контролен панел -> Система -> Диспечер на устройства -> Портове (COM и LPT)
Имам COM5.
Можете да свържете компютъра си чрез някакъв USB-UART мост. Използвам PL2303 USB UART Board модули. Как да се свържете е написано в статията за програмата Монитор на хладилника на елемента Пелтие.
Ако компютърът има стандартен COM порт (интерфейс RS232), тогава не е необходимо да инсталирате драйвери. За да свържете контролера в този случай, е необходимо да използвате преобразувател на ниво RS232 - TTL, микросхеми ADM232, SP232, MAX232 и други подобни.
Има много опции за свързване. Основното е, че на компютъра се формира COM порт, виртуален или реален.
Първо стартиране на програмата.
Преди да стартирате програмата, на компютъра трябва вече да е създаден виртуален COM порт. И тъй като портът се създава при свързване към конектора на платката Arduino, това означава, че първо трябва да свържете платката към компютъра.
След това стартирайте програмата Thermometer.exe. Някой COM порт е записан в конфигурационния файл на програмата. Програмата ще се опита да го отвори при стартиране. Ако не работи, ще се покаже съобщение с номера на грешния порт.
Щракнете върху OK и ще се отвори прозорецът на програмата. Ще има тирета вместо температура. Няма данни.
Изберете режима за избор на порт от менюто (отгоре). Ще се отвори прозорец за избор.
Задайте номера на порта за вашата платка. Всяко пристанище има написано състояние. Естествено, трябва да избирате от пристанища с надпис „безплатно“.
Затваряне на прозореца. Избраният COM порт ще бъде записан в конфигурационния файл и винаги ще бъде извикан при стартиране на програмата. Не е необходимо да задавате порта всеки път, когато стартирате програмата.
Ако платката е включена, програмата се зарежда, всичко работи правилно, след това веднъж в секунда пред стойността на температурата трябва да мига светодиод с кръг. Мига, когато пристигнат нови данни.
Секретар.
В програмата има рекордер, който ви позволява да наблюдавате динамиката на температурните промени. Рекордерът се включва автоматично, когато програмата стартира. Той записва температурни стойности на стъпки от 1 секунда. Максималното време за регистрация е 30 000 секунди или 8,3 часа.
За да видите резултатите от записа, натиснете раздела на менюто "Recorder".
Именно аз загрях сензора с поялник.
Можете да увеличите фрагмента, като изберете правоъгълна област с натиснат десен бутон на мишката. Областта трябва да бъде избрана отляво надясно, отгоре надолу.
Избирането на област с мишката отляво надясно, отдолу нагоре ще върне показването на цялата графична информация. Просто е.
Тази програма ще бъде използвана в следващите три урока с други видове проекти за измерване на температура.
В следващия урок ще измерваме температурата с помощта на силиконови сензори от серия KTY81.
Предишен урок Списък на уроците Следващ урок
Подкрепете проекта
2
Автор на публикацията
офлайн 5 дни
Едуард
139
Коментари: 1584 Публикации: 161 Регистриране: 13-12-2015
Термистор
Термисторът е чувствителен резистор, който променя физическото си съпротивление с температура. Обикновено термисторите са направени от керамичен полупроводников материал като кобалт, манган или никелов оксид и са покрити със стъкло. Те са малки плоски запечатани дискове, които реагират относително бързо на всякакви температурни промени.
Поради полупроводниковите свойства на материала, термисторите имат отрицателен температурен коефициент (NTC), т.е. съпротивлението намалява с повишаване на температурата. Съществуват обаче и PTC термистори, чието съпротивление се увеличава с повишаване на температурата.
График на термистора
Предимства на термисторите
- Висока скорост на реакция на температурни промени, точност.
- Ниска цена.
- По-високо съпротивление в диапазона от 2000 до 10 000 ома.
- Много по-висока чувствителност (~ 200 ома / ° C) в ограничен температурен диапазон до 300 ° C.
Температурни зависимости на съпротивлението
Зависимостта на съпротивлението от температурата се изразява чрез следното уравнение:
Където A, B, C - това са константи (осигурени от условията за изчисление), R - съпротивление в ома, T - температура в Келвин. Можете лесно да изчислите промяната в температурата от промяна в съпротивлението или обратно.
Как да използвам термистор?
Термисторите са оценени като резистивни при стайна температура (25 ° C). Термисторът е пасивно резистивно устройство, така че изисква производството на мониторинг на текущото изходно напрежение. Като правило те са свързани последователно с подходящи стабилизатори, образуващи мрежов делител на напрежението.
Пример: Помислете за термистор със стойност на съпротивление 2.2K при 25 ° C и 50 ома при 80 ° C. Термисторът е свързан последователно с резистор 1 kΩ чрез 5 V захранване.
Следователно неговото изходно напрежение може да се изчисли, както следва:
При 25 ° C, RNTC = 2200 ома;
При 80 ° C, RNTC = 50 ома;
Важно е обаче да се отбележи, че при стайна температура стандартните стойности на съпротивлението са различни за различните термистори, тъй като те са нелинейни. Термисторът има експоненциално изменение на температурата и следователно бета константа, която се използва за изчисляване на неговото съпротивление за дадена температура. Изходното напрежение и температурата на резистора са линейно свързани.
Свързване към платка Arduino
Както бе споменато по-горе, температурният сензор DS18B20 може да бъде свързан към платката Arduino по два начина (директен и паразитен). В допълнение, един или цяла група сензори могат да бъдат окачени на един вход Arduino. Нека започнем с най-простия вариант. Фигурата по-долу показва схемата за директно свързване на един датчик към Arduino Nano.
Фигура №3 - схема на директно свързване на единичен сензор
Тук всичко е доста просто. Захранваме DS18B20 от самата платка Arduino, захранвайки 5V към Vdd щифта на сензора. По същия начин свързваме щифтовете GND помежду си. Свържете средния терминал на термосензора, например, с D2 щифта на нашия Arduino Nano. Можете да свържете изхода за данни (DQ) с почти всеки вход на Arduino, като предварително сте записали номера му в скицата. Единствената и най-важна точка, на която трябва да се обърне внимание, е наличието на 4.7k резистор между плюса на захранването и линията за данни на температурния сензор. Този резистор служи за изтегляне на линията за данни до логическа единица и липсата му ще доведе до неизправност в алгоритъма за обмен на информация. Стойността на 4.7k не е много критична и може да бъде променена в определени граници, най-важното е да не се увличате.
С директното свързване на един сензор всичко е ясно, сега ще разгледаме директното свързване на група сензори към един щифт на Arduino. Фигура 4 показва пример за свързване на 5 сензора DS18B20. Този брой може да бъде всеки и е ограничен само от времевата рамка за анкетиране на всеки от тях (750ms).
Фигура №4 - свързване на група сензори DS18B20
Както можете да видите от горната фигура, абсолютно всички сензори на шината са свързани паралелно и има един издърпващ резистор за цялата група. Въпреки че промените в схемата са логични и минимални, работата с няколко температурни сензора е малко по-трудна по отношение на съставянето на програма. В този случай е необходимо да се обърнете към всеки поотделно, като използвате уникални адреси.Програмирането на всеки от режимите ще бъде обсъдено по-късно.
Режимът на паразитно захранване се различава от директния режим по това, че сензорите получават захранване директно от линията за данни, без да използват директно 5V. В този случай щифтовете Vdd и GNG на всеки температурен сензор са свързани помежду си. Този процес е показан по-ясно на Фигура 5.
Фигура 5 - свързване на единичен сензор и група сензори в паразитен режим на захранване от линията за данни.
Както в предишните диаграми, тук има 4.7k резистор, който в този случай играе двойна роля, а именно: издърпване на линията за данни до логика "1" и захранване на самия сензор. Възможността за такова включване се осигурява от специална схема, вградена в DS18B20 и буферен кондензатор Cpp (Фигура 2). Понякога това ви позволява да запазите 1 проводник в общия контур за свързване на група температурни сензори, което играе значителна роля в някои проекти.
След като обмислим комутационните вериги, е време да преминем към програмиране и тук можете да преминете по три начина:
- Използвайте готови, доказани библиотеки за работа с DS18B20;
- Комуникирайте със сензора директно чрез списъка с инсталирани команди;
- Напишете своя собствена библиотека на ниско ниво, включително функции за прехвърляне на битове с данни по времеви интервали, дадени в техническата документация.
Третият вариант е най-труден и изисква проучване на голямо количество информация. В рамките на тази статия ще бъдат разгледани първите два варианта.
Резистивни температурни сензори
Сензорите за устойчивост на температура (RTD) са направени от редки метали, като платина, чието електрическо съпротивление варира в зависимост от температурата.
Резистивните температурни детектори имат положителен температурен коефициент и за разлика от термисторите осигуряват висока точност на измерване на температурата. Те обаче имат слаба чувствителност. Pt100 е най-широко достъпният сензор със стандартна стойност на съпротивление от 100 ома при 0 ° C. Основният недостатък е високата цена.
Предимствата на такива сензори
- Широк температурен диапазон от -200 до 650 ° C
- Осигурете изходен ток с голям спад
- По-линейни в сравнение с термодвойките и RTD
Изгледи
Топлинните сензори се класифицират според различни критерии. В зависимост от инсталацията те са вградени и външни.
За електрически подове
Механичните регулатори са лесни за проектиране и поддръжка. Те са подходящи за малки пространства. Настройката се извършва с помощта на колело или ключ. Някои модели са оборудвани с функция за заключване за деца.
Единственият недостатък е липсата на прецизен контрол на температурата.
За водни подове
Електронните модели са идеални за регулиране на топлината на водния под. Те могат да контролират температурата на нивото на пода или на закрито. Оборудван с дисплей, управлението се извършва с помощта на бутони. Електронният контролер ви позволява да регулирате по-точно температурата на пода.
За инфрачервени подове
Използването на цифров термостат с инфрачервен температурен сензор може да намали консумацията на енергия със 70%. Управлението се извършва с помощта на сензорния екран.
Скъпите модели имат функция за програмиране. Цената достига до $ 500. Някои модели могат да бъдат контролирани чрез Интернет.
Инфрачервени подове
Инфрачервеният сензор за температура на подово отопление е монтиран по същия принцип, както при електрическите подове.
Поставя се между нагревателните компоненти, в пластмасова тръба. Или 15 см от ръба на филма до графитната лента с помощта на алуминиева лента.
Термодвойка
Термодвойките за температура се използват най-често, защото са точни, работят в широк температурен диапазон от -200 ° C до 2000 ° C и са относително евтини. Термодвойка с проводник и щепсел на снимката по-долу:
Работа на термодвойка
Термодвойка е направена от два различни метала, заварени заедно, за да се получи потенциална разлика над температурата.От температурната разлика между двата кръстовища се генерира напрежение, което се използва за измерване на температурата. Разликата в напрежението между двата кръстовища се нарича ефект на Зеебек.
Ако и двете съединения са с една и съща температура, потенциалът за разлика в различните съединения е нула, т.е. V1 = V2. Ако обаче кръстовищата са с различни температури, изходното напрежение спрямо температурната разлика между двата кръстовища ще бъде равно на тяхната разлика V1 - V2.