Электронный комнатный термометр

22.02.14
21721 1 4
Электронный комнатный термометр

Введение

Однажды мне попался на глаза электронный комнатный термометр и возникла идея сделать аналогичный цифровой термометр с выносным датчиком. Температура в помещении играет очень важную роль в определении человеческого теплового комфорта. Рассматриваемая схема цифрового термометра предназначена для измерения комнатной температуры и отображения ее значений на ЖК-экране в градусах Цельсия и Фаренгейта. В качестве главного контроллера электронного комнатного термометра используется микрочип PIC16F688, который считывает температуру с 3-контактного цифрового датчика температуры DS1820. Датчик такого типа предназначен для измерения температуры от -55 до +125 ° С с шагом в 0,5 ° C. Понятно, что температура в жилом помещении не выйдет за пределы его измерений, хотя прошивка написана с учетом всего температурного диапазона термодатчика DS1820. Испытания схемы проводились в диапазоне температур от -4,5 ° C (температура в морозильнике) до 105,5 ° C (температура паяльника рядом с жалом).

Если вы хотите использовать схему цифрового термометра для измерения отрицательных температур, обязательно учтите, что некоторые из компонентов, например ЖК-дисплей, не работоспособны при отрицательных температурах. Хотя можно вынести в зону отрицательной температуры только один датчик и соединить его с остальной схемой тремя проводами.

О датчике DS1820

Для лучшего понимания того, как работает датчик DS1820, рекомендую ознакомиться с его описанием, которое можно скачать по ссылке в конце статьи.

Обратите внимание, что датчики температуры DS1820 и DS18B20 имеют архитектурные различия, таким образом, DS18B20 не будет работать в данной схеме цифрового термометра с выносным датчиком. Этот электронный комнатный термометр разработан под датчик DS1820, но он будет работать и с DS18S20 (более поздней версией DS1820). Но для этого необходимо внести изменения в прошивку в части времени преобразования температуры.

Температура считывается с DS1820 в виде 9-бит микроконтроллером PIC16F688 по два байта (TempH и TempL), а затем объединяются в одно 2-байтное целое число. Для того чтобы избежать плавающей точки при преобразовании значения температуры градусов С в F, измеряемое значение сначала умножается на 10. Например, 24,5 C становится 245. Теперь довольно легко преобразовать С в F.

Температура в F = 9 * Температура в C / 5 + 320 = 761 (т.е. 76,1 F)

Отрицательная температура считывается по второй форме, так, если старший бит показаний температуры с датчика DS1820 равен 1, это означает, что измеряемая температура ниже 0° C. Прошивка позволяет просчитывать все отрицательные значения температур (как в ° C, так и F). Рассчитанная температура отображается на ЖК-дисплее, как 4-значное число с запятой строк, xxx.x (например, 24,5, 101,0, -12,5 и т.д.).

Схема

Микроконтроллер PIC16F688 считывает данные с датчика DS1820 через порт RA5, и через порты RC0-RC3 передает рассчитанную температуру на ЖК-дисплей. Это означает, что передача данных с PIC на ЖК происходит в 4-битном режиме. Регистр сигналов выбирается (RS) и включается (E) для ЖК-дисплея через порты RC4 и RC5. Контакты ЖК Чтение/Запись заземлены, так как не используются в данной схеме. Контрастность ЖК регулируется подстроечным резистором 10K показанным на схеме.

На схеме цифрового термометра присутствуют две кнопки, подключенные к входам микроконтроллера. Первая «Сброс», которая осуществляет сброс отображаемых данных. Вторая, предназначена для управления подсветкой электронного комнатного термометра. При недостаточном освещении можно включить подсветку ЖК-дисплея кнопкой «Подсветка». Программа микроконтроллера предусматривает, что при первом включении электронного комнатного термометра с выносным датчиком подсветка будет включена. Для отключения воспользуйтесь кнопкой «Подсветка».

Схема цифрового термометра

Предварительно схема была собрана на макетной плате для проверки ее работоспособности и отладки.

Полная схема на макетной плате

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

 Схема источника питания 5В

Или более продвинутым вариантом этой схемы, о которой можно прочесть в статье: Схема простого блока питания 5В 1А

Микропрограмма

Микропрограмма была разработана для mikroC компилятора. Встроенные в DS1820 библиотеки значительно облегчают разработку прошивки. Приведенный в конце статьи код программы имеет достаточное количество комментариев, так что для читателя не будет особых трудностей в понимании логики работы электронного комнатного термометра.

Примеры работы электронного комнатного термометра

Подсветка включена:

Пример работы электронного комнатного термометра (подсветка включена)

Подсветка выключена:

Пример работы электронного комнатного термометра (подсветка выключена)

Температура в холодильнике:

Пример работы электронного комнатного термометра (температура в холодильнике)

Температура паяльника:

Пример работы электронного комнатного термометра (температура паяльника)

Схема электронного термометра с датчиком проверена и признана вполне работоспособной. Все, что осталось - развести монтажную плату, изготовить ее и перенести на нее компоненты. Ну и конечно подобрать для электронного термометра соответствующий корпус. Датчик можно поместить в корпус, но лучше сделать его выносным, что позволит избежать погрешностей, вызванных нагревом элементов цифрового термометра, а также разместить дисплей в более удобном для мониторинга месте.

Ну а пока пользуемся электронным термометром с выносным датчиком в том виде в котором он собран.

Электронный комнатный термометр

Список файлов

ds1820.pdf

Описание датчика температуры DS1820

  • Загрузок: 290
  • Размер: 153 Kb

k_termometr.zip

Прошивка микроконтроллера электронного комнатного термометра

  • Загрузок: 205
  • Размер: 4 Kb
Оцените статью
1 1 1 1 1 Рейтинг 4.00 (4 Голоса)

Комментарии  

abomin
#1 abomin
28.12.2020 08:21
0
0
Здравствуйте!

Хорошая статья, спасибо! А можно ли использовать другой PIC? В частности, PIC16F628? Или что-то надо в программе менять?

чтобы комментировать