Термометр меньше не бывает на attiny2313. Электронный термометр с выносным датчиком DS18B20 на микроконтроллере Attiny2313

Понадобился мне тут термометр в инкубатор, а так как термостат у меня уже стоит, то буду делать только сам термометр. В своем случае буду использовать 3-х разрядный, а не 4-х разрядный индикатор. Поговорим пока немного про сами цифровые индикаторы. Семисегментный индикатор состоит из семи элементов индикации (сегментов), по отдельности включающихся и выключающихся подачей питания. Включая их в разных комбинациях, из них можно составить изображения цифр. В современных индикаторах светодиоды изготавливают в форме сегментов, поэтому светодиодные индикаторы имеют предельно простую форму - чем меньше разных светодиодов, тем дешевле устройство. Сегменты обозначаются буквами от A до G . Восьмой сегмент — это точка. Вот параметры индикатора, что используется в термометре:

  • Максимальное прямое напряжение (при токе 20 мА):.....2.5 В
  • Максимальный прямой ток: .....25-30 мА
  • Максимальное обратное напряжение: .....5 В
  • Обратный ток (при напряжении 5 в): .....10 мкА
  • Мощность рассеивания: .....150 мВт
  • Максимальный импульсный прямой ток: .....140-160 мА
  • Диапазон рабочих температур: .....-40…+85°C

Теперь приступим к изготовлению самого термометра. Изучим принципиальную схему.

Для его изготовления нам понадобится:

>>> 4-х разрядный семисегментный индикатор 1шт
>>> Керамический конденсатор на 0.1 микрофарад 1шт
>>> Электролитический конденсатор на 100 мкф 16в (можно и 10)
>>> Резисторы 100-200 ом 0.125 вт 8шт.
>>> Микроконтроллер AtTiny2313 1шт.
>>> Панелька 20 ног 1шт.
>>> Датчик DS18B20 1шт.
>>> Провода, паяльник, золотые руки))

Собрав все необходимые радиокомпоненты, приступим к изготовлению микроконтроллерного термометра. Паяем резисторы к индикатору.

Подводим питание - и готово! Осталось прошить микроконтроллер. Прошивку можно . В архиве находится две прошивки, под общий катод и под общий анод.

Чтобы прошить этот МК нам нужен . Как его сделать смотрим по ссылке. Открываем PonyProg (Если у вас программатор из статьи выше) и закидываем прошивку. При закидывании прошивки не забываем нажимать кнопку "ПРОЧЕСТЬ ". Фьюзы выставляем как на фото ниже:

Тоже один из важных факторов: при выставлении фьюзов не забываем нажать кнопку "ЧИТАТЬ " (Read). И сохраняем прошивку, вынимаем микроконтроллер из программатора и вставляем в устройство.

Подаем питание на схему - и вуаля! Все работает. Печатной платы к схеме нету, так как в следствии простоты смысла ее нету чертить, схема состоит, грубо говоря, из пяти радиодеталей. Не считая резисторов, т.к там вообще проще простого их подпаять. Видео работы данного термодатчика можно посмотреть ниже:

Как работает термометр на ATTINY

Устройство действительно настолько простое, что прекрасно подойдёт начинающим контроллеристам, как первый действующий практический проект на AtTiny. С вами был Boil .

Обсудить статью ТЕРМОМЕТР НА ATTINY

“Термометр: меньше не бывает” так называется статья на сайте arv.radioliga.com. Схему, расположенную на указанной страничке, я видел давно, но вот интерес к ней у меня появился, когда у одного из сограждан форума с этим “маленьким” термометром возникли вопросы. Если быть более точным интерес у меня появился не столько к схеме, сколько к размерам термометра. У автора термометр собран на плате размерами 50*22 мм.
Действительно ли меньше не бывает?

На радиорынке я присмотрел трехразрядный семисегментник. Приобрел микроконтроллер Attiny2313 в SOIC корпусе, DS18B20, smd-резистор и smd-конденсатор. Нарисовал печатную плату, по печатной плате нарисовал схему, написал программу, залил в МК и вот, что получилось:

Несколько слов схеме и о программе. Компактность не обошлась без жертв. В схеме отсутствуют токоограничивающие сопротивления, что есть не совсем хорошо. Для увеличения нагрузоспособности катоды индикатора подключены сразу к двум выводам МК.
В программе ничего оригинального нет. Шаблон подготовлен с помощью мастера из CVAVR, остальные части взяты из моих часов с термометром. Я применил подправленную библиотеку DS18B20, а точнее это сумма двух библиотек из CVAVR для DS1820/DS18S20 и DS18B20, т.е. в термометре можно применять любой из вышеперечисленных датчиков. Если точнее, то не более 4-х датчиков в любой комбинации.
Фузы: МК настроен на работу от внутреннего RC-генератора на 4 МГц. CKSEL = 0010, SUT = 10, все остальные = 1.

