Термометр на терморезисторах (3-х канальный)

(авторский вариант статьи «Радио» №7, 2009, с.31–32, №8, с.25–27. с дополнениями)

Если к вам в руки попали платы с 7-сегментными индикаторами, то не спешите их полностью разбирать. Вокруг таких индикаторов, как правило, стоит соответствующее обрамление – ключи, дешифраторы и т.п., которое сослужит вам вторую службу, а также значительно упростит процесс конструирования. При добавлении на такую плату микросхемы PSoC вы с минимальными затратами получите действующее устройство с цифровой индикацией. Возможности PSoC позволяют обойтись минимумом внешних компонентов и напрямую подключать датчики (терморезисторы, термопары) к этой микросхеме.


Плата спереди (индикатор и монтаж)


Вид сзади

Введение

Добавление всего одной лишь микросхемы – микроконтроллера PSoC – может дать вторую жизнь отслужившим устройствам с цифровой индикацией. В мои руки попали несколько плат с 7-сегментными светодиодными индикаторами от каких-то старых импортных приборов. Одну из них легко удалось превратить в термометр, который был установлен в деревенской бане (дабы не бегать каждый раз вовнутрь для проверки ее готовности). На плате располагались три двухразрядных индикатора, которые теперь показывают температуру в трех точках – водяном котле, основном помещении и предбаннике (либо на улице). Диапазон температур ограничивается «отображательными» возможностями 2-х разрядного индикатора и составляет от -19 до +119 оС (значения 100...109 показываются как «С0»...«С9»).

В качестве датчиков было решено использовать терморезисторы от старых иономеров, представляющие собой катушку медного провода, заключенную в герметичную стеклянную трубку. Сгодятся и другие датчики, вплоть до самодельных, выполненных на основе нетрадиционно используемых элементов – катушек реле, лампочек накаливания и т.п. (об этом речь будет ниже). Процедуры калибровки датчиков вызываются перемыканием на плате специальных джамперов (могут использоваться обычные кнопки).

Использование старых плат

Здесь сразу же возникает вопрос о различных вариантах «донорства». Существуют несколько альтернатив:
– выпаять индикаторы (без применения специальной оснастки это – непростое занятие),
– ножовкой аккуратно вырезать участок платы с индикаторами (самое простое решение),
– разобраться в алгоритме работы и использовать возможно большее количество имеющихся компонентов.

В последнем варианте потери времени на исследовательские работы могут оказаться значительными, но это с лихвой окупается скоростью изготовлении работающего макета – не придется специально разрабатывать и изготавливать печатную плату, ведь микроконтроллер и несколько резисторов можно разместить на уже имеющейся!

Разобраться в логике работы таких плат несложно – как правило, используется динамическая индикация, при которой одноименные сегменты объединены, а разряды поочередно зажигаются с частотой, слитной для глаза. Все разнообразие схемотехники сведено лишь к типу использованных индикаторов (с общим анодом или катодом) и способу управления – с помощью транзисторных ключей, буферных микросхем, либо вообще без оных. Вместо буферных микросхем могут стоять микросхемы знакогенераторов (управление сегментами) и дешифраторов (управление разрядами), что позволяет экономить на линиях управления. Еще большую экономию дает использование сдвиговых регистров (преобразование последовательного кода в параллельный), но в старых платах этот вариант не встречается. Определить, какой конкретно вариант у вас используется, можно, глянув на марку использованных микросхем.

В случае с моей платой (см. правую часть схемы ниже) это были две микросхемы – ULN2803A (IC3) и 74ALS145N (IC1). Первая представляет собой 8 транзисторных ключей в одном корпусе, вторая – дешифратор 4-разрядного кода в позиционный (на 10 направлений). Дешифратор управляет разрядами индикатора не напрямую, а через транзисторные ключи T1...T6. Чтобы зажечь нужную цифру, нужно сначала на вход микросхемы IC3 подать соответствующий код (какие сегменты должны гореть), а затем на вход микросхемы IC1 подать номер высвечиваемого разряда. Эту операцию для всех разрядов нужно повторять регулярно и с достаточно высокой частотой (чтобы глаз не замечал мерцания).

Резисторы R19...R24 задают пиковый ток через сегменты индикаторов; средний ток оказывается меньше в несколько (по количеству разрядов) раз. Может оказаться так, что пиковый ток превышает средний допустимый – в этом случае «зависание», т.е. непреднамеренный останов устройства управления, смерти подобен и приводит, как правило, к «выжиганию» знакоместа. А так как на этапе отладки программы подобная ситуация очень вероятна, то необходимо проверить допустимые токи, и в случае необходимости – увеличить сопротивления резисторов до безопасного уровня.

