САЙТ КРЫЛОВА ПАВЛА
Главная
Схемы Ветрогенераторы Собаки Стройка Книги О сельском хозяйстве и прочем


О сельском хозяйстве---->
Механизация и автоматизация сельского хозяйства

Многоточечный термометр

А. БАЛАХТАРЬ, г. Первоуральск Свердловской обл.

Предлагаемый микроконтроллерный термометр был предназначен автором для постоянного наблюдения за температурой нескольких наиболее нагретых элементов в системном блоке компьютера, не охваченных встроенной системой контроля. Это позволяет своевременно принять решение о включении или выключении дополнительного вентилятора. Прибор можно с успехом использовать и для измерения температуры других объектов.

Основные элементы термометра — микроконтроллер КР1878ВЕ1 и АЦП ADC0838CCN. Подробное описание микроконтроллера можно найти на интернет-сайте производителя [1]. Микросхема ADC0838CCN представляет собой восьмиканальный восьмиразрядный АЦП с последовательным цифровым интерфейсом. Она принадлежит к семейству аналогичных микросхем [2], различающихся числом мультиплексируемых аналоговых входов. О взаимодействии таких АЦП с микроконтроллером рассказано в [3].

В данном случае использованы четыре из восьми канала АЦП, настроенных на работу в псевдодифференциальном режиме с общим инвертирующим входом и раздельными неинвертирующими выходами.

многоточечный термометр



Интервал измеряемой температуры --50...+100°С при дискретности 1 °С. Погрешность измерения зависит от характеристик примененных датчиков достигая в данном случае приблизительно 2°C.

Для уменьшения стоимости в термометре применён один трехразрядный индикатор на который показания четырёх датчиков выводятся поочередно, приблизительно раз в секунду. Номер датчика указывают десятичные точки разрядов индикатора. Когда выведены показания первого датчика все точки погашены, второго-светится точка первого разряда , третьего — второго слева, четвёртого первого справа. Схема прибора приведена на рисунке. Обратите внимание на разделение аналогового (AGND) и "цифрового" (DGND) общего провода. На печатной плате прибора эти цепи должны быть соединены только в одной точке — у выводов 10 и 11 АЦП DA3. Кратковременным нажатием на кнопку SB1 можно остановить циклический опрос датчиков, а повторным нажатием — возобновить его.

Следует заметить, что микросхема ADC0838CCN работает в температурном интервале 0...+70 °С. Поэтому прибор (за исключением датчиков ВК1 — ВК4) должен находиться в среде с положительной температурой даже при измерении отрицательной. В противном случае в качестве DA3 необходимо применить микросхему ADC0838CIWM, способную работать в так называемом "индустриальном" интервале температуры -40...+85 °С. Этот фактор нужно учитывать и при выборе всех других элементов прибора.

Индикатор HG1 — светодиодный трехразрядный BC56-12EWA, который можно заменить любым аналогичным с общим катодом. Аноды светодиодов индикатора подключены к порту В микроконтроллера. Катоды — к порту А. Динамическая индикация организована программно.

Чтобы сэкономить выводы микроконтроллера, цепи катодов индикатора совмещены с цепями управления АЦП. Когда работает индикатор, АЦП высоким логическим уровнем на входе CS переведен в пассивное состояние. При обращении микроконтроллера к АЦП на всех линиях порта В установлен низкий логический уровень, светодиоды погашены и не влияют на взаимодействие микроконтроллера с АЦП. Все это происходит достаточно быстро, чтобы мигание индикатора было незаметным.

Датчики LM335Z (ВК1 —ВК4) — своеобразные аналоги стабилитрона с линейной зависимостью напряжения стабилизации от температуры. Его значение в милливольтах, деленное на 10, численно равно температуре кристалла датчика в Кельвинах (2730 мВ при 0 °С). Чтобы обеспечить хорошую теплопередачу и уменьшить погрешность, датчик необходимо плотно прижать к контролируемому объекту, смазав место контакта теплопроводной пастой. Можно и приклеить датчик к объекту теплопроводным клеем. Так как АЦП восьмиразрядный, установив на его входе VREF образцовое напряжение 2550 мВ, получим шаг квантования 10 мВ. Это обеспечивает численное равенство результата преобразования температуре в градусах Цельсия (с учетом смещения) и избавляет от необходимости программно масштабировать результат.



