Несмотря на тот факт, что в сети очень много схем термометров, тема эта всегда будет актуальна. Ведь сколько людей – столько и представлений о том, каким он должен быть. Лично мне необходимо было следующее:
Компактный термометр с выносным датчиком. И обязательно с батарейным питанием, чтобы не особо озадачиваясь можно было разместить его в любом удобном месте.
Индикатор должен быть светодиодным семисегментным. С него легко считываются показания, и он доступен по цене.
Нет смысла постоянно отображать температуру. Вполне достаточно по нажатию кнопки пробудить термометр и считать показания. А все остальное время термометр может спать. Удобно. Да и батарейки гораздо дольше проживут.
Собственно, вот и все пожелания. В результате, на свет появилась следующая конструкция:
Краткие характеристики:
- Диапазон измеряемых температур: от -55°С до +125°С
- Время измерения: 1 сек
- Время отображения: 3 сек
- Питание: 3В (CR2032)
О времени работы хотел бы сказать отдельно. Вообще, эта статья должна была появиться на свет, когда термометр откажется работать. И станет понятно, сколько же он может проработать на одном элементе питания. Термометр был собран в феврале сего года. Затем наступила весна, на смену ей пришло лето, затем осень.… А термометр так и работает уже 7 месяцев. Что само по себе неплохо для батарейки за 15 рублей. Учитывая, что температура измеряется ежедневно и регулярно.
Схема:
Подключение датчика DS18B20 стандартное, но питается он непосредственно от вывода микроконтроллера, и только на время измерения температуры. Индикатор семисегментный, с общим анодом. Перевернут для получения символа °С в последнем разряде.
Термометр собран на двусторонней печатной плате, размеры корпуса 65 x 45 x 22:
Лицевая панель нарисована в CorelDraw, и после печати / ламинирования приклеена на тонкий двусторонний скотч:
На ответной части корпуса просверлено отверстие для крепления термометра. С обратной стороны была сделана ниша, дабы случайно не уронить что-нибудь внутрь корпуса:
О формате вывода температуры на индикацию:
| Температура положительная, менее 10 градусов |
| Температура положительная, более 10 градусов |
| Температура отрицательная, менее 10 градусов |
| Температура отрицательная, более 10 градусов |
| Температура 0 градусов |
| Температура положительная более 99 градусов |
| Ошибка чтения датчика |
Принцип работы:
Кратковременное нажатие на кнопку SB1 переводит термометр из режима сна в рабочий режим. Через 1 секунду, если датчик отозвался, на индикатор выводится измеренная температура. Еще через 3 секунды индикатор гаснет, и термометр переходит в спящий режим.
Программирование фьюзов:
Lock Bits: 0x3F
High Fuse: 0xDF
Low Fuse: 0xE2
Ext.Fuse: 0xFF
Тактирование выполнено от внутреннего генератора 4 MHz (CKSEL3..0 = 0010; SUT1..0 = 10), делитель тактовой частоты на 8 отключен (CKDIV8 = 1), слежение за напряжением питания отключено (BODLEVEL2..0 = 111).
Спасибо за уделенное внимание, и успехов Вам в этом увлекательном и безграничном мире радиоэлектроники.
Файлы:
Схема, прошивка, проект Proteus 7.7 SP2