На своей плате я определил область, представляющую наибольший интерес – индикаторы, управляющие микросхемы и транзисторные ключи, а все остальное попросту «отсек» ножницами по металлу (оставив только место для размещения микроконтроллера). Оставшиеся на плате «дорожки вникуда» я использовал для монтажа дополнительных компонентов – SMD резисторов, разъемов и панельки под микроконтроллер. Все дополнительные соединения я осуществил проводом МГТФ, насколько аккуратно это получилось – можно судить по фотографиям.


Электрическая схема термометра

Электрическая схема

Итак, для управления индикаторной частью мне потребовалось 12 сигнальных линий:
– 8 линий для зажигания сегментов (7 сегментов цифры + децимальная точка),
– 3 линии для выбора разряда (с помощью дешифратора IC1),
– 1 вход дешифратора IC1 (старший) постоянно подключен к лог.0 (требуется управлять только шестью ключами, хотя в оригинале таких ключей девять – дополнительные ключи раньше управляли сигнальными светодиодами).

Две линии у микроконтроллера будут отнимать кнопки управления (для калибровки), и две линии – цепи программирования.

В итоге, у 28-выводной микросхемы PSoC (IC2) остаются свободными 9 ног. В силу специфических особенностей для аналоговых нужд предназначен порт P0 – его-то я и использовал для построения измерительной части.

Все термодатчики S1...S3 и образцовый резистор R22 соединены в цепочку, напряжение на которую подается с вывода P0[5] микросхемы. Напряжения на датчиках и образцовом резисторе измеряются с использованием выводов P0[0], P0[1], P0[2], P0[3] и P0[4]. Я реализовал так называемую «2-проводную схему подключения», при которой питание на датчики поступает по тем же самым проводам, что используются для измерения напряжения. По сравнению с 4-проводной схемой это упрощает процесс подключения датчиков, но создает дополнительный источник ошибок – влияние сопротивления проводов и контактов на измеряемую величину. Это влияние можно уменьшить, применив достаточно высокоомные (> 1 кОм) датчики. Впрочем, ничто не мешает использовать и классическую 4-проводную схему. Номинал образцового резистора R22, вообще говоря, может быть любым, но желательно выбрать его близким к сопротивлению датчиков.

Резисторы R24...R28 (вместе со встроенными в микросхему диодами) дополнительно защищают входы микросхемы от импульсных помех (которые более чем вероятны при значительной длине проводов). Резисторы R21 и R23 задают рабочий ток через датчики, а R23, кроме того, – потенциал на нижнем датчике, отличный от «нуля» (требуется для корректной работы аналоговой части микросхемы). Емкости C3...C8 необходимы для подавления высокочастотных помех, возникающих при использовании некачественных импульсных источников питания и близком расположении мощных радиостанций.

Через разъем J1 осуществляется внутрисистемное программирование, а также производится подача питания +5В. Устройство потребляет ток около 0,4 А, этот ток очень сильно зависит от количества высвечиваемых в данный момент сегментов на индикаторе. Чтобы из-за неравномерности тока не было «просадок» напряжения питания, приводящих к нестабильности работы аналоговой части (и как следствие – к «свистопляске» в показаниях), блок питания должен удовлетворять повышенным требованиям – быть выбранным с запасом по мощности и иметь очень низкое выходное сопротивление. Я использую вот такой блок питания.

Метод измерения сопротивлений с помощью PSoC

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

Традиционный способ измерения сопротивлений (точнее говоря – малых изменений сопротивления под воздействием температуры) – это включить термозависимые элементы в состав измерительного моста и с помощью дифференциального усилителя измерять напряжение в его диагонали. Далее напряжение с выхода усилителя оцифровать, обработать, а результат – вывести на индикатор. Этот способ может быть реализован на PSoC, но гораздо интереснее применить схему, показанную на рисунке справа. Это немного измененный вариант, описанный в [1] и [2], а алгоритм его работы следующий.

Через измерительную цепочку, образованную образцовым резистором Rr, терморезистором Rt, и токозадающими резисторами R1 и R2, протекает ток от источника опорного напряжения.

