Предлагаю свой вариант цифрового термометра с двумя датчиками температуры.
Устройство выполнено на микроконтроллере 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)
Прикрепленные файлы:
- thermometer.rar (174 Кб)