Електронний термостат і сигналізатор температури

  • Час 30-07-2015, 19:07
  • Автор admin
  • Коментарів 0 Комент.
  • Силка url

У даній статті представлений проект електронного сигналізатора температури / термостата з використанням мікроконтролера PIC16C84 і дворядкового LCD-дисплея. На дисплеї можливе відображення температури в градусах Цельсія і Фаренгейта, а також можлива установка низької і високої точок температури для спрацьовування сигналізатора або термостата. Також, в контролер записуються досягнуті температурні мінімум і максимум.

У налаштуваннях пристрою можна змінити те, в якому режимі працюватиме прилад, або як сигналізатор, або як термостат. Відмінність в тому, що в режимі сигналізатора при перевищенні заданого ліміту температури, бипер переривчасто пищить.

Пристрій постійно отримує дані про температуру і відображає її на LCD екранчику в градусах Цельсія і Фаренгейта. Також, LCD може відображати поточну конфігурацію і параметри. До користувальницькою параметрів належать нижній і верхній межі температури, режим сигналізації (вкл. / Викл. Бипер). Ще на LCD можуть відображатися абсолютні досягнуті min і max температури.

Користувачеві надана можливість встановлювати нижній і верхній межі температури за допомогою двох кнопок UP (+) і DOWN (-). Також, користувач може стерти збережені значення досягнутих хв. і макс. значень і встановити режим сигналізатора (ввімкнути або вимкнути бипер). Незалежно від налаштувань бипера, у пристрої присутній червоний світлодіод, який спалахує при перевищенні значення температури.

Всі користувальницькі параметри зберігаються в незалежній пам'яті МК і не стираються після відключення живлення або перезавантаження пристрою.

Електронний термостат і сигналізатор температури

Пристрій складається з мікроконтролера PIC16C84, дворядкового 16-символьного LCD-екранчика, 4 кнопок і АЦП ADC0831. LCD може відображати ASCII символи. Він може працювати в 8-ми бітному режимі, що вимагає наявності 10 ліній зв'язку з мікроконтролером. Був обраний 4-бітний режим з 6 лініями зв'язку. Ці ж лінії були задіяні і для кнопок управління.

Мікросхема ADC0831 використовує 3 лінії і працює по інтерфейсу SPI / Microwire.

Як датчик температури використовується Philips 2322-640-63103 NTC з R / r ratio 9.0 і опором 10кОм при 25 °. Можна використовувати інші датчики з підходящими характеристиками. Якщо буде використовуватися датчик PT100 або з ін. Характеристикою, то необхідно буде поміняти налаштування в програмі і опір в дільнику напруги. Термістор включений в дільник напруги, опір другого резистора 10 кОм. Напруга з виходу дільника пропорційно навколишнього температурі (але не прямо пропорційно, що створює деякі проблеми конвертації напруги в градуси, у програмі)

До контролера також підключений світлодіод "Alarm". Для використання термостата, даний світлодіод замінюється на оптопару.

Електронний термостат і сигналізатор температури

Програма

Одним з основних завдань в ПО є читання значень з ADC0831. У даній АЦП використовується стандартний протокол 3-wire SPI / Microwire. Після отримання від АЦП двійкових даних температури, відбувається конвертація. Тому залежність опору термістора і температури НЕ лінійна, то для більш точного перетворення використовується таблиця значень, що містить 248 записів для діапазону температур від -50C до + 125C.

Для відображення температури в фаренгейтах використовується формула перетворення, для того, щоб не зберігати другу таблицю перетворення:
Degrees_F = 9/5 * Degrees_C + 32
Щоб було простіше працювати в двійковому коді з операціями з плаваючою комою, трохи перетворимо формулу:
Degrees_F = 29/16 * Degrees_C + 32

В іншій частині коду, міститься код для взаємодії користувача з меню та ін.

Електронний термостат і сигналізатор температури

У першій версії пристрою було відображення температури тільки в градусах Цельсія. Опрацювало воно більше року. Потім пристрій піддалося невеликій доробці та коригуванні параметрів.

У звичайному стані, на верхній сходинці екранчика відображається поточна температура, наприклад: "TEMP = 20C / 68F". На нижній сходинці LCD кожні 2 секунди по колу відображаються: досягнута мінімальна температура "Min T = 0C / 32F", максимальна "Max T = 28C / 82F", заданий користувачем макс. межа спрацьовування "Hi Lim = 1C / 33F", мінімальна межа "Lo Lim = 30C / 86F". І якщо оповіщення біпером відключено, то п'ятий рядком з'являється повідомлення "Alarm Disabled".

Якщо користувач хоче поміняти настройки, то для цього необхідно натиснути кнопку "SET", після чого він потрапляє в режим налаштувань. Першою налаштуванням виставляється верхня межа температури, на першій сходинці дисплея відображається напис "Set High Limit", на нижній - установка температури. Шляхом натискань кнопок "UP" і "DOWN" можна міняти значення. Коли настройка даного параметра закінчена, необхідно натиснути кнопку "SET" для збереження значення. Повторне натискання кнопки "SET" переведе користувача до установки наступного параметра - нижня межа температури. Налаштування відбувається подібним чином як і установка верхньої межі. Третьою опцією можна очистити досягнуті min і max температури, на дисплеї відобразиться напис "Press + To Clr", відповідно необхідно натиснути "UP / +", а потім "SET". Останнім параметром є включення або відключення бипера, натискаючи "UP / +" можна вмикати / вимикати вихід на бипер. Після того, як всі налаштування зроблені, необхідно натиснути "SET", після чого контролер збереже всі зміни в EEPROM і пристрій повернеться в звичайний режим відображення поточної температури.

Коли пристрій використовується в режимі термостата, режим оповіщення через бипер можна відключити. Червоний світлодіод (який замінюється оптопарою), загоряється при перевищенні заданого ліміту. Для коммутирования навантаження, живиться змінним струмом можна використовувати твердотільні реле (SSR).

Електронний термостат і сигналізатор температури

На фото вище показана фінальна версія пристрою з джерелом живлення і твердотілим реле.

Прикріплені файли:
  • tempalm4.rar (10 Кб)
Tags

Коментарі до новини

Календарчик

  • «    Квітень 2018    »
    ПнВтСрЧтПтСбНд
     1
    2345678
    9101112131415
    16171819202122
    23242526272829
    30 

Опитування

Оцените работу движка

Лучший из новостных
Неплохой движок
Устраивает ... но ...
Встречал и получше
Совсем не понравился