Вначале измеряется падение напряжения на образцовом резисторе Rr. Для этого через аналоговые мультиплексоры (красные пути) к нему подключаются входы дифференциального усилителя, а усиленное напряжение оцифровывается с помощью АЦП. Затем измеряется напряжение на терморезисторе Rt (синие пути). Так как через резисторы протекает общий ток, то зная отношение напряжений и величину образцового сопротивления, можно рассчитать величину Rt, а по ней – и саму температуру (используя табличный метод или расчет по апроксимирующим формулам).

Если не требуется супервысокая точность измерений, то в качестве апроксимирующей функции удобно использовать линейную зависимость сопротивления от температуры, которая однозначно задается двумя точками. Если знать точные характеристики датчиков, то эти точки можно определить заранее, но на практике это условие выполняется редко (из-за разброса параметров). Поэтому использованию прибора предшествует процедура его калибровки – измерении сопротивлений датчиков при образцовых температурах.

Для удобства калибровки и последующих расчетов (чтобы не привязываться к конкретному значению Rr) я запоминаю четыре параметра (по два на каждую температуру): напряжения U'20 и U'100 на термосопротивлении и напряжения Ur'20 и Ur'100 на образцовом сопротивлении при температурах t20 и t100 (в качестве t20 и t100 выбраны 20оС и 100оС).

График справа графически иллюстрирует процесс вычисления температуры t по текущему значению напряжения на датчике U, используя линию, проходящую через две калибровочные точки. На практике используется следующая формула:

, где

– это напряжения в калибровочных точках, откорректированные по текущему напряжению на образцовом резисторе Ur. В реальности напряжения в их «естественном виде» (т.е. выраженные в вольтах) не используются, а используются «отсчеты» – результаты аналого-цифрового преобразования (безразмерная единица).

Для устранения дрейфа напряжений смещения усилителя и АЦП используется способ, называемый «методом коррелированных двойных выборок». Его суть заключается в предварительном измерении «нулевого» напряжения измерительного тракта (при накоротко соединенных входах дифференциального усилителя) и вычитании результата этого измерения из последующих измерений (метод детально описан в [4]).

Внутренняя структура PSoC и программное обеспечение

Микросхема сконфигурирована следующим образом:


Внутренняя структура PSoC

В проекте были использованы следующие Модули Пользователя:
Timer8_1 – 8-разрядный таймер для задания прерываний с частотой около 1 кГц (для реализации динамической индикации),
RefMux_1 – источник опорного напряжения для питания датчиков,
PGA_1 и PGA_2 – программируемые усилители, которые в паре образуют дифференциальный усилитель,
ADCINC_1 – 14-разрядный АЦП с дифференциальным входом.

Дифференциальный усилитель построен так, как это описано в [5] – из двух модулей PGA с программированием недостающих связей посредством регистров PSoC. Достоинства такого построения (по сравнению с инструментальным усилителем INSAMP) – исключение «лишнего» блока SCB, дифференциальный выход, расширенный ряд возможных коэффициентов усиления.

Для питания датчиков был выбран потенциал «аналоговой земли», который в данном проекте составляет величину +2,6 В относительно «цифровой земли» (удвоенное значение внутреннего источника опорного напряжения). Этот потенциал задается модулем RefMux_1 и через выходной буфер buf 1 транслируется на вывод P0[5] микросхемы.

Как видно, большинство ресурсов микросхемы осталось незадействованным. Архив проекта вы можете скачать по ссылке в конце статьи.

Я не буду подробно описывать алгоритм работы программы, остановлюсь только на некоторых характерных моментах.

Основной цикл опроса данных от АЦП производится в модуле main.asm. Здесь же определены рабочие переменные и область во FLASH, где сохраняются результаты калибровки. Для представления чисел используется 40-битный формат (5 байт). Такой формат выбран из соображения возможности перемножения двух 16-разрядных чисел без переполнения разрядной сети и ведения дальнейших действий с таким результатом. Арифметические операции с 5 байтными числами собраны в библиотеку math.asm, а для удобства организации вычислений создан файл math.inc, где определены соответствующие макросы.

В модуле main.asm данные обрабатываются, а результат преобразуется в строку кодов для вывода на 7-сегментный индикатор. Соответствующие процедуры преобразования чисел находятся в файле to999.asm.

Двухразрядный индикатор способен показывать числа от -9 до 99. Чтобы немного расширить этот диапазон, пришлось «поколдовать» над способами отображения информации. Если зажигать знак «-» в том же знакоместе, где располагается старшая цифра, то можно отображать числа от -10 до -19. Также, в старшем разряде можно зажечь две единички и отобразить «11», что соответствует числам 110...119. А вот диапазон 100...109 пришлось закодировать как «C0»...«C9» (символ «С» можно интерпретировать как «Сто»). Числа отделяются друг от друга десятичными точками ( в примененной мною плате индикаторы расположены впритык), эти точки я заставил «подмаргивать» с частотой обновления информации (чуть менее раза в секунду).

Значения за пределами диапазона отображаются как комбинации «--» и «пп». Первая соответствует недопустимо низкому сопротивлению датчика (или короткому замыканию в линии), вторая – недопустимо высокому (например, обрыву или плохому контакту). Если индикатор показывает, скажем, комбинацию «--.--.пп.», то это однозначно свидетельствует об обрыве 3-го датчика.

Динамическая индикация реализована с использованием Модуля Пользователя Timer8_1, который примерно раз в 1 мс генерирует прерывание (обработчик прерывания – Timer8_1INT.asm). В течении этого периода зажигается один разряд индикатора, данные о сегментах берутся из буфера an (6 байт). Таким образом, индикация всех 6 разрядов занимает время около 6 мс (т.е. частота мерцания составляет 166 Гц). В этом же обработчике производится опрос кнопок управления (джамперов) с подавлением их возможного «дребезга» (нечетких нажатий-отпусканий).

Для управления 7-сегментным индикаторами и осуществления динамической индикации существует специальный модуль – LED7SEG, но я не воспользовался им из-за его ограниченных возможностей – в нем не предусмотрено управление разрядами индикатора с помощью дешифратора.

Преобразование напряжения в код осуществляет 14-битный модуль АЦП ADCINC_1. Я модернизировал программный код этого модуля с тем расчетом, чтобы он сам делал переключения входных аналоговых мультиплексоров, производил коррекцию нуля («метод коррелированных двойных выборок») и выставлял флаг готовности только после того, как будут получены данные по четырем напряжениям – на трех термодатчиках и на образцовом резисторе. На будущее, при работе с PSoC Designer учтите, что код в тело модуля необходимо вставлять с осторожностью – между специальными «скобками», выполненными в виде комментария:

;@PSoC_UserCode_BODY@ (Do not change this line.)
;---------------------------------------------------
; Insert your custom code below this banner


; Insert your custom code above this banner
;---------------------------------------------------
;@PSoC_UserCode_END@ (Do not change this line.)

Если не выполнить это требование, то при повторной компиляции проекта «лишний» код будет уничтожаться.

Для упрощения написания программы, внутренний датчик температуры кристалла (необходим для оптимизации записи во FLASH) не задействован. Я задался фиксированным значением температуры в предположении, что в момент записи во FLASH (т.е. в момент калибровки датчиков) окружающая температура будет близка к комнатной (25оС). Калибровка при существенно высоких температурах (> 45оС) приведет к сокращению гарантированного количества циклов записи, а при низких (< 5оС) – к недостоверности записанных данных.

Калибровка

После подключения всех датчиков и подаче питания, прибор покажет некоторые значения температур, которые при использовании датчиков ТКА-5 (именно на этом типе датчиков я остановил свой выбор) будут более-менее соответствать истине. При подключении других датчиков значения температур могут выйти за границы диапазона, и на индикаторе отобразится комбинация «--.--.--.» либо «пп.пп.пп.».

В любом случае потребуется калибровка прибора, т.е. настройка на конкретные экземпляры датчиков. Калибровка заключается в помещении датчиков в среду со строго определенной температурой и кратковременном перемыкании контактов «Cal.20» или «Cal.100». В первом случае датчики надо поместить в воду с температурой 20оС (контролируется образцовым термометром), во втором – в кипяток с температурой 100оС. При калибровке на экране появится соответствующее сообщение. Не забудьте датчики выдержать некоторое время в воде, чтобы они приняли ее температуру (для ТКА-5 это время составляет несколько минут).

Датчики

В качестве датчиков сгодятся любые проводники из чистых металлов (медь, вольфрам). Желательно только, чтобы датчик имел достаточно большую величину сопротивления: во-первых, это уменьшит влияние проводов и нестабильнось контактных соединений на результат измерения, а во вторых – увеличит полезный сигнал при том же токе через датчик (о необходимости снижения тока будет сказано ниже). Идеально здесь подойдут катушки от слаботочных реле – намотанные медным проводом, они имеют высокий температурный коэффициент и сопротивление порядка нескольких кОм. Их недостаток заключается, прежде всего, в высокой температурной инерционности, в необходимости защищать (заливкой или обмазкой) обмотку от агрессивных и проводящих сред, а также в слабой стойкости изоляции к высоким температурам (выше 200оС).

Гораздо лучше в плане инерционности и стойкости к высоким температурам ведут себя открытые спирали из вольфрама, обеспечивая практически мгновенный отклик на изменение температуры (секунды и доли секунды). Сделать в любительских условиях такой датчик тоже элементарно – достаточно разбить стеклянную колбу у лампочки накаливания. Для получения большей величины сопротивления, необходимо взять лампочку очень малой мощности и на возможно большее рабочее напряжение. Я экспериментировал и с промышленными датчиками спирального типа – чувствительными элементами от хроматографа.

Недостатки датчиков на основе спирали – низкая стойкость к механическим воздействиям и низкое сопротивление, заставляющее увеличивать ток и коэффициент усиления измерительного тракта. В текущем проекте коэффициент усиления выбран равным 1.6, но имеется резерв по его увеличению до значения 48. Для датчиков с сопротивлением порядка 60 ом оптимальной является схема подключения, которая обозначена как «Вариант 2». В этом случае у модулей PGA_1 и PGA_2 следует установить коэффициент усиления (параметр Gain ) равный 8.

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

Если попытаться значительно увеличить ток через такой датчик (уменьшив сопротивления R21 и R23 до десятков ом), то получим интересный эффект – датчики будут разогреваться протекающим через них током. При измерении температуры это очень нежелательное явление, но этот эффект можно использовать и с пользой – для измерения теплоемкости газов и жидкостей, а также для определения их расхода в трубопроводах. Ведь как сильно будет охлаждаться разогреваемая током спираль (а следовательно – меняться ее сопротивление) зависит от скорости потока газа/жидкости и их способности «вбирать» в себя тепло. Именно такой принцип используется в чувствительных элементах от хроматографов.

Я опробовал датчики различных типов – как промышленные, так и самодельные, их параметры сведены в таблицу. У ламп накаливания спираль заливалась эпоксидной смолой для ее защиты от воздействия окружающей среды. Свой выбор я остановил на промышленных датчиках ТКА-5 от иономеров (представляющих собой стеклянную пробирку, наполненную теплопроводящей жидкостью, в которую помещена катушка с медным проводом), поскольку они были у меня в наличии (спасенные в свое время от выкидывания в утиль) и не требовали дополнительных мер по защите и герметизации.

  Тип датчика Материал
проволоки
Сопротивление
(при 20оС), ом
Темпер.коэф.,
% / оС

Элемент чувствительный (от хроматографа ЛХМ) вольфрам * 59...61 0,13
Термокомпенсатор ТКА-5 (от иономера) медь 1424 0,38
Катушка реле РЭС10 (паспорт РС4524301) медь 4500...5000 0,38
Лампа накаливания 26В, 0,12А вольфрам * 20...24 0,36
Лампа накаливания 28В, 0,055А вольфрам * 50...56 0,32
Лампа накаливания 60В, 0,055А вольфрам * 110...120 0,37

Примечание: * Видимо, с примесями. По справочнику у чистого вольфрама температурный коэффициент 0,41 % / оС

Установка термометра и вопросы безопасности

Как я уже говорил, термометр предназначался для дистанционной оценки степени готовности русской бани. Для этого один из датчиков был установлен в баке с горячей водой, другой – в самой бане. Третий датчик было решено вынести на улицу.

Индикаторный блок я разместил в предбаннике – как заходишь, так сразу и упираешься. На корпус пошли подручные материалы (типа обрезков вагонки). В моих условиях удобнее всего было расположить плату не параллельно стене, а немного наискосок и в угол, образованный стеной и выступающим концом балки. Это, во-первых, улучшило обзорность, а во-вторых – упростило конструкцию (позволило отказаться от боковых стенок). Несколько топорный внешний вид прекрасно вписывается в «деревянно-зодческий» интерьер бани.


Термометр показывает температуру в баке с гор.водой, в бане и на улице


Датчик в баке