Для полного использования динамического диапазона АЦП разность значений напряжения между любым его аналоговым входом (выходом датчика) и общим для всех каналов инвертирующим входом (СОМ) должна быть положительной и не превышать образцовое напряжение. В интервале температуры -50...+100 °С (223...373 К) это условие будет выполнено при напряжении на входе СОМ от 1180 (3730 - 2550) до 2230 мВ.

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

многоточечный термометр

Его загружают в память программ микроконтроллера с помощью одной из утилит, имеющихся в самораспаковывающемся архиве . С ними можно использовать адаптер, схема которого есть в том же архиве или описанный в [4]. В последнем вывод 1 микросхемы DD1 должен быть соединен не с общим проводом, а с цепью питания (выв. 20 той же микросхемы).

Вот фрагмент программы, в котором задается поправка к показаниям датчиков: Константа 74 в последней команде — число, которое микроконтроллер в дальнейшем вычитает из результата аналого-цифрового преобразования, чтобы получить значение температуры в градусах Цельсия. Каждая единица этой константы уменьшает показания термометра на один градус.

многоточечный термометр



Если подстроить "ноль" термометра необходимо, но нет возможности изменить константу в исходном тексте и оттранслировать программу заново, можно внести поправку напрямую в загружаемый в память микроконтроллера код. Нужная команда movl d0, 74 занимает в нем байты с адресами 384Н и 385Н, в таблице — выделенные цветом.

Подлежащая корректировке константа "распределена" между байтами следующим образом:

многоточечный термометр



Допустим, требуется "сместить" показания термометра на 23 °С вверх, для чего уменьшить константу 74 до 74-23=51 (00110011 в двоичной системе счисления). Записав пять старших двоичных разрядов этого числа в младшие разряды байта по адресу 385Н, а оставшиеся — в три старших разряда байта по адресу 384Н, получим нужный результат, код команды movl d0, 51 (0100011001111000).

Есть еще один вариант корректировки нуля, не требующий вмешательства в программу. Достаточно заменить резистор R6 подстроечным (желательно многооборотным, например, СП5-2) номиналом 5,1 кОм и с его помощью добиться правильных показаний.

Кроме LM335 в термометре могут работать и другие датчики. Например, установка К1019ЕМ1 без какого-либо вмешательства в программу поднимет верхнюю измеряемую температуру до +125 °С. Однако резисторы R1, R2, R5, R7 придется заменить источниками тока 1 мА.

Датчики AD22100 потребуют питания напряжением 5 В, которое можно взять с выхода стабилизатора DA1. Но крутизна преобразования температуры в напряжение у них в 2,25 раза больше. Это необходимо учесть введением делителей напряжения между выходами датчиков и входами АЦП, повышением образцового напряжения, подаваемого на вывод 12 DA3, или изменением программы.

ЛИТЕРАТУРА
1. Восьмиразрядный RISC микроконтроллер КР1878ВЕ1. — www.angstrem.ru/ product/rise.htm.
2. 8-Bit Serial I/O A/D Converter with Multiplexer Option. — http://www.national.com/ ds.cgi/AD/ADC0831 .pdf
3. A/D Converters Easily Interface with 70 Series Microprocessors. — http:// www.national.com/an/AN/AN-280.pdf.
4. Балахтарь А. Программатор с питанием от LPT-порта для КР1878ВЕ1. — Радио, 2004, № 1, с. 29, 30.

Oт редакции на нашем FTP-сервере по адресу ftp://ftp.radio.ru/pub/2005/04/ adct.zip имеются исходный текст программы термометра на языке ассемблера и файлы программирования микроконтроллера, рассчитанные на обслуживание одного, двух, трех и четырех датчиков.
Редактор — А. Долгий, графика — А. Долгий



Радио №4 2005 год

Дополнение к статье.

многоточечный термометр


altay-krylov@yandex.ru