Описания различных электронных цифровых термометров неоднократно публиковались в различных источиках. Как правило, они содержали преобразователь температура—частота и измерительную часть на дискретных цифровых элементах, преобразующих измеренную частоту в показания температуры. Построенный на дискретных элементах преобразователь температура—частота требует калибровки и позволяет достичь приемлемой точности в довольно ограниченном интервале (из-за нелинейности температурных характеристик элементов). Применение современной элементной базы — микроконтроллеров и специальных датчиков — значительно упрощает схемотехнику устройства с одновременным повышением функциональности и точности измерений.
Принципиальная схема предлагаемого термометра изображена на рис.1. Его основа - популярный микроконтроллер (МК) PIC16F84A (DD1). Для измерения температуры использован интегральный цифровой датчик (ВК1) DS18B20 фирмы MAXIM. Эта микросхема не требует калибровки и позволяет измерять температуру окружающей среды от -55 до +125 °С, причем в интервале -10...+85 °С производитель гарантирует абсолютную погрешность измерения не хуже ±0,5 °С. Датчик DS18B20 - наиболее совершенный из широко известного семейства DS18X2X, выпускавшихся ранее под маркой Dallas Semiconductor. В отличие от функциональных аналогов DS1820 и DS18S20 он перед началом измерения позволяет задать необходимую относительную точность преобразования температуры из следующего ряда значений: 0,5; 0,25; 0,125 и 0,0625 °С, при этом время измерения равно соответственно 93,75; 187,5; 375 и 750 мс.
Рис.1. Принципиальная схема термометра
Принцип действия датчика DS18X2X основан на подсчете числа импульсов, вырабатываемых генератором с низким температурным коэффициентом вовременном интервале, который формируется генератором с другим температурным коэффициентом, при этом внутренней логикой датчика учитывается и компенсируется параболическая зависимость частот обоих генераторов от температуры.
Обмен управляющими командами и данными между датчиком ВК1 и МК DD1, работающим на частоте 4 МГц, осуществляется по однопроводной двунаправленной шине передачи данных 1-Wire. Каждый экземпляр DS18B20 имеет уникальный 48-битный номер, записанный с помощью лазера в ПЗУ в процессе производства, что позволяет подключать к одной шине практически любое число таких приборов. Ограничивающим фактором является в основном только общее время, затрачиваемое на последовательный опрос всех датчиков, подключенных к сети.
С периодом, равным 1 с, МК DD1 посылает датчику ВК1 команду на запуск процесса измерения температуры с точностью 0,0625 °С и получает от него результат предыдущего замера. Принятый отдатчика 12-битный код, соответствующий измеренной температуре, преобразуется в десятичную форму, округляется до десятых долей градуса и выводится на светодиодный индикатор HG1 в динамическом режиме. Подачей напряжения лог. 0 на один из выходов RA0, RA1 или RA2 МК включает соответствующий разряд индикатора, выводя при этом на выходы RB0-RB6 семиэлементный код отображаемой в данном разряде цифры. Управление точкой на индикаторе, отделяющей целую часть отображаемой температуры от десятичной, МК производит через выход с открытым стоком RA4. Период отображения всех трех разрядов индикатора составляет примерно 12,3 мс (частота - 81 Гц).
Так как в приборе применен трехразрядный индикатор, в интервале от -19,9 до +99,9 oС температура отображается с точностью до 0,1 °С, а в интервалах -55-20 и +100...+125°С - с точностью до 1 °С. Кроме того, в этих интервалах абсолютная погрешность измерения температуры возрастает до ±2 °С, поэтому отображение температуры с точностью до десятых долей градуса теряет смысл.
В конце каждого периода отображения информации на индикаторе МК проверяет состояние кнопок SB1 и SB2, для чего на выходах RA0—RA2 устанавливает напряжение высокого логического уровня (это соответствует отключению всех разрядов индикатора HG1), а на выходе RA4 — напряжение лог. 0. Разряды RB5, RB6 перенастраиваются на ввод, при этом к ним подключаются внутренние «подтягивающие» резисторы, соединенные с шиной питания +5 В. Таким образом, при нажатии на кнопку SB1 или SB2 высокий логический уровень напряжения на RB5, RB6 сменяется низким, что и отслеживается МК. Подключенные к этим разрядам элементы светодиодного индикатора не оказывают существенного влияния на состояние указанных входов МК, поскольку ток в обратном направлении через них пренебрежимо мал. Удержание кнопок в нажатом состоянии не влияет на работу индикаторов в период отображения информации, так как ток между выходами RA4 и RB5, RB6 через кнопки SB1, SB2 ограничен резисторами R4, R5.
Питается прибор от сети переменного тока напряжением 220 В через балластный конденсатор СЗ. Благодаря диодному мосту VD1 через стабилитрон VD2 проходят обе полуволны сетевого напряжения. В результате значительно снижаются пульсации напряжения на конденсаторе С5 и становится возможным уменьшить емкость конденсатора СЗ, от которой зависит максимальный ток, отдаваемый источником питания в нагрузку.
Времязадающая цепь R1C4R2 формирует паузу перед запуском МК, необходимую для того, чтобы после включения устройства в сеть напряжение на конденсаторах С5, С6 успело возрасти до уровня, обеспечивающего нормальную работу МК.
При включении звукового сигнала, когда вступает в работу каскад на транзисторе VT1 с включенным в его коллекторную цепь звукоизлучателем НА1, потребляемый устройством ток значительно увеличивается, поэтому в программе МК предусмотрено отключение индикатора на время подачи сигнала. Питается этот каскад энергией, накопленной в конденсаторе С5, что приводит к большим просадкам напряжения на нем. Для поддержания стабильного напряжения питания МК и датчика температуры в устройство введены интегральный стабилизатор напряжения DA1 и оксидный конденсатор большой емкости С6. Если звуковая сигнализация не нужна, микросхему DA1 и конденсатор С5 можно исключить, но в этом случае Д815Е (VD2) необходимо заменить стабилитроном Д815А с напряжением стабилизации 5,6 В.
Коды прошивки ПЗУ МК для термометра с функцией таймера приведены в табл.1. При нажатии на кнопку SB1 подается короткий звуковой сигнал и на индикаторе появляется значение оставшегося времени до подачи звукового сигнала или 0 (в младшем разряде), если время в таймере не было установлено. Требуемую выдержку времени (в пределах 1...99 мин) вводят нажатием на кнопку SB2 (не отпуская SB1). При этом показания индикатора начинают автоматически увеличиваться с частотой 2 Гц. По достижении нужного значения кнопки отпускают. Возврат к показаниям температуры происходит через 1 с после отпускания кнопки SB1. По окончании заданного времени устройство в течение 10 с подает прерывистый звуковой сигнал частотой 1500 Гц.
В табл.2 приведены коды прошивки МК, наделяющей описываемый прибор функцией управления термостатом, поддерживающим заданную температуру в контролируемой среде с точностью ±1°С. Просмотр и установка температуры (в интервале -54...+124°С) осуществляются, как и в предыдущем случае, с помощью кнопок SB1 и SB2. Заданное значение температуры сохраняется в энергонезависимой памяти данных МК и загружается из нее при каждом последующем включении устройства в сеть.
При работе устройства с термостатом сигнал для управления нагревателем или компрессором холодильника снимается с выхода RA3, при этом вместо каскада на транзисторе VT1 устанавливают оптосимисторное реле, управляющее питанием исполнительного устройства или контактора, который, в свою очередь, подключает нагреватель или компрессор к электросети. Схема возможного варианта такого реле показана на рис.2.
Рис.2.
Приведенная в табл.2 прошивка МК рассчитана на управление нагревательным элементом. К примеру, если заданная температура в термостате равна +30°С, то на выходе RA3 МК появится сигнал лог. 1 (соответствует включению нагревателя) при понижении температуры контролируемой среды ниже +29°С, но как только температура поднимется до +31°С, нагреватель будет отключен. Таким образом, гистерезис между включением и выключением нагревателя составляет 2°С. За его величину "отвечает" первый взятый в скобки байт (02) в табл.2: если его заменить на (01), гистерезис уменьшится до 1°С, а если на (03), увеличится до 3°С и т.д. Чем меньше гистерезис, тем точнее будет поддерживаться заданная температура в контролируемой среде, но чаще будут повторяться циклы включения-выключения исполнительного устройства, и наоборот.
При управлении компрессором холодильника сигнал лог. 1 на выходе RA3, включающий систему охлаждения, должен появляться, если температура превысит заданный предел, и сменяться уровнем лог. 0, как только температура опустится ниже указанного предела, опять же с учетом гистерезиса, заданного значением первого взятого в скобки байта в табл.2. Для реализации этого режима работы взятые в скобки 2, 3 и 4-й байты таблицы нужно заменить соответственно на (19), (15) и (11).
Исходные тексты программ, в том числе табл.1 и табл.2, можно скачать здесь. При программировании МК необходимо указать: тип генератора - HS, таймеры WDT и PWRT - включены.
Все детали термометра монтируют на печатной плате из двусторонне фольги-рованного стеклотекстолита (рис.3). Плата рассчитана на установку резисторов МЛТ, конденсаторов КД (С1, С2), К73-17В с номинальным напряжением 400 В (СЗ), КМ( С7) и К50-35 (остальные). Для уменьшения габаритов устройства детали устанавливают на обеих сторонах платы (там, где указаны их позиционные обозначения). В отверстия контактных площадок, помеченных на чертеже рядом стоящей точкой, при монтаже впаивают проволочные перемычки (их функцию выполняет также вывод конденсатора С7). Трехразрядный светодиодный индикатор HG1 собран из трех одноразрядных LSD3212-20 (зеленого цвета свечения) и может быть заменен любым другим с потребляемым током не более 20 мА на элемент (сегмент). Перед установкой на место выводы 12 индикаторов обрезают в непосредственной близости от корпуса.
Рис.3. Печатная плата термометра
Интегральный стабилизатор 78L05 (DA1) заменим любым другим с напряжением стабилизации +5 В. Звуковой капсюль-излучатель НА1 - любой малогабаритный с обмоткой сопротивлением 8...25 Ом (автор использовал электромагнитныйизлучатель НС0903А).
Если предполагается использовать термометр в жестких климатических условиях, оксидные конденсаторы С5 и С6 следует выбрать с расширенным температурным диапазоном (с маркировкой на корпусе (+105°С) или выше), а МК PIC16F84A - исполнения E/P обозначающего, что данная микросхема может работать при температуре от -40 до + 125 °С. Смонтированную плату термометра в этом случае помещают в герметичный пластмассовый корпус и заливают герметиком (например, эпоксидной смолой). Отверстия для кнопок с внутренней стороны заклеивают куском тонкой резины, после чего с обеих сторон получившейся резиновой мембраны, над кнопками SB1 и SB2, наклеивают пластмассовые кружки диаметром, несколько меньшим диаметра отверстий в корпусе. Таким образом обеспечивается полная изоляция элементов устройства от внешней среды. При использовании устройства в обычных условиях герметизацию можно не делать.
Размещать датчик температуры внутри корпуса термометра нельзя, так как это приведет к увеличению погрешности измерений (из-за нагрева элементов) и инерционности показаний термометра при изменении температуры окружающей среды. Одно из конструктивных решений - размещение микросхемы датчика внутри стеклянной ампулы от лекарств подходящего размера. Места выхода гибкого кабеля из ампулы и из корпуса термометра тщательно заливают герметиком. Длина трехжильного кабеля может быть от нескольких сантиметров до десятков метров.
Собранное из исправных деталей и без ошибок в монтаже устройство в налаживании не нуждается.
Автор: С.КОРЯКОВ, г.Шахты Ростовской обл.