Как сделать простой терморегулятор

pict_sch.gif (3614 bytes) Cхема в формате ACCEL EDA 14. (архив ZIP)
pict_prg.gif (5779 bytes) Заголовочный файл программы.
Исходный текст программы. Для компилятора MPASM v02.20
Программа генерации табличных данных для терморезисторов в формате MathCad Plus 5.0
Входной файл для генерации таблиц   По техническому описанию термистора 2322-640-54104
Результаты тестовых измерений в виде нескольких выборок по 1000 отсч. показаний измерительного таймера. Формат Excel 97. (архив ZIP)

Цель разработки - обеспечить минимальную стоимость при точности поддержания температуры около 0.1 град. в диапазоне от 1 до 20 град.  Корпус герметичный и минимум элементов управления. Присутствие дополнительного датчика перегрева компрессора и аварийное отключение установки. (Технические характеристики были обусловлены спецификой заказа)
При указанной точности класический вариант с цифровыми датчиками от DALLAS не мог быть использован. За основу был взят документ AN512 “Implementing Ohmeter/Temperature Sensor” с сайта фирмы MICROCHIP. Измерительный элемент был выбран по каталогу  FARNELL http://www.farnell.com . В данном случае были применены термисторы с отрицательным температурным коэффицентом ( NTC Thermistors ) фирмы “Philips” с маркировкой 2322-640-54104 имеющие сопротивление 100 Ком при температуре 25 град. С. http://www.passives.comp.philips.com/ . Термисторы надежно работают в диапазоне от –40 град. С до +125 град. С и обеспечивают точность 2%.

Микроконтроллер был выбран  функционально избыточный имея ввиду дальнейшее развитие прибора. Для измерения сопротивления используется Capture-модуль микроконтроллера способный запоминать значение 16-и разрядного счетчика в момент поступления внешнего сигнала. Это позволяет аппаратно реализовать измерение методом интегрирования.

Измерение сопротивления терморезисторов состоит из следующих этапов.

  1. Разряд конденсатора C1 через резистор R2 подачей логического нуля на вывод RC2 DD1.

  2. Перевод RC0,RC1 в высокоимпедансное состояние, подача лог.1 на RA5.   RC2 программируется как вход Capture-модуля, запускается внутренний счетчик.

  3. Напряжение на конденсаторе плавно возрастает и, когда его уровень превысит границу приблизительно 3 В , происходит срабатывание Capture-модуля, запоминается содержимое счетчика.

  4. Повтор пунктов 1..3 , но лог. 1 подается на RC0 .(заряд через датчик температуры)

  5. Повтор пунктов 1..3 , но лог. 1 подается на RC1 .(заряд через датчик перегрева)

Поскольку отношение длительностей заряда конденсатора до заданного уровня равно отношению сопротивлений через которые он заряжался, то имея известной величину сопротивления резистора R1 нетрудно вычислить и сопротивление терморезисторов RT1 и RT2.
Температерная характеристика термисторов является нелинейной и лишь приближенно описывается функцией R=A*exp(B/T), где R-сопротивление , T-температура (град. K), B-константа указываемая в технической документации ( для примененных термисторов равна 4190 ) , A – константа определяемая на основании значения B, и учитывая что R при 25 град. C = 100 Ком. Для преобразования сопротивления в температуру в программе используется таблица построенная по 64 точкам с линейной интерполяцией в интервалах.

Внешние управляющие цепи прибора не детализируются поскольку существует масса стандартных решений и остаются на выбор разработчика.

Схема первого варианта приведена ниже. Несмотря на подозрительную простоту прибор с помощью многократного усреднения достаточно стабильно показывает три знака температуры. Характеристики следующие:

Кнопка 1 устанавливает диаппазон (циклическая прокрутка ). Кнопка 2 показ перегрева и сброс сработавшей защиты.
Существенная особенность в значительной инерционности вследствии многократных процедер усреднения.

thermo_wmf.gif (11095 bytes)
Автор проекта: Александр Елисеев (E-mail: ea@eunet.lt)