Главная Термометры на PIC контроллерах Цифровой термометр с аналоговым датчиком
Гарантия низких цен

Цифровой термометр с аналоговым датчиком

Рейтинг пользователей: / 0
ХудшийЛучший 

В рамках этого проекта был разработан комнатный цифровой термометр, который может измерять температуру в диапазоне от 0 - 50 ° C или 32 - 124 ° F. Переключение показаний по Цельсию или по Фаренгейту осуществляется кнопкой. Температура отображается с разрешением 0,5 ° C на 4-разрядном светодиодном индикаторе. В режиме отображения по Фаренгейту разрешение - 1 ° F.

Схема

Принципиальная схема цифрового термометра с аналоговым датчиком

Теория

В устройстве применен датчик температуры LM60, который обеспечивает напряжение на выходе, которое изменяется линейно в зависимости от температуры в диапазоне от -40 ° C  до  120 ° С. Напряжение на выходе датчика в милливольтах является функцией температуры:

V (мВ) = 424 + 6,25 · T

Из этого выражения определяем чему будет равна температура:

Т = 4 ° (V - 424) / 25

Для нашего температурного  диапазона  от 0  до  52 ° C,  напряжение выходного сигнала датчика будет находится в диапазоне от 424mV  до 749mV. Это напряжение должно быть преобразовано в цифровое представление для дальнейшей обработки. Для этой цели мы используем встроенный ЦАП в PIC16F684 с опорного напряжения 5В. Следовательно, мы должны преобразовать диапазон выходных напряжений датчика (424 - 749mV)  в напряжение 0 - 5000mV. Если мы обозначим через Y напряжения на входе ЦАП, формула принимает вид

Y (мВ) = (V (мВ) - 424) · 5000 / 325

Хотя АЦП контроллера обеспечивает 10-битное разрешение, мы отбросим два младших бита, чтобы избавиться от цифрового шума. Тогда напряжение измеренное АЦП контроллера будет равно:

Y = 5000 · Z / 255, где Z - количество дискрет АЦП.

Из двух последних уравнений получаем

5000 ° Z / 255 = (V - 424) · 5000 / 325

Решая уравнение для V получаем

V = 325 · Z / 255 + 424

Наконец, подставляя это V во второе уравнение даст следующую зависимость между значением АЦП Z и измеренной температурой T

T = 0,2 · Z

Это очень приятно, потому что уравнение можно переписать в виде 10 · T = 2 · Z. Другими словами, если мы собираемся измерять температуру с десятыми, то умножая T на 10 получим целое число. А умножить значение АЦП в PIC контроллере очень просто с помощью операции сдвига влево.

 

Аналоговая схема

 

 

 

 

 

 

 

 

 

Для того, чтобы преобразовать диапазон выходных напряжение датчика [424mV - 749mV] в диапазон входных напряжений АЦП контроллера [0 - 5000mV], необходимо использовать аналоговую схему усиления.

Преобразования осуществляется двумя операционными усилителями (ОУ). Первый  инвертирует напряжение датчика. Второй ОУ реализует формулу перевода

Y (мВ) = (V - 424) · 5000 / 325 = V • 5000 / 325 - 424 · 5000 / 325.

Первый член в этом уравнении осуществляется путем выбора отношение R3 / R1 (см. схему) для 5000 / 325. Значения R1quot;, = 3K3 и R3 = 51K имеет примерно необходимое соотношении. Второе слагаемое в уравнении осуществляется резисторами R2 и R3. Так как R2 подключен к +5 В, его сопротивление удовлетворяет уравнению R3 · 5000 (мВ) / R2 = 424 · 5000 / 325, отсюда R2 = 39K.

Использование ОУ требует биполярное напряжения питания. Это напряжение должно превышать 5 В для того чтобы операционный усилитель мог формировать напряжение  до 5 В. включительно. Для этого питание осуществляется от источника питания +7,5 В., а отрицательное напряжение -7.5 В.  формируется с помощью  DC / DC преобразователя на TC7660. Все другие микросхемы и дисплей питаются от стабилизированного напряжения +5В., формируемого  линейным стабилизатором на 7805.

 

 

 

 

 

 

 

 

 

Цифровая схема

 

Примененный микроконтроллер PIC16F684 не имеет достаточного количества выходов для управления индикатором . Для решения этой проблемы используется мультиплексор на 74HC138. Мультиплексор используется для управления разрядами индикатора. Поскольку выход мультиплексора инверсный, то для управления индикаторами требуется еще по два транзистора на каждую цифру (нагрузочная способность мультиплексора не позволяет осуществить управление индикаторов напрямую). Эта часть схемы может быть упрощена путем выбора соответствующего мультиплексора и/или индикатора с общим катодом.

Весь порт C и два вывода порта A используются для управления сегментами индикаторов и десятичной точкой. Выводы RA1 и RA2 осуществляют управление мультиплексором, обеспечивая выбор цифры для индикации. Вывод RA3 осуществляет опрос кнопки, а вывод RA0 является аналоговым входом для считывания информации с датчика температуры.

 

 

 

 

 

 

 

 

 

Программное обеспечение

 

 

 

 

 

 

 

 

 

Период опроса датчика составляет примерно 2 секунды и обеспечивается таймером TMR1. Как только происходит переполнение таймера, генерируется запрос на прерывание, целью которой является получение новых данных с АЦП. На самом деле, переполнение таймера TMR1 происходит через каждые 0,5 секунд, и после отсчета 4-х таких событий, происходит чтение данных с АЦП.

После чтения нового значения, осуществляется процедура усреднения с 3-мя предыдущими отсчетами. Это делается для уменьшения возможного "скакания" цифр. Процедура усреднения также осуществляет округление до ближайшего целого значения.

Вывод значения на индикатор осуществляется в основном цикле программы. Каждая цифра отображается в течении 4-х мс. для уменьшения мерцания дисплея. Цифры отображаются слева направо. и незначащие нули тушатся. Если цифра десятых долей  в режиме Цельсия равна 0, она не отображается вместе с десятичной точкой.

Основной цикл начинается с проверки кнопку режима отображения температуры. Пока она нажата, программа ждет ее отпускания. Это необходимо для предотвращения дребезга контактов и быстрого переключение между режимами "C" и "F".

Преобразование из градусов Цельсия в Фаренгейты осуществляется табличным способом и эта таблица храниться в EEPROM контроллера.

Отображения информации в режиме "С"

Отображение температуры в режиме "F"

 

 

 

 

 

 

 

 

 

Оригинал статьи на английском языке находиться на сайте автора: http://mcs.uwsuper.edu/sb/Electronics/TempAN.

 

quot;timesfont-family:

Скачать:
Скачать этот файл (schema1.png)shema.png[Принципиальная схема устройства в большем разрешении]35 Kb
Скачать этот файл (tempAn.asm)tempAn.asm[Исходный текст программы цифрового термометра с аналоговым датчиком]9 Kb
 

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


Защитный код
Обновить

Find the Best Web Hosting which offers reliable service and top quality support
Реклама
Яндекс.Метрика