Главная » Микроконтроллеры
Призовой фонд
на июль 2017 г.
1. Осциллограф DSO138
Паяльник
2. Регулируемый паяльник 60 Вт
Паяльник
3. 200 руб.
От пользователей

Похожие статьи:


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

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

Схема сдвоенного цифрового термометра на ATmega8 и DS18B20

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

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

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

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

Правка EEPROM

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

Fuse-биты

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

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

Макетная плата

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

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

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

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

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

Теги:

Баранов Павел  Опубликована: 2012 г. 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (12) | Я собрал (0) | Подписаться

0
BARS_ #
Сюда явно сдвиговые регистры просятся
Ответить
0
Георгий #
Очередной велосипед. Автор, а почему бы не подключить датчики на одну шину и опрашивать по ID? При первом запуске опросить шину, считать ID, и по порядку присвоить каждый датчик(его ID) к месту его прибывания с записью в eeprom.
Ответить
0
Автор #
Датчики намеренно не вешались на одну шину, чтобы взять датчик припаять к нему провод нужной длины и без всяких дополнительных манипуляций подключить к разъему устройства.
Ответить
0
Винни #
Понимаю, что скажу совершенно ненаучную вещь, но тем не менее. У меня около года работает термостат с двумя 18b20, висящими на одном шлейфе. Без всяких заморочек, вроде ID. Кто первый ответил, тот и первый. Так вот, Первым всегда становится тот датчик, что находится ближе к МК. Ещё раз- не пинайте, это была одна из первых программ для МК, сам понимаю, что не совсем правильно. Но работает...
Ответить
0
Владимир #
Подскажите мне полному новичку. Вот на схеме есть маленькая схемка. POWER там присутствует X1, я так понимаю, что это питание. Но по схеме не могу разобраться, что там реле или что за элемент...
Ответить
0
Павел #
Да не реле это... Это автор разъём питания так хитро нарисовал.
Если помните, в СССР были такие разъёмы с размыкателем, их любили в кассетные магнитофоны и приёмники малогабаритные ставить - вставляешь разъём от БП, батарея автоматически отключается. Но здесь оно не нужно.
Ответить
0
Владимир #
В Proteus 7.10 в режиме эмуляции работы схемы, не выводится на индикатор Street показания ни минусовой температуры, ни плюсовой
Ответить
0
Автор #
У Вас в протеусе загружена демо-версия прошивки. Загрузите другой hex файл из папки с исходниками, он там обновлен.
Ответить
0
Антон #
Спасибо, а то думал уже ругаться :) Потому что ни в протеусе, ни в железе, уличный 7-сегментник "мертвый" и индикации ниже 0 нету
Ответить
0
Артем #
Какой диапазон измеряемой температуры?
Ответить
0
AnFo #
Стал прошивать, долго не понимал почему загруженная прошивка и считанная имеют разные размеры. Оказалось прошивка на 2 кб больше, чем физическая память контроллера.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическое сопротивление?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

AVR-программатор USB ASP
AVR-программатор USB ASP
Конструктор: DDS генератор сигналов Макетная плата для пайки (10 шт)
вверх