Отключаемые счетчики электроэнергии на пульте. Все с документами пломбами, гарантией и без посредников!

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

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

Предлагаю свой вариант цифрового термометра с двумя датчиками температуры.

Устройство выполнено на микроконтроллере ATmega8-16PU и двух датчиков с интерфейсом 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

Автор: Баранов Павел (Pavelxx79@gmail.com). Автор занимается разработкой радиоэлектронных устройств на заказ.


Категория: Микроконтроллеры
Метки:

Написать коментарий

*
= 3 + 1

Добавить изображение

Последние статьи