"Термометр: меньше не бывает" так называется статья на сайте arv.radioliga.com. Схему, расположенную на указанной страничке, я видел давно, но вот интерес к ней у меня появился, когда у одного из сограждан форума с этим "маленьким" термометром возникли вопросы. Если быть более точным интерес у меня появился не столько к схеме, сколько к размерам термометра. У автора термометр собран на плате размерами 50*22 мм.
Действительно ли меньше не бывает?

На радиорынке я присмотрел трехразрядный семисегментник. Приобрел микроконтроллер Attiny2313 в SOIC корпусе, DS18B20, smd-резистор и smd-конденсатор. Нарисовал печатную плату, по печатной плате нарисовал схему, написал программу, залил в МК и:

И вот, что получилось:

На индикатор наклеена тонировочная пленка (без нее нормально сфотограыировать индикатор не удавалось).

О размерах можно судить и по примененному индикатору:

Несколько слов схеме и о программе. Компактность не обошлась без жертв. В схеме отсутствуют токоограничивающие сопротивления, что есть не совсем хорошо. Для увеличения нагрузоспособности катоды индикатора подключены сразу к двум выводам МК.
В программе ничего оригинального нет. Шаблон подготовлен с помощью мастера из CVAVR, остальные части взяты из моих часов с термометром. Я применил подправленную библиотеку DS18B20, а точнее это сумма двух библиотек из CVAVR для DS1820/DS18S20 и DS18B20, т.е. в термометре можно применять любой из вышеперечисленных датчиков. Если точнее, то не более 4-х датчиков в любой комбинации.
Фузы: МК настроен на работу от внутреннего RC-генератора на 4 МГц. CKSEL = 0010 , SUT = 10 , все остальные = 1.

Итог:
Я не уверен, что мой вариант термометра с применением семисегментного индикатора самый маленький.

Прислал: Нет данных

Понадобился мне тут термометр в инкубатор, а так как термостат у меня уже стоит, то буду делать только сам термометр. В своем случае буду использовать 3-х разрядный, а не 4-х разрядный индикатор. Поговорим пока немного про сами цифровые индикаторы. Семисегментный индикатор состоит из семи элементов индикации (сегментов), по отдельности включающихся и выключающихся подачей питания. Включая их в разных комбинациях, из них можно составить изображения цифр. В современных индикаторах светодиоды изготавливают в форме сегментов, поэтому светодиодные индикаторы имеют предельно простую форму - чем меньше разных светодиодов, тем дешевле устройство. Сегменты обозначаются буквами от A до G . Восьмой сегмент - это точка. Вот параметры индикатора, что используется в термометре:
  • Максимальное прямое напряжение (при токе 20 мА):.....2.5 В
  • Максимальный прямой ток: .....25-30 мА
  • Максимальное обратное напряжение: .....5 В
  • Обратный ток (при напряжении 5 в): .....10 мкА
  • Мощность рассеивания: .....150 мВт
  • Максимальный импульсный прямой ток: .....140-160 мА
  • Диапазон рабочих температур: .....-40…+85°C

Теперь приступим к изготовлению самого термометра. Изучим принципиальную схему.

Для его изготовления нам понадобится:

>>> 4-х разрядный семисегментный индикатор 1шт
>>> Керамический конденсатор на 0.1 микрофарад 1шт
>>> Электролитический конденсатор на 100 мкф 16в (можно и 10)
>>> Резисторы 100-200 ом 0.125 вт 8шт.
>>> Микроконтроллер AtTiny2313 1шт.
>>> Панелька 20 ног 1шт.
>>> Датчик DS18B20 1шт.
>>> Провода, паяльник, золотые руки))

Собрав все необходимые радиокомпоненты, приступим к изготовлению микроконтроллерного термометра. Паяем резисторы к индикатору.

Подводим питание - и готово! Осталось прошить микроконтроллер. Прошивку можно . В архиве находится две прошивки, под общий катод и под общий анод.

Чтобы прошить этот МК нам нужен AVR програматор . Как его сделать смотрим по ссылке. Открываем PonyProg (Если у вас программатор из статьи выше) и закидываем прошивку. При закидывании прошивки не забываем нажимать кнопку "ПРОЧЕСТЬ ". Фьюзы выставляем как на фото ниже:

Тоже один из важных факторов: при выставлении фьюзов не забываем нажать кнопку "ЧИТАТЬ " (Read). И сохраняем прошивку, вынимаем микроконтроллер из программатора и вставляем в устройство.

Подаем питание на схему - и вуаля! Все работает. Печатной платы к схеме нету, так как в следствии простоты смысла ее нету чертить, схема состоит, грубо говоря, из пяти радиодеталей. Не считая резисторов, т.к там вообще проще простого их подпаять. Видео работы данного термодатчика можно посмотреть ниже:

Как работает термометр на ATTINY

Устройство действительно настолько простое, что прекрасно подойдёт начинающим контроллеристам, как первый действующий практический проект на AtTiny. С вами был Boil .

В Интернете есть куча схем термометров на AVR, но как всегда хочется чего-то своего.. Да и мозги размять тоже следует. Этот термометр был одним из первых моих проектов.

Чего хотелось:

  • минимальные размеры (в разумных пределах)
  • минимальная стоимость
  • простота конструкции
  • высокая повторяемость
  • универсальность (об этом чуть позже)

Что получилось:

Посмотрев подобные конструкции и покурив описалово на тиньку, которая оказалась под рукой (ATtiny2313), пришёл к выводу, что можно несколько упростить существующие конструкции и немного улучшить их характеристики.

На схеме показан второй вариант включения термодатчика, если он не захотеть работать по однопроводной шине (что встречается очень редко). Обратите внимание, что подтягивающий резистор на 11 выводе должен быть именно 4,7кОм . Уменьшение или увеличение может привести к нестабильной работе датчика в случае включения по однопроводной схеме.

Как видим эта схема отличается от подобных отсутствием транзисторов на управление сегментов. Таким образом схема упростилась на 4 транзистора и 4 резистора, по сравнению с аналогичными схемами. Тут некоторые скажут: "так нельзя - большая нагрузка на порты!!!". Читаем на сей контроллер "DC Current per I/O Pin - 40.0 mA ". У нас 8 сегментов в каждом символе, по 5 мА каждый - получается 40мА!!!.

Теперь посмотрим графики из того же описания:

Из графиков видно, что ток может достигать и 60 мА и даже 80 мА на пин. Ну не будем увлекаться - нам 5 мА на сегмент (40мА на символ) хватит с головой! Ограничительные резисторы подобраны для получения тока около 5 мА на сегмент. В моей схеме стоят 470 Ом. Яркость сегментов при этом отличная!!! Так, чё-то я увлёкся теорией.

Практика!!!

Печатную плату рисовал исходя их соображений "как можно меньше, но как можно проще". Поэтому она получилась с несколькими перемычками...

На рисунке есть место под кварц - это для небольшой универсальности - у меня было несколько штук AT90S2313, у которых нет внутреннего генератора. КРЕНка применена в корпусе SOT-89. Защитные стабилитроны BZX79-C5V1 в корпусе DO-35. Конденсаторы в фильтре питания - 10mkF * 16V танталовые (других не нашлось), размера 3528 (SMD-B). Я их обычно не ставлю, а вместо них - 1mkF * 50V размера 1206.Глюков связанных с питанием не замечено.

пустая плата, изготовленная "лазерным утюгом"

собранная плата: вид со стороны проводников (не хватает стабилизатора)

вид со стороны элементов (не запаян индикатор)

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

Чуть не забыл - фьюзы для нормальной работы термометра:

Итак, прошили, включили... Хм... работает!!!

Итак как видим получилось довольно простое (куда уж проще???) устройство, которое по размерам не превышает размер индикатора. Кроме всего ещё и точность высокая: по описанию датчика - "±0.5°C accuracy from -10°C to +85°C". Как показала практика точность гораздо выше - около ±0,1°C. Сверял 10 экземпляров с лабораторным термометром, прошедшим метрологический контроль...


26.04.2014
sPlan - удобный инструмент для черчения электронных схем. Имеет простой и интуитивно понятный интерфейс. В программе заложены...

Очень удобная программа для чтения pdf Foxit Reader
26.04.2014
Foxit Reader - Компактная и шустрая программа для чтения PDF файлов. Может служить альтернативой для популярного просмотрщика PDF - Adobe Reader....


22.04.2014
Proteus VSM - программа-симулятор микроконтроллерных устройств. Поддерживает МК: PIC, 8051, AVR, HC11, ARM7/LPC2000 и другие распространенные процессоры....


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

Proteus 7.7 SP2 + Crack v1.0.2 + RUS
22.04.2014
Proteus VSM - программа-симулятор микроконтроллерных устройств. Поддерживает МК: PIC, 8051, AVR, HC11, ARM7/LPC2000 и другие распространенные процессоры....

Splan 7.0.0.9 Rus + Portable + Viewer Fiinal
26.04.2014
sPlan - удобный инструмент для черчения электронных схем. Имеет простой и интуитивно понятный интерфейс. В программе заложены...

Цифровая паяльная станция своими руками (ATmega8, C)
27.05.2012
Состав: ATmega8, LM358, IRFZ44, 7805, мост, 13 резисторов, один потенциометр, 2 электролита, 4 конденсатора, трехразрядный светодиодный семисегментный...

mob_info