Термостат на PIC16F877A і LCD NOKIA 3310
Ця схема термостата буде цікава тим, у кого виникла необхідність встановити певну температуру в приміщенні та підтримувати її протягом тривалого часу. Схема не складна, вона містить мікроконтролер, три кнопки, кілька резисторів, конденсатор та LCD. Для контролю температури використовується один датчик DS18B20 фірми MAXIM.
Як ви бачите, вона дійсно не складна. Кнопкою SB1 вибирається режим вводу (встановлення). Кнопкою SB2 віднімають від числа одиницю, а кнопкою SB3 – додають. Але тут є одна особливість – вводити число потрібно при натиснутій кнопці SB1. Після вводу верхнього ліміту (при якому термостат буде вимикати нагрівальний елемент) потрібно відпустити SB1, а потім знову її натиснути та встановити нижній ліміт. Якщо вам потрібно часто вмикати/вимикати пристрій, то щоразу вводити заново числа не знадобиться, оскільки вони зберігаються в енергонезалежній пам’яті мікроконтролера одразу після їх вводу. Так виглядає дисплей під час роботи пристрою (значення температури вмикання/вимикання встановлені).
До речі, надпис «демо версія» не буде – це обмеження в симуляторі.
З друкованою платою пристрою справи йдуть трохи складніше. У зв’язку з тим, що я намагався зробити пристрій компактним, друкована плата це зачепила в першу чергу. Ось її топологія:
Як бачите, вона двостороння. На платі є два роз’єми – J1 та J2. J1 – це роз’єм живлення (5V), а J2 – роз’єм, до якого підключається виконавчий пристрій. УВАГА! Не підключайте виконавчий пристрій без підсилювача потужності (безпосередньо до порту мікроконтролера), це загрожує його виходом з ладу. Використовуйте хоча б еммітерний повторювач!
Якщо ви використовували мій варіант разводки друкованої плати, то її зовнішній вигляд буде таким:
Деталі та їх заміни:
В цій конструкції я використовував резистори smd (0805), дисковий конденсатор (можна будь-який інший, що підходить за габаритами та ємністю), кнопки будь-які, які підійдуть за габаритами (якщо апарат буде знаходитися в просторому корпусі, то їх можна взагалі винести за межі друкованої плати уст-ва). Роз’єми – штифтові, можна знайти в будь-якому радіомагазині або випаяти зі старої плати (якщо зовсім немає, то можна обійтися і без них, просто напряму впаявши дроти в отвори на друкованій платі). Датчик DS18B20, на жаль, нічим замінити не можна. Мікроконтролер же можна замінити на практично аналогічний PIC16F877. На замітку – мікроконтролер бажано ставити на панельку.
Робота з пристроєм:
Деякі особливості я вже обговорив вище, але повторю: для встановлення температури вмикання та вимикання потрібно натиснути кнопку SB1, і, утримуючи її, встановити температуру вимикання. Потім, відпустивши її, знову натиснути, і знову утримуючи, встановити температуру вимикання. У процесі роботи пристрою можна змінювати температуру спрацьовування та вимикання, використовуючи вищеописану «методику». Примусового збереження даних про встановлені значення температури немає. Всі дані зберігаються автоматично, у процесі їх вводу. Також у пристрою є ще одна особливість – при вмиканні (до моменту вмикання) потрібно утримувати натиснутою кнопку SB1. Так би мовити «захист на дурака».
В майбутньому можливо буде введена підтримка кількох датчиків. Також потрібно врахувати той момент, що мікроконтролер працює від вбудованого тактового генератора (цей варіант я вибрав з метою економії місця на платі, а також тому, що тут немає сенсу в високій стабільності генератора).
Скачати вихідні файли, прошивку, ПП, проект в Proteus та Flowcode ви можете нижче
Список радіоелементів
Означення | Тип | Номінал | Кількість | Примітка |
---|---|---|---|---|
U1 | МК PIC 8-біт |
PIC16F877
|
1 | |
U2 | Датчик температури |
DS18B20
|
1 | |
С1 | Конденсатор | 0.1 мкФ | 1 | |
R1-R5 | Резистор |
2 кОм
|
5 | |
LCD1 | LCD-дисплей | NOKIA3310_48x84 | 1 | |
SB1-SB3 | Тактова кнопка | 3 | ||
J1, J2 | Роз’єм | CONN_SIL2 | 2 |
Прикреплені файли:
- thermostat.rar (353 Кб)