Site Loader

ТЕРМОМЕТР НА ATTINY

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

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

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

Схема термометра на AtTiny2313

Схема термометра на AtTiny2313


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

>>> 4-х разрядный семисегментный индикатор 1шт
>>> Керамический конденсатор на 0.1 микрофарад 1шт

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

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

Паяем резисторы к индикатору led

   Далее подпаяем конденсаторы на 0.1 микрофарад (104) и на 100 микрофарад. Припаяем датчик

DS18B20.

Припаяем датчик DS18B20

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

ТЕРМОМЕТР НА ATTINY своими руками

   Чтобы прошить этот МК нам нужен AVR програматор. Как его сделать смотрим по ссылке. Открываем PonyProg (Если у вас программатор из статьи выше) и закидываем прошивку. При закидывании прошивки не забываем нажимать кнопку «

ПРОЧЕСТЬ«. Фьюзы выставляем как на фото ниже:

ТЕРМОМЕТР НА ATTINY - фузы

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

ТЕРМОМЕТР НА ATTINY для начинающих

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

 

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

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

   МК для начинающих

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


Термометр на ATtiny2313 и DS18B20 • hardlock.org.ua •

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

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

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

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

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

Итак схема: (12.11.2009 привёл названия сегментов в соответствии с даташитом на индикатор.)


Схема

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

Как видим эта схема отличается от подобных отсутствием транзисторов на управление сегментов. Таким образом схема упростилась на 4 транзистора и 4 резистора, по сравнению с аналогичными схемами. Тут некоторые скажут: «так нельзя — большая нагрузка на порты!!!». Читаем datasheet на сей контроллер «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.Глюков связанных с питанием не замечено.

Ну и далее фотки платы:


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

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

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

Далее запаиваем индикатор и программируем:

Прошивка для случая индикатора с ОА (+) и ОК (-) — в HEX формате, ну и проект под CodeVisionAVR, который можно скомпилировать и под ОА, и под ОК. Проект собран по кускам, что-то из готовых проектов из Интернета, что-то дописано мной… Оригинальной идеей стала динамическая индикация. Проблема заключалась в том, что во время общения с датчиком температуры DS18B20 возникали моменты, когда «сканирование» индикации останавливалось. Поэтому обновление индикатора сделано не по прерываниям, а в главном цикле программы, и ещё вставлено кой-где в процедуре общения с датчиком… Плюсом данного способа стала высокая частота обновления, что исключило проблему мерцания.

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

Покалькулировать эти самые фьюзы можно тут. А почитать про них — в описании на контроллер…

Заработало!!!

Итак, прошили, включили… Хм… работает!!! (а вот про эту красную штуку справа — читаем тут)

Ну ещё вот в таком виде:

Ответ на вопрос «что делают кнопочки ПЛЮС и МИНУС — читаем в статье ТЕРМОСТАТ». Это то, о чём говорилось в 5-м пункте «Чего хотелось».

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

Термометр на ATtiny2313 и DS18B20 (ATtiny2313, С)2 — Устройства на микроконтроллерах — Схемы устройств на микроконтроллерах

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

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

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

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

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

Схема.

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

Как видим эта схема отличается от подобных отсутствием транзисторов на управление сегментов. Таким образом схема упростилась на 4 транзистора и 4 резистора, по сравнению с аналогичными схемами. Тут некоторые скажут: «так нельзя — большая нагрузка на порты!!!». Читаемdatasheet на сей контроллер «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 экземпляров с лабораторным термометром, прошедшим метрологический контроль…

Скачать прошивку для индикатора с ОК(-) 
Скачать прошивку для индикатора с ОА(+) 
Скачать исходный код на С (CodeVisionAVR)

Автор Юрий. Е-mail: hardlock (пёсик) bk Сайт автора.

Обсудить статью на форуме

Крошечный термометр на Attiny2313 (с печатной платой)

August 30, 2012 by admin Комментировать »

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

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

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

Скачать проект для Proteus, прошивку, исходники и печатную плату – скачать.

ПРОСТОЙ ЦИФРОВОЙ ТЕРМОМЕТР

   Предлагаю для повторения схему цифрового термометра, который имеет очень малые размеры. Здесь мы рассмотрим создание простого цифрового термометра с использованием в качестве температурного датчика — специальный цифровой датчик температуры от фирмы DАLLAS, а точнее ds18b20 и микроконтроллером ATtiny2313. Характеристики предложенного цифрового термометра: пределы измерения от -55 до +125*С ; точность измерение от 0,1 до 0,5*С.

самодельный цифровой термометр на мк

   Фотография датчика ds18b20:

самодельный цифровой термометр на мк 

   Работает термометр следующим образом: микроонтроллер подает запрос на поиск и запись адресов датчиков ds18b20, подключенных к линии контроллера по интерфейсу 1Wire. Далее производится чтение температуры с датчиков, которые были найдены, после этого микроконтроллер выводит температуру на 3-х символьный LED, хотя при небольшой модификации прошивки можно подключать и 4-х символьный LED. Тогда температура будет выводится с точность до десятичных долей градуса. Опрос датчика составляет где-то 750мс. Схема проста и в печатной плате не нуждается, хотя кому больше нравится на печатной плате — можно нарисовать. Я контроллер ATtiny2313 ставил сзади LED индикатора и всё соединял проводами. 

размеры цифрового термометра очень малы

   Принципиальная схема цифрового термометра на ATtiny2313:

схема цифрового термометра на ATtiny2313

    Перейдём к настройки фьюзов микроконтроллера. Для работы с протоколом 1Wire, частота внутреннего генератора МК должна быть не меньше 4мгц. Вот скриншот фьюзов которые надо выставить при прошивке в Code Vision AVR:

фьюзов которые надо выставить при прошивке

   В архиве на форуме, есть прошивки для индикаторов с общим катодом и общим анодом. Так же все прошивки умеют работать с 8 х датчиками ds18b20. Ещё есть прошивка, которая меряет температуру с точностью до десятичных значений, при этом необходим 4х символьный LED дисплей, анод лишнего сегмента цепляют к PORTD.3 , а запятую цепляют на PORTB.7.

вид готового цифрового термометр

применение цифрового термометра на контроллере

   Использовать этот цифровой термометр можно в самом широком спектре устройств. Материал предоставил ansel73.

   Форум по микроконтроллерам

   Обсудить статью ПРОСТОЙ ЦИФРОВОЙ ТЕРМОМЕТР


Схема электронного термометра на микроконтроллере Attiny2313

Данный термометр отображает показание температуры на трехзначном 7-сегментном дисплей. Он измеряет температуру в диапазоне от -9,5 до 99 градусов Цельсия с шагом в 0,5 C или от 0 до 210 градусов по Фаренгейту с шагом  1,0 градусов по Фаренгейту. Применение светодиодной индикации позволяет узнать температуру при малой освещенности.

Описание схемы электронного термометра на микроконтроллере

В схеме термометра применен температурный датчик TCN75 от Microchip. TCN75 имеет двух проводный последовательный интерфейс, который является двунаправленной шиной работающей со скоростью до 400 Kbs.

Данный интерфейс, его еще называют I2C, позволяет управлять до 8 подобными датчиками. В нашем же случае используется только один датчик, который подключен к микроконтроллеру Attini2313. Датчик температуры TCN75 так же можно использовать и в качестве термостата.

Аппаратные средства термометра

Attini2313 осуществляет контроль  по I2C  интерфейсу с датчиком температуры, а так же выводит показание на 7-сегментный дисплей. Два провода последовательный взаимодействия с TCN75 и перевести информацию для отображения на трехзначного 7-Sement дисплее. Чтение температуры от датчика происходит каждые 3 секунды. Керамический резонатор используется для синхронизации микроконтроллера.

Три 7-сегментных дисплеев с общим катодом. К каждому катоду подключен транзистор, для снижения нагрузки на порт микроконтроллера. Мультиплексирование каждого из трех дисплеев обрабатывается программным обеспечением. Каждый дисплей загорается последовательно на 5 мк секунд. Светодиод дисплеи имеют высоту  цифр 14,2 мм.

Термометр запитан от стабилизированного источника питания в 5 вольт. Ток потребления схемы не превышает 50 мА.

Программа написана на языке программирования BASCOM-AVR. Программа использует приблизительно 1Кб флэш-памяти 2Kb. Есть две разные программы, которые можно использовать, для Цельсия и Фаренгейта. BASCOM это язык программирования для AVR-микроконтроллеров.

Скачать файkы к схеме термометра на микроконтроллере attiny2313 (76,7 KiB, скачано: 401)

www.avrprojects.net

РадиоКот :: Термометр: меньше не бывает?

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

Термометр: меньше не бывает?

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

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

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

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

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

Схема:

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

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

Файлы:
Печатная плата в формате SL 5.0. (для ЛУТ — зеркалить)
Прошивка МК.
Исходники прошивки.
Проект для Proteus.

Вопросы, как обычно, складываем тут.


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

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

alexxlab

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *