Термометр: меньше не бывает. Термометр меньше не бывает на Attiny2313 Простой цифровой термометр на 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

В Интернете есть куча схем термометров на 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 конденсатора, трехразрядный светодиодный семисегментный...

Предлагается схема на микроконтроллере ATMega8 для измерения температуры в диапазоне от -55C до +127C с точностью не хуже +-0,5C. В качестве индикатора применен "динамический" трехразрядный светодиодный индикатор.

Рис.1 Принципиальная схема

Принципиальная схема девайса показана на рисунке 1 . Мне кажется она настолько проста, что в пояснениях не нуждается. Некоторая странность в расположении выводов индикатора объясняется стремлением сделать красивую схему без пересечений линий и шин. Резисторы и конденсаторы SMD - это жертва стремлению сделать устройство буквально на 5 мм больше индикатора. Кстати, индикатор применен без опознавательных знаков, продавался как "динамический" индикатор. Скорее всего, это какая-то левая китайская поделка, однако работает хорошо. При повторении конструкции следует удостовериться, что номера выводов соответствуют нужным разрядам и сегментам. Питается схема от источника 3...5В.

Рис. 2 Нижняя сторона платы

Рис. 3 Верхня сторона платы

На рисунках 2 и 3 показаны рисунки дорожек сторон платы, а на рисунках 4 и 5 - размещение элементов на этих сторонах. Как видите, элементы размещаются мало того, что с обеих сторон, так еще часть SMD -компонентов размещается под не-SMD -компонентами. Благодаря таким ухищрениям размеры платы всего 50х22 мм. В общем, монтаж проблем вызвать не должен.

Рис.4 Монтаж снизу

Рис.5 Монтаж сверху

Так как плата очень проста, рисунка с высоким качеством я не делал - думаю, что такую плату повторить удастся даже при помощи традиционной "лаковой" технологии, а для ЛУТ можно слегка подправить рисунки 2 и 3 .

Прошивки доступны в . Их 4 варианта : для индикаторов с общим анодом и с общим катодом, а так же для датчиков DS18S20 или DS18B20 . Название файлов прошивок таково, что определить соответствие элементарно, например: mt_18S20_oa.hex - прошивка для датчика DS18S20 и индикатора с общим анодом . При программировании микроконтроллера следует задать fuse -битами режим тактирования от встроенного RC-генератора 8 МГц.

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


(12) | Просмотров: 119051

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

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

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

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

Схема:

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

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

Файлы:

- Печатная плата в формате SL 5.0.

У вас нет доступа к скачиванию файлов с нашего сервера - Прошивка МК.

У вас нет доступа к скачиванию файлов с нашего сервера - Исходники прошивки.

У вас нет доступа к скачиванию файлов с нашего сервера - Проект для Proteus.

Понадобился мне тут термометр в инкубатор, а так как термостат у меня уже стоит, то буду делать только сам термометр. В своем случае буду использовать 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 .