Дигитален термометър ссензори DS1820 или DS1821
Появата на нашия пазар на сравнително евтини цифрови температурни сензори и много евтини микроконтролери направи възможно създаването на цифров термометър, който не изисква калибриране и има много възможности. Сред цифровите температурни сензори най-интересни са микросхемите DS1820 и DS1821 от DALLAS. Добри са, защото използват едножичен интерфейс (1-WireTM) от DALLAS за обмен. Това означава, че сензорите могат да бъдат свързани към термометъра само с 3 проводника (сензорът DS1820 може да бъде свързан дори с 2 проводника). DS1820 е по-точен (и скъп) и има по-бързо време за преобразуване. Въпреки това, DS1821 може да бъде програмиран в режим на термостат за напълно автономна работа.
Параметрите на термометъра по отношение на грешката на измерване се определят изцяло от сензорите, така че няма смисъл да ги даваме тук. За повече информация относно цифровите температурни сензори, моля посетете www.dalsemi.com.
Мнозина искат да знаят температурата и от тази страна на прозореца, т.е. в стаята. Вероятно, за да реши дали да изтича до ЖЕС с викове като „Но ние плащаме за топлина. ". Поради тази причина термометърът има втори температурен сензор, разположен вътре в корпуса. Този сензор има температура приблизително равна на температурата на въздуха в помещението.
Няколко забележки относно разположението на термометрите. Външният термометър трябва да бъде защитен от пряка слънчева светлина и от въздушни течения със стайна температура, проникващи през пукнатините в рамките. Вътрешният термометър трябва да се постави в корпуса така, че да е възможно най-далеч от нагревателните елементи. На първо място, това са LED индикатори и стабилизатор на напрежението. Ако термометърът се включи само за няколко секунди, а през останалото време ще бъде изключен,тогава нагряването на елементите на веригата няма да може да изкриви показанията на температурата на въздуха в помещението.
Желанието да погледнете термометъра обикновено се появява, когато условията на осветление са най-лоши. Например посред нощ. Следователно LCD дисплеите, дори и тези с подсветка, не са подходящи. По-добра четливост при условия на слаба осветеност имат LED индикатори. Вярно е, че ядат много.
Аз съм категоричен противник на устройства, които постоянно стърчат в мрежата. Може би там, в страните с развита научна и технологична революция, това е добре (във вносното оборудване все повече няма пълен превключвател), но в нашите специфични условия това е просто неприемливо. Знам поне два случая, когато мои приятели през нощта, по някаква неизвестна причина, мрежовото напрежение почти се удвои. Всички устройства, които бяха в режим на ГОТОВНОСТ, бяха деактивирани. И на сутринта на местната работилница се появи табела „Затворено“. Поради тази причина термометърът се захранва от батерии. За да се удължи живота на батерията, термометърът се включва с бутон и автоматично се изключва след пет секунди. Възможно е и захранване от мрежата, има специален конектор за това. При захранване от електрическата мрежа термометърът е винаги включен.
Имайки микроконтролер в системата, исках да внедря повече от всякакви звънци и свирки. Един от тях е контролният изход на термостата. Този изход получава напрежение от 0 или в зависимост от състоянието на термостата. Състоянието се определя от програмираните прагове и температурата, отчетена от външен сензор. Два прага ви позволяват да зададете необходимия хистерезис. Изходът на термостата може да се използва за управление на тиристори, транзистори или релета, които от своя страна превключват товара. Какво може да се направи по въпроса? Например, термостатиране на кутия с картофина балкона при +2°С. Това ще изисква много малко електричество. Или термостатирайте водата в аквариума (сигурен начин да зарадвате вашите домашни любимци с прясна рибена чорба). И накрая, адаптирайте този изход, за да контролирате компресора на хладилника и след това имате пълен контрол над ситуацията. Има обаче много повече… Термометърът може също така да програмира микросхеми DS1821 в режим на термостат. Това вече не е просто термометър, това е средство за производство!
Електрическата схема на термометъра не е сложна. Основата е U1 микроконтролер тип AT89C2051 от ATMEL. Индикацията е динамична, софтуерно реализирана. Катодни индикатори HG1 и HG2 са свързани към порт P1, анодите се включват от транзистори VT1-VT3. Транзисторите се управляват от сканиращи линии S0. S2. Ударният ток на сегментите е ограничен от резистори на ниво от приблизително 15 mA, което се вписва в товароносимостта на порта (20 mA) и е достатъчно за получаване на необходимата яркост. Циклите на сканиране се формират с помощта на вътрешния таймер на микроконтролера. Всеки цикъл на показване е последван от "празен" цикъл, когато всички индикатори са изключени. За да настроите яркостта на индикаторите, достатъчно е да настроите съотношението на продължителността на цикъла на индикация към продължителността на цикъла "празно" (PWM). Яркостта се регулира с бутони "НАГОРЕ" и "НАДОЛУ" в режим на индикация на температурата. Новата стойност на яркостта се съхранява в енергонезависима памет. За субективно постоянна скорост на промяна на яркостта по време на процеса на настройка се прилага закон за настройка, близък до хиперболичния.
За да запазите портовете на микроконтролера, чип с флаш памет I2C U2 също „виси“ на линиите за сканиране. Циклите на сканиране се игнорират от чипа, тъй като те са редуващи се условия за стартиране и спиране. Когато микроконтролерът комуникира с микросхемата, циклитесканиранията са на пауза. Всичко щеше да е наред, само с това включване на чипа с флаш памет беше хванат бъг. Ако KR1568PP1, произведен от софтуера INTEGRAL, е използван като флашка, тогава в момента на изключване на захранването, ако дисплеят се сканира, съдържанието на някои клетки се влоши. Интересното е, че смяната на флашката с PHILIPS PCF8582, от която беше откъсната интегралната, напълно отстрани проблема. Като цяло не се наблюдава проблем с която и да е патентована микросхема.
Локалната клавиатура използва линиите за данни на дисплея като линии за сканиране, а RL порта на микроконтролера като обратна линия. Сканирането на клавиатурата се извършва в цикли на сканиране на дисплея.
Външните и вътрешните температурни сензори са свързани към портовете на микроконтролера чрез защитни вериги. Малки резистори са включени в захранващите вериги на сензорите за защита от късо съединение на линиите на термометъра. Външният термометър се свързва чрез 3-пинов 3,5 мм жак, който обикновено се използва за стерео слушалки. Този конектор има функция: по време на артикулация и трите контакта са затворени за известно време. Следователно защитният резистор в захранващата верига е незаменим. За всеки случай на вътрешния сензор са монтирани предпазни вериги. В крайна сметка никой не забранява този сензор да се превърне във втори външен, нали?
Контролният изход на термостата има двутактна каскада на транзистори VT4 и VT5. Такова стъпало осигурява еднакъв входен и изходен ток. Този ток е ограничен от резистор R17 по енергийни причини и за защита на транзисторите. И двата транзистора са свързани в обща емитерна верига, която в сравнение с емитерната верига осигурява по-голямо колебание на изходното напрежение.
Гнездото за програмиране DS1821 използва същотосъщата линия за данни като външния термометър и използва изходното напрежение на термостата като захранващо напрежение (захранването трябва да бъде изключено при превключване на чипа DS1821 от режим на термостат в режим на термометър). Следователно, когато програмирате, външният термометър и задвижващият механизъм на термостата трябва да бъдат дезактивирани.
Конекторът за програмиране DS1821 използва същата линия за данни като външния термометър и използва изходното напрежение на термостата като захранващо напрежение (захранването трябва да бъде изключено при превключване на чипа DS1821 от режим на термостат в режим на термометър). Следователно, когато програмирате, външният термометър и задвижващият механизъм на термостата трябва да бъдат дезактивирани.
Така стигаме до най-ужасната част от схемата - до стабилизатора. При разработването на стабилизатор трябваше да бъдат изпълнени редица условия. Напълно заредените батерии имат напрежение от 6 V. Сензорите изискват минимум 4,3 V, за да функционират правилно. Следователно регулаторът трябва да осигурява възможно най-малкия минимален спад (за предпочитане не повече от 200 mV при 100 mA). Стабилизаторът трябва да се задейства с бутон и да се изключи със сигнал от микроконтролера. Стабилизаторът трябва да "усеща" мрежовото захранване и, ако има такъв, да остане включен през цялото време. Включването и изключването на щепсела може да се извърши "в движение". Батериите не трябва да се разреждат по време на работа от мрежата. Освен това съществуващият мрежов адаптер имаше плюс на централния щифт на щепсела, така че когато захранващият конектор беше шарнирен, минусът беше разкъсан. С всичко това батериите трябва да се превключват правилно. Всички горепосочени изисквания бяха изпълнени в стабилизатор, сглобен на отделни компоненти. Може би някакъв LDO-стабилизиращ чип, например LP2951 с SLEEP вход, би позволилпо-лесно е да се реши този проблем, но каквото е направено, е направено. Давам описание на дизайна "както е", с всички предимства и недостатъци. Като регулиращ елемент в стабилизатора се използва n-канален MOS транзистор VT6 на логическо ниво от типа IRLZ44, който се произвежда от софтуера INTEGRAL под кодовото име KP723G. Корпусът на този транзистор TO-220 може да разсее необходимата мощност без радиатор. Като източник на ниско напрежение се използва червен светодиод. Усилвателят на грешката е направен на транзистора VT9. Поради високата устойчивост на натоварване, това стъпало има голямо усилване. Бутонът SB1 извършва първоначалното задействане на стабилизатора при работа на батерии. Когато работи от мрежата, стабилизаторът се включва от каскада на транзистора VT10. Транзисторите VT7 и VT8 образуват верига за автоматично изключване. За да изключите стабилизатора, микроконтролерът трябва да генерира подходящ сигнал на изходния порт. Но микроконтролерът няма свободни линии (както винаги една линия липсваше). Следователно обратната линия на клавиатурата RL се използва за изключване на стабилизатора. При нормална работа на този ред се наблюдава определена последователност от импулси в зависимост от това кой бутон е натиснат и какво е на дисплея в момента. Във всеки случай периодът на повторение на импулса не може да бъде по-дълъг от продължителността на пълен цикъл на сканиране на дисплея. Когато нито един от бутоните не е натиснат, устройството "виси" на линията. За изключване на стабилизатора беше решено да се използва ниво на логическа нула с продължителност най-малко 50 ms. За да се разграничи това състояние на линията от нормалното, сигналът на линията трябва да бъде интегриран и времеконстантата на заряда трябва да бъде много по-малка от тази на разряда. Транзисторът VT7 е свързан според веригата на емитерния последовател, той може бързо да се зареждаинтегриращ капацитет C8. Времеконстантата на разреждане се определя главно от резистора R20. Транзисторът VT8 се използва като прагов елемент, когато C8 се разреди под определено ниво, транзисторът се затваря, прекъсвайки захранващата верига на референтния източник VD12 и стабилизаторът се изключва. Когато работи от мрежата, възелът за изключване се блокира с помощта на веригата VD13, R21, която винаги поддържа VT8 в отворено състояние.
Въпреки изобилието от отделни компоненти, ако се използват SMD елементи, веригата на стабилизатора лесно се „размазва“ върху платката, запълвайки празните пространства.
Ще отбележа един недостатък на дизайна: няма сигнал за разреждане на батерията. Микроконтролерът обикновено работи при захранващо напрежение от 2,7 V, докато температурните сензори могат да започнат да „лъжат“ при захранващо напрежение под 4,3 V. Батериите могат да бъдат разредени, показанията на термометъра са неправилни и потребителят дори няма да познае за това. Той ще издаде само намалена яркост на светенето на индикаторите. Веднага трябва да кажа, че не става въпрос за трудността при генериране на BAT сигнал. НИСКО, но при липса на свободни входни портове на микроконтролера. Между другото, същият LDO стабилизатор LP2951 има подобен сигнал (там се нарича ГРЕШКА). Един изход е да използвате таймер за наблюдение DS1232L (известен още като ADM1232) или подобен. Можете да използвате линията за сканиране на дисплея, за да рестартирате, а вграденият монитор за захранване просто няма да позволи на системата да работи, ако захранващото напрежение е под 4,5 V.
И накрая, ако възнамерявате да използвате термометър само с мрежово захранване, тогава цялата тази стабилизаторна верига може успешно да бъде заменена с познатия IC 7805.
Печатната платка (и механичният дизайн) на термометъра зависи силно от желания дизайн на продукта и затова не е показана тук.