Схема. Многоточечный термометр

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

    Интервал измеряемой температуры —50…+100 °С при дискретности отсчета 1 °С. Погрешность измерения зависит от характеристик примененных датчиков, достигая в данном случае приблизительно 2 °С.
      Для уменьшения стоимости в термометре применен один трехразрядный индикатор, на который показания четырех датчиков выводятся поочередно, сменяясь раз в секунду. Номер датчика указывают десятичные точки разрядов индикатора. Когда выведены показания первого датчика, все точки погашены, второго — светится точка первого разряда слева, третьего — второго слева, четвертого — первого справа.
Схема Многоточечный термометр 1
      Схема термометра приведена на рисунке. Обратите внимание на разделение «аналогового» (AGND) и «цифрового» (DGND) общего провода. На печатной плате прибора эти цепи должны быть соединены только в одной точке — у выводов 10 и 11 АЦП DA3. Кратковременным нажатием на кнопку SB1 можно остановить циклический опрос датчиков, а повторным нажатием — возобновить его.
      Следует заметить, что микросхема ADC0838CCN работает в температурном интервале 0…+70 °С. Поэтому прибор (за исключением датчиков ВК1 — ВК4) должен находиться в среде с положительной температурой даже при измерении отрицательной. В противном случае в качестве DA3 необходимо применить микросхему ADC0838CIWM, способную работать в так называемом «индустриальном» интервале температуры -40…+85 °С. Этот фактор нужно учитывать и при выборе всех других элементов прибора.
      Индикатор HG1 — светодиодный трехразрядный BC56-12EWA, который можно заменить любым аналогичным с общим катодом. Аноды светодиодов индикатора подключены к порту В микроконтроллера. Катоды — к порту А. Динамическая индикация организована программно.
Схема Многоточечный термометр 2
      Чтобы сэкономить выводы микроконтроллера, цепи катодов индикатора совмещены с цепями управления АЦП. Когда работает индикатор, АЦП высоким логическим уровнем на входе CS переведен в пассивное состояние. При обращении микроконтроллера к АЦП на всех линиях порта В установлен низкий логический уровень, светодиоды погашены и не влияют на взаимодействие микроконтроллера с АЦП. Все это происходит достаточно быстро, чтобы мигание индикатора было незаметным.

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

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

      Программа написана на языке ассемблера TESSA (   www.angstrem.ru/pdf/1878/tessa/tessa.exe   ). Результат трансляции в версии, обслуживающей четыре датчика, приведен в таблице. Его загружают в память программ микроконтроллера с помощью одной из утилит, имеющихся в самораспаковывающемся архиве    www.angstrem.ru/pdf/1878/soft/soft.exe   . С ними можно использовать адаптер, схема которого есть в том же архиве или описанный в [4]. В последнем вывод 1 микросхемы DD1 должен быть соединен не с общим проводом, а с цепью питания (выв. 20 той же микросхемы).

Вот фрагмент программы, в котором задается поправка к показаниям датчиков:
          . . .
Termo: push    #A
            Idr       #A, 068h
          movl      d0, 74
          . . .

      Константа 74 в последней команде — число, которое микроконтроллер в дальнейшем вычитает из результата аналого-цифрового преобразования, чтобы получить значение температуры в градусах Цельсия. Каждая единица этой константы уменьшает показания термометра на один градус.
      Если подстроить «ноль» термометра необходимо, но нет возможности изменить константу в исходном тексте и оттранслировать программу заново, можно внести поправку напрямую в загружаемый в память микроконтроллера код. Нужная команда movl d0, 74 занимает в нем байты с адресами 384Н и 385Н, в таблице — выделенные цветом.
      Подлежащая корректировке константа «распределена» между байтами следующим образом:
Схема Многоточечный термометр 3

      Допустим, требуется «сместить» показания термометра на 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, или изменением программы.

Прилагаемые файлы:   adct.zip

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

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

Похожие статьи:
Цифровой термометр
Микроконтроллерный модуль
Барометр и термометр на ATmega8

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *