Сдвоенный цифровой термометр на ATmega8 и DS18B20

Предлагаю свой вариант цифрового термометра с двумя датчиками температуры.
Устройство выполнено на микроконтроллере ATmega8-16PU и 2-х датчиков с интерфейсом 1-wire, фирмы «Dallas Semiconductor» типа DS18B20 или DS1822. Устройство используется в домашних целях, один из его датчиков устанавливается на улице, другой в помещении. Индикация значений температуры осуществляется двумя сдвоенными светодиодными 7-сегментными индикаторами с общим катодом. (например, DC56-11GWA, или подобные), расположенными друг над другом.

Знак «минус» индицируется отдельным светодиодом.
Чтобы не было заморочек со считыванием 64 разрядного идентификационного кода датчика и определения, какой из них уличный, а какой комнатный, датчики подключены к разным ножкам МК, а не висят на одной шине 1-wire. Подключение уличного датчика удобно выполнить с помощью разъема, например типа stereo-джек 3,5мм.

При включении устройства, если датчик не подключен, или не исправен на соответствующих индикаторах высвечиваются символы [—]. Обновление показаний температуры происходит приблизительно каждую секунду.

Как показала практика, датчикам типа DS1822 свойственно завышать температуру на 2-3 градуса.
Для компенсации этого в EEPROM контроллера можно записать поправочные коэффициенты, для каждого из датчиков. По адресу 0x00010 записывается коэффициент для датчика находящегося в помещении, а по адресу 0x00011 находящегося на улице. Коэффициент высчитывается по следующему алгоритму: за нулевую поправку берется цифра 0x80, и если Вам необходимо внести поправку, в минус 2 градуса, то от 0x80 нужно будет отнять 2 и записать полученный результат в соответствующую ячейку EEPROM (К примеру: 0x80 – 2=0x7E).

Для поправки в сторону увеличения температуры необходимо будет к числу 0x80 прибавить необходимый коэффициент, см. рис. Если в соответствующих ячейках EEPROM код 0xFF или 0x80, поправочный коэффициент не учитывается.

Микроконтроллер работает от внутреннего RC-генератора, на частоте 8 МГц, кварцевый резонатор не требуется. Для работы микроконтроллера в таком режиме, нужно запрограммировать необходимые Fuse-биты, в соответствии с ниже следующим рисунком.

Для питания устройства используется малогабаритный импульсный, стабилизированный источник питания с напряжением 5В и током 250мА.

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

Скачать прошивку, проект в CodeVisionAVR, Proteus и в P-CAD вы можете ниже


Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот

DD1
МК AVR 8-битATmega81
DD2
Датчик температурыDS18B201
VT1-VT4
Биполярный транзисторКТ31024
C1, C3
Конденсатор0.1 мкФ2
C2
Конденсатор электролитический47 мкФ 10В1
R1
Резистор10 кОм1
R2-R7
Резистор4.7 кОм6
VD1, VD2
Светодиод2
HG1, HG2
Семисегментный индикаторОК2
Добавить все

Скачать список элементов (PDF)

Прикрепленные файлы:

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

Ваш адрес email не будет опубликован.