Например TDA7294

РадиоКот >Схемы >Цифровые устройства >Бытовая техника >

Цифровой карманный брелок-термометр со светодиодной индикацией на DS18B20

Опубликовано 14.12.2017.
Создано при помощи КотоРед.

Предлагаю опробовать конструкцию карманного термометра

на всем известном датчике и не менее известном микроконтроллере!

Особенности устройства:

  • Батарейное питание от CR2032
  • Низкий ток потребления (150 нА в простое/1,5-2 мА в работе)
  • Минимум деталей
  • Измерените температуры в диапазоне -55...+128 градусов Цельсия
  • Округление температуры до целого с точностью 0,5 градуса Цельсия
  • Светодиодная индикация по образу цифровой клавиатуры телефона
  • Принудительный перевод датчика в режим 9 бит, проверка котрольной суммы при чтении данных с датчика, тактирование микроконтроллера от внутреннего 128 кГц осциллятора

 

 

Описание:

При подаче питания просиходит включение питания датчика, проверка подключения, опрос температуры, перевод датчика в режим 9-бит (только если текущий режим отличается от 9-бит), выключение питания датчика, индикация и переход микроконтроллера в режим минимального энергопотребления Power Down. Последующий запуск измерения производится нажатием тактильной кнопки, подсоединенной к выводу Reset микроконтроллера. Нажатие вызывает сброс микроконтроллера и программа выполняется сначала. Использование аппаратного сброса вместо прерывания (например INT0) исключает непредвиденное зависание устройства. Принципиальная схема приведена ниже. Используется внутренний резистор подтяжки вывода Reset. Светодиоды индикации объединены катодами и подключены к земле через токоограничивающий резистор R2. Резистор R1 необходим для работы шины 1-Wire.

 

 

При разработке данного устройства основной упор делался на минимизацию энергопотребления при сохранении малого числа радиодеталей. С этой целью выполнено следующее. Как уже было сказано в режиме простоя микроконтроллер находится в режиме Power Down потребляя минимально возможный ток - неиспользуемая периферия отключена, неиспользуемые порты ввода вывода настроены на вход с внутренней подтяжкой. Так же в режиме простоя отключено питание датчика температуры, так как он питается напрямую от вывода микроконтроллера. Датчик специально подключен на выводы OC1A, OC1B так как эти выводы обладают бОльшей нагрузочной способностью и меньшим падением напряжения при подаче логической единицы (информация не подтверждена и требует уточнения). В активном режиме минимизация потребления реализована благодаря тактированию микроконтроллера от 128 кГц осциллятора WDT, что, насколько я понял, сделано впервые - других публикаций о запуске DS18B20 от 128 кГц найдено не было. Принудительный перевод датчика в режим измерения 9 бит снижает время измерения в 8 раз по сравнению с 12-битным режимом по умолчанию, что снижает ток потребления и оставляет достижимой заявленную точность измерения температуры.

 

Индикация:

Индикация выполняется с помощью светодиодов расставленных по образу цифровой клавиатуры телефона. Одиноко стоящий светодиод снизу - цифра ноль. В случае ошибки чтения датчика ноль мигнет три раза подряд. Индикация температуры  - последовательное мигание светодиодом, отвечающим за ту или иную цифру.

  • Положительная температура 128 градусов Цельсия - друг за другом мигнут светодиоды D1, D2, D8
  • Отрицательная температура -55 градусов Цельсия - мигнет сначала ноль (светодиод D10), а затем подряд D5, D5

 

 

Изготовление:

Кроме исходного кода на ассемблере для AVR Studio 4.19 прикладываю файл печатной платы Sprint Layout, модель Proteus, чертеж контура платы с проушиной Kompas 3D и файл фрезеровки контура печатной платы SPRUTCAM. При прошивке через AVRDUDESS прописываем FUSE LOW 0xC6, FUSE HIGH 0xDF. Прошивать можно после запайки не забыв понизить частоту тактовых импульсов программатора. Резистор в цепи светодиодов подбирается индивидуально. Для светодиодов повышенной яркости 1.2 кОм достаточно. Клипсу держателя батареи вырезаем из луженой жести (банка из-под сгущенки). Клипсу желательно не только припаять но и приклепать медными штырьками через отверстия в ушках и плате а затем пропаять с двух сторон (с обратной стороны фольга только под батарейкой). Что касается автономности. Сейчас термометр 5й месяц как запущен от батарейки SONY и измеряет температуру 3-4 раза в сутки, текущее напряжение в простое 3,16 В. Напомню что работоспособность датчика заявлена от 3,0 В, как будет вести себя устройство дальше - предстоит выяснить.

Дополнительная информация: https://github.com/FeruzTopalov/ds18b20-pocket-thermo

 


Файлы:
Архив с материалами (исходник, прошивка, модель proteus, плата)


Все вопросы в Форум.


Как вам эта статья?

Заработало ли это устройство у вас?

25 13 7
2 0 0