Термометр на AT89C2051 и DS18B20

Этот термометр работает в диапазоне температур от -50,0 до 99,9 градусов или в другой версии программного обеспечения до +125 градусов. Проект разрабатывался для измерения температуры в аквариуме, но может успешно найти множество других применений. На плате так же предусмотрено место для двух дополнительных кнопок и дополнительного разъема. При изменении программного обеспечения устройство можно использовать в качестве обычного термостата или более сложного регулятора температуры. Система построена на микроконтроллере AT89C2051 и популярном, широко известном датчике DS18B20, что значительно упростило разработку и уменьшило размеры устройства. Также без особых трудностей может быть использован микроконтроллер ATtiny2313, в этом случае понадобится внесение небольших изменении в схему и программу.

Описание схемы

Принципиальная схема термометра приведена ниже:

Принципиальная схема термометра

Сердцем устройства является микроконтроллер U2 (AT89C2051) с кварцевым резонатором X1 (12 МГц) с обвязкой из двух конденсаторов C4 (33 пФ) и C5 (33 пФ). Конденсатор C3 (1 мкФ) необходим для дополнительной защиты линии RESET от внешних помех, а C1 (220 мкФ) фильтрует напряжение питания. Разъем Zas предназначен для подключения питания 5В . Резисторы R9-R16 (330 Ом) ограничивают ток через сегменты дисплея. Транзисторы T1 — T3 (BC557B) с резисторами R1-R6 (3,3 кОм) управляют анодами дисплея.

Изготовление

Все материалы для создания термометра вы найдете в архиве в конце статьи. Монтаж элементов производится от маленьких до самых больших. Для крепления дисплея хорошо бы припаять кусочек панельки DIP40, а так же панельку DIP20 для микроконтроллера. Со стороны меди припаивается SMD резистор 4.7 кОм для 1-Wire (9 ножка U2 ) к положительному выводу источника питания. Разъем GP1 в базовой версии используется для подключения светодиодной сигнализации отрицательной температуры (катод к МК, анод к VCC), если вы хотите использовать эту ножку в других целях то уберите в программе строчку:

P3.7 = Not Minus

Корпус может быть сделан из кусочка ламината. Плата термометра крепится к передней панели с помощью двух винтов.
Для того, чтобы применить в проекте микроконтроллер ATtiny2313, не устанавливайте конденсатор C3, а конденсаторы C4 и C5 должны иметь значение 22 пФ.

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

Программное обеспечение было написано в демо-версии среды BASCOM 8051 от MCS electronics. Исходный код вы найдете в архиве в конце статьи.

Фьюз-биты

Фотографии

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
U2 МК AVR 8-бит AT89C2051 1 Или ATtiny2313
U3 Датчик температуры DS18B20 1
T1-T3 Биполярный транзистор BC557B 3
W1 Светодиодный 7-сегментный индикатор AT5636BG-B 1 Или с аналогичной распиновкой
X1 Кварц 12 МГц 1
R1-R6 Резистор 3.3 кОм 6
R9-R16 Резистор 330 Ом 8
С1 Электролитический конденсатор 220 мкФ 1
С3 Конденсатор 1 мкФ 1
C4, C5 Конденсатор 33 пФ 2 В случае с Attiny2313 — 22 пФ
Резистор 4.7 кОм 1 SMD. На схеме не указан
Панель DIP-40 1 Для индикатора
Панель DIP-20 1 Для контроллера
Кнопка тактовая 2 Только для термостата (на схеме не обозначены)