E-mail: avrdoc@yandex.ru |
|
Цифровой термометр на LM35 с диапазоном +90 ... -50 С
В Интернете можно найти множество простых схем цифровых термометров, использующих широко распространенный в наше время и довольно популярный датчик температуры LM35. Популярность этого датчика объясняется многими причинами. Ниже приведены его основные характеристики:
Для большого числа разнообразных применений, учитывая низкую стоимость, распространенность и простоту включения, LM35 - совсем неплохой выбор.
На нашем сайте тоже есть вариант такого термометра (Простой цифровой термометр), схема которого была первоначально опубликована на сайте http://www.voltsandbytes.com . К сожалению, этот термометр, как и многие аналогичные при всей своей простоте имеет один существенный недостаток. Он не умеет измерять отрицательные температуры. Дело в том, что для измерения отрицательных температур LM35 требует либо биполярного питания (рис.1) либо применения специальной схемы с измерением дифференциального сигнала (рис. 2).
И та и другая схемы, мягко говоря, не совсем удобны для подключения к микроконтроллеру. В первом случае схема измерения должна уметь измерять отрицательные напряжения, соответствующие отрицательным температурам, а это требует дополнительных затрат. Во втором случае дело обстоит проще, но под рукой должен быть микроконтроллер, имеющий АЦП с дифференциальным входом (например, ATTiny261). При этом расходуется два входа АЦП микроконтроллера. Предлагаемая мною схема цифрового термометра является логическим развитием Простого Цифрового Термометра (вернее, его версии на ATTiny261). Она использует несколько измененный вариант включения LM35 с дифференциальным выходом. Изменение схемы включения было произведено с целью уйти от применения дифференциального выхода. Схема включения LM35 приведена на рис. 3.
Как видно из рисунка, выходной сигнал измеряется (вольтметром) относительно общего провода. Резистор R1 и транзистор Q1(включенный как диод) образуют схему смещения уровня вывода GND датчика температуры или схему «расщепления» питания. При этом потенциал нижнего вывода резистора R2 оказывается отрицательным по отношению к GND LM35 и, датчик может работать как с положительными, так и с отрицательными температурами. Измерение выходного сигнала, как уже говорилось выше, осуществляется относительного общего провода питания. При нулевом значении температуры выходное напряжение составляет 0.69В (при использовании транзистора BC857A). Снижение температуры ниже нуля вызывает уменьшение выходного напряжения (10 мВ на 1 ºС). Подъем температуры выше нуля приводит к росту выходного напряжения. Схема термометра приведена на рис.4.
Рисунок 4. Схема цифрового термометра.
Сигнал с датчика температуры подается непосредственно на вход АЦП микроконтроллера. В качестве источника опорного напряжения микроконтроллера служит внутренний источник с напряжением 2,56 В. Используется 10 бит АЦП. Это позволяет получить дискретность измерения температуры 0,25 ºС. И, хотя, в данном варианте термометра на индикацию выводятся десятые доли градуса, большого смысла в этом нет, так как уже «инструментальная» погрешность измерения (без учета погрешности самого датчика) в силу ограниченности разрядной сетки АЦП уже больше 0.25 ºС.
Исходный код программы (для CodeVision AVR v1.25.9 и ниже), схема термометра и проект для Proteus находятся в файле Digital_thermometer_with_LM35.rar
Данная разработка не претендует на полноту и была сделана с целью показать один из вариантов работы с датчиком температуры LM35. Любые изменения, доработки и т.п., а также вопросы (пока только через avrdoc@yandex.ru) приветствуются.
|