Для фиксации датчика, предназначенного для окунания в бак (а также его проводов), была изготовлена простейшая арматура из проволоки (см. фото). Поскольку мой бак закрывается сверху деревянной крышкой, в верхней части бака пришлось просверлить отверстие для ввода проводов и арматуры. Это место было законопачено кусочком высохшей монтажной полиуретановой пены. Напоминаю, что конструкция датчика и проводов должна быть герметична и выдерживать высокую температуру. Помните, что хотя вода и воздух в бане не нагреваются выше 100 оС, но излучение от печки, а также конвективные потоки воздуха от ее стенок могут нагреть предметы (в том числе и провода) до гораздо более высоких температур. Не допускайте также опорожнения бака!

Остальные датчики я подвесил на крючках, изготовленных из алюминиевой проволоки. Датчики ТКА-5 требуют вертикального или наклонного положения для того, чтобы находящаяся в них жидкость омывала чувствительный элемент (для уменьшения тепловой инерционности). О месте расположения датчиков следует задуматься. Уличный датчик не должен не только находиться под прямыми солнечными, лучами, но и омываться потоками теплого воздуха от бани (например, из дверного проема). «Банный» датчик не следует располагать в зоне тепловых лучей и конвективных потоков от печки, а также в нижней части бани. Свой датчик я расположил в сантиметрах в шести от потолка за потолочной балкой, исключающей прямое попадание излучения от печки.

Поскольку баня является влажным помещением, электробезопасность – это отдельный и очень важный вопрос. Даже если сетевой блок питания исправен и имеет надежную изоляцию между первичной и вторичными цепями, наличие емкостной связи между ними (через конденсаторы фильтра, предусмотренного во всех современных импульсных блоках питания) может привести к появлению значительной разности потенциалов между датчиком (баком) и влажным полом, т.е. землей. Поэтому электроприборы, питающиеся от сети 220В, должны иметь реальное заземление – электрическое соединение их «общего» провода с металлической массой, закопанной в непосредственной близости от бани. Лучше, если это будет сделано не через третий провод в вилке-розетке, а отдельным проводником. Излишне, наверное, и говорить, что блок питания (а также розетка) должны располагаться в самой сухой и прохладной части предбанника.

Заключение

Как видно, у микросхемы PSoC остались свободными два аналоговых вывода, поэтому можно добавить еще два датчика. Дешифратор IC1 позволяет нарастить разрядность индикатора до 10 цифр. Если у вас есть в наличии сверхяркие индикаторы, то можно вообще обойтись без транзисторных ключей и микросхем IC1, IC3 (номиналы резисторов R19...R24 при этом, естественно, следует увеличить). Необходимо только помнить, что максимальный ток через выводы микросхемы не должен превышать 25 мА, а суммарный – 200 мА.

Я надеюсь, что исходный код проекта достаточно понятен для его самостоятельной адаптации под различную схемотехнику индикаторной части.

Прибор также можно приспособить и для работы с термопарами. Как и в случае с терморезисторами, не потребуется никаких внешних операционных усилителей. О том, как реализовать измерения температур с помощью PSoC, рассказывается в [3].

По поводу «банного» применения окружающие выражали изрядный скепсис: «а зачем это надо», «а в случае чего можно взять обычный термометр и померить...» и т.д. Но первая же эксплуатация сняла все вопросы – люди с удовольствием констатировали: «сегодня была такая-то температура», «вода в баке еще не прогрелась, но можно уже идти париться» и т.п.

В качестве примера приведу динамику изменения температуры в своей бане (условия измерений: налито 20 л воды, положено 7 небольших поленьев).


Дополнительные материалы:

Thermometer27x.zip (75 кБ) – архив проекта (в папке /output находится готовый файл прошивки *.hex).
Текст программы – ассемблер. Среда разработки – PSoC Designer 4.3

Статьи по теме (на сайте Cypress):
[1] AN2017 – «A Thermistor Based Thermometer, PSoC Style» (измерение малых изменений сопротивлений с помощью уникальной архитектуры PSoC).
[2] AN2120 – «RTD Temperature Measurement» (измерение температуры стандартными датчиками PT100).
[3] AN2148 – «Measuring Temperature Using a Thermocouple» (измерение малых напряжений, производимых термопарами).
[4] AN2226 – «Correlated Double Sampling» («метод коррелированных двойных выборок» – как компенсировать напряжение смещения и его дрейф).
[5] AN2367 – «Differential Amplifier» (еще один способ построения дифференциального усилителя).

Послесловие... Опыт эксплуатации устройства. Версия с датчиками DS1820.


antiradio.narod.ru/psoc/
Дата создания документа: 11.09.2008. Последнее обновление: 25.07.2017.