В качестве датчиков температуры удобнее всего использовать наиболее распространенные на сегодняшний день микросхемы разработки компании Dallas Semiconductor (ныне — подразделение Maxim Integrated) DS1821 или DS18S20, стоимость которых на российском рынке радиоэлементов составляет всего лишь около 2 долларов. Микросхемы объединяются параллельно в трехпроводную или даже двухпроводную линию (с «паразитным» питанием) и работают в соответствии с протоколом 1-Wire [1].
Указанные микросхемы питаются положительным постоянным напряжением от 3 до 5,5 В. Ток потребления в режиме ожидания составляет менее 1 мкА, в режиме измерения (преобразования) температуры — около 1 мА. Поэтому микросхемы, даже при относительно большом их числе, могут питаться от источника питания компьютера через выводы его портов.
В дальнейшем, при построении схемы и алгоритма работы программы для измерения температуры, мы будем исходить из того, что выполняется измерение одного лабораторного образца, и число чувствительных элементов (микросхем цифровых термометров) равно двум. Полная электрическая принципиальная схема такого термометра вместе с адаптером для СОМ-порта изображена на рисунке 1.
Рис. 1. Схема подключения датчиков и адаптер для СОМ-порта
Однопроводная шина данных и ПК имеют общую «землю», а для питания микросхем цифровых термометров используется линия DTR последовательного порта. Нумерация контактов разъемов показана вначале для 25-выводного разъема (/25), а следом — для 9-выводного (/9). Применение малогабаритных элементов позволяет смонтировать плату адаптера непосредственно в корпусе разъема. Спецификация протокола RS-232С здесь реализована не вполне строго — на входе RXD формируются лишь однополярные уровни. Однако большинство ПК оснащены портами, которые нормально работают и с такими уровнями. Вместо указанных на схеме рис. 1 п-канальных МОП транзисторов можно применить полевые транзисторы других типов, близкие по параметрам, например, BSS138, либо отечественные серий КП501 или КП505.
Сопряжение цифровых термометров с персональным компьютером через USB-порт реализуется несколько сложнее, но такой адаптер легко выполнить на готовых и недорогих покупных узлах, например, с использованием платы AVR-USB-MEGA16 [2]. На рисунке 2 красным цветом выделена необходимая доработка принципиальной схемы упомянутой платы для подключения двух микросхем термометров по технологии 1-Wire. Сигнальная линия шины подключена к выводу 1 порта B (PB1).
Программная реализация USB-адаптера уже вшита в микропроцессор платы при ее изготовлении. Остается выполнить небольшую доработку программного кода для того, чтобы адаптер «видел» микросхемы DS1821. Интерфейс 1-Wire и его программная реализация на микроконтроллерах AVR достаточно хорошо описаны в литературе и не требуют специального освещения в рамках данной статьи. Код прошивается непосредственно с ПК, никакой внешний программатор в данном случае не нужен.
На плате AVR-USB-MEGA16 существуют свободные контактные площадки, куда не составляет труда смонтировать две выделенные на рис. 2 красным детали — резистор и разъем для подключения микросхем, которое выполняется аналогично рис. 1 [3].
Рис. 2. Принципиальная схема платы плате AVR-USB-MEGA16 и ее модернизация
Для составления алгоритма обработки сигналов микросхем датчиков в ПК вначале остановимся на особенностях их работы.
Термометр DS1821 (DS18S20) уже откалиброван на заводе, гарантированная заводская точность измерения температуры составляет ±0,5 °С (в диапазоне –10... +85 °C) и не может быть увеличена аппаратным путем, но допускает повышение программными средствами благодаря применяемому алгоритму преобразования температуры. Типичная кривая ошибки измерения температуры представлена на рисунке 3 [1].
Рис. 3. Типичная кривая ошибки измерения температуры для DS18S20
Температура в датчиках группы DS18… измеряется путем подсчета количества импульсов, выдаваемых генератором с низким температурным коэффициентом изменения частоты за время, устанавливаемое генератором с высоким температурным коэффициентом. Зависимость частот генераторов от температуры имеет параболическую форму, поэтому внутри кристалла термометра формируется специальная схема линеаризации характеристики (формирования ее наклона). Цикл преобразования довольно сложен и для данного рассмотрения непринципиален. Нам важно, что по окончании процесса преобразования регистр температуры микросхемы будет содержать ее измеренное значение. В счетчике в конце цикла остается значение COUNT_REMAIN, а схема линеаризации для каждого значения температуры выдает значение COUNT_PER_C — количество импульсов, приходящихся на один градус (эти значения могут по определенным командам быть выведены на выход данных). Алгоритм увеличения точности вычислений заключается в следующем: вначале от измеренного значения температуры отбрасывается младший бит, в результате получается переменная TEMP_READ, а затем в ПК производятся дополнительные вычисления по формуле
TEMPERATURE = TEMP_READ — 0,25 +
+ (COUNT_PER_C — COUNT_REMAIN) / COUNT_PER_C(1)
С другой стороны, при ограниченной абсолютной точности измерений, иногда полезно иметь как можно меньшую дискретность представления температуры. В лабораторном эксперименте это важно, если измерения носят относительный характер. В данном случае можно применить другую микросхему серии, DS18B20, которая, в отличие от упомянутых выше, выдает значение температуры не только в виде 9-битного двоичного числа, но позволяет получать и 12-битный результат. Правда, в ней отсутствует возможность выводить необходимые для вычислений по формуле (1) данные.
Каждый экземпляр микросхем DS18х20 имеет уникальный адресный номер длиной 48 бит, который записывается во встроенное ПЗУ в процессе производства кристалла и никогда не повторяется. Так, считывая по команде этот код в ПК, можно производить адресацию каждой микросхемы (в нашем случае — одной из двух), измеряя только ее температуру или последовательно опрашивая группу датчиков.
После того, как мы ознакомились со всеми требуемыми сведениями относительно работы микросхем цифровых термометров, несложно составить алгоритм программы на ПК, которая будет выполнять все необходимые опросы, выдавать команды, считывать данные и проводить вычисления. Алгоритм прозрачен и, по нашему мнению, не требует дополнительного описания. Он касается режима прямого измерения температур и их разностей (без калибровки и вычисления постоянных коэффициентов, с применением формулы (1)) и представлен на рисунке 4.
Рис. 4. Блок-схема алгоритма обработки сигналов датчиков
Разработанный измеритель для лабораторных высокотемпературных измерений низкотемпературными датчиками обладает рядом практических преимуществ по сравнению с традиционными методами измерения высоких температур при помощи термопар или пирометров. Применение метода показывает его высокую точность, простоту измерения и короткое время, требуемое для установления и снятия показаний. Несомненным плюсом является и низкая стоимость прибора, состоящего из нескольких электронных компонентов или блоков общего применения и небольшого металлического цилиндра, а также любого бытового ПК или ноутбука для обработки и записи показаний с минимальными системными требованиями.
Помимо лабораторного измерения температуры образцов, данный измеритель применим во всех случаях, когда необходимо обеспечить периодическое измерение температуры в области 200–400 °C и даже более.
Литература:
- Ридико Л. И. Компьютерный термометр с датчиками DS18S20/B20. [Электронный ресурс]. — Режим доступа: http://www.digit-el.com/files/
- Макетная плата AVR-USB-MEGA16. / Администрация сайта Microsin.net. [Электронный ресурс]. — Режим доступа: http://microsin.net/programming/
- Кухтецкий С. В. AVR-USB-MEGA16: измеряем и контролируем температуру. [Электронный ресурс]. — Режим доступа: http://microsin.net/programming/