В Интернете есть куча схем термометров на 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 Сайт автора.
elektro-shemi.ru
Понадобился мне тут термометр в инкубатор, а так как термостат у меня уже стоит, то буду делать только сам термометр. В своем случае буду использовать 3-х разрядный, а не 4-х разрядный индикатор. Поговорим пока немного про сами цифровые индикаторы. Семисегментный индикатор состоит из семи элементов индикации (сегментов), по отдельности включающихся и выключающихся подачей питания. Включая их в разных комбинациях, из них можно составить изображения цифр. В современных индикаторах светодиоды изготавливают в форме сегментов, поэтому светодиодные индикаторы имеют предельно простую форму — чем меньше разных светодиодов, тем дешевле устройство. Сегменты обозначаются буквами от A до G. Восьмой сегмент — это точка. Вот параметры индикатора, что используется в термометре:
Теперь приступим к изготовлению самого термометра. Изучим принципиальную схему.
Для его изготовления нам понадобится:
>>> 4-х разрядный семисегментный индикатор 1шт
>>> Керамический конденсатор на 0.1 микрофарад 1шт
>>> Электролитический конденсатор на 100 мкф 16в (можно и 10)
>>> Резисторы 100-200 ом 0.125 вт 8шт.
>>> Микроконтроллер AtTiny2313 1шт.
Собрав все необходимые радиокомпоненты, приступим к изготовлению микроконтроллерного термометра. Паяем резисторы к индикатору.
Далее подпаяем конденсаторы на 0.1 микрофарад (104) и на 100 микрофарад. Припаяем датчик DS18B20.
Подводим питание — и готово! Осталось прошить микроконтроллер. Прошивку можно скачать тут. В архиве находится две прошивки, под общий катод и под общий анод.
Чтобы прошить этот МК нам нужен AVR програматор. Как его сделать смотрим по ссылке. Открываем PonyProg (Если у вас программатор из статьи выше) и закидываем прошивку. При закидывании прошивки не забываем нажимать кнопку « ПРОЧЕСТЬ«. Фьюзы выставляем как на фото ниже:
Тоже один из важных факторов: при выставлении фьюзов не забываем нажать кнопку «ЧИТАТЬ» (Read). И сохраняем прошивку, вынимаем микроконтроллер из программатора и вставляем в устройство.
Подаем питание на схему — и вуаля! Все работает. Печатной платы к схеме нету, так как в следствии простоты смысла ее нету чертить, схема состоит, грубо говоря, из пяти радиодеталей. Не считая резисторов, т.к там вообще проще простого их подпаять. Видео работы данного термодатчика можно посмотреть ниже:
Устройство действительно настолько простое, что прекрасно подойдёт начинающим контроллеристам, как первый действующий практический проект на AtTiny. С вами был
МК для начинающих
Обсудить статью ТЕРМОМЕТР НА ATTINY
radioskot.ru
“Термометр: меньше не бывает” так называется статья на сайте arv.radioliga.com. Схему, расположенную на указанной страничке, я видел давно, но вот интерес к ней у меня появился, когда у одного из сограждан форума с этим “маленьким” термометром возникли вопросы. Если быть более точным интерес у меня появился не столько к схеме, сколько к размерам термометра. У автора термометр собран на плате размерами 50*22 мм.
Действительно ли меньше не бывает?
На радиорынке я присмотрел трехразрядный семисегментник. Приобрел микроконтроллер Attiny2313 в SOIC корпусе, DS18B20, smd-резистор и smd-конденсатор. Нарисовал печатную плату, по печатной плате нарисовал схему, написал программу, залил в МК и вот, что получилось:
Несколько слов схеме и о программе. Компактность не обошлась без жертв. В схеме отсутствуют токоограничивающие сопротивления, что есть не совсем хорошо. Для увеличения нагрузоспособности катоды индикатора подключены сразу к двум выводам МК.
В программе ничего оригинального нет. Шаблон подготовлен с помощью мастера из CVAVR, остальные части взяты из моих часов с термометром. Я применил подправленную библиотеку DS18B20, а точнее это сумма двух библиотек из CVAVR для DS1820/DS18S20 и DS18B20, т.е. в термометре можно применять любой из вышеперечисленных датчиков. Если точнее, то не более 4-х датчиков в любой комбинации.
Скачать проект для Proteus, прошивку, исходники и печатную плату – скачать.
nauchebe.net
В данной статье проведем обзор цифрового термометра, построенного на микроконтроллере Attiny2313, снабженного выносным цифровым датчиком DS18B20. Пределы измерения температуры составляет от -55 до +125 градусов Цельсия, шаг измерения температуры составляет 0,1 градус. Схема очень простая, содержит минимум деталей и ее запросто можно собрать своими руками.
Самодельный электронный термометр с выносным датчиком построен на всем известном микроконтроллере Attiny2313. В роли температурного датчика выступает микросхема DS18B20 фирмы Dallas. В схеме термометра можно применить до 8 цифровых датчиков. Микроконтроллер взаимодействует с DS18B20 по протоколу 1Wire.
Вначале происходит поиск и инициализация всех подключенных датчиков, затем с них происходит считывание температуры с последующим выводом на трехразрядный семисегментный индикатор HL1. Индикатор может быть применен как с общим катодом (ОК), так и с общим анодом (ОА). Подобный индикатор так же был применен в схеме часов на Attiny2313. Под каждый индикатор имеется своя прошивка. Измерять температуру можно как дома, так и на улице, для этого необходимо вынести DS18B20 за окно.
Для прошивки микроконтроллера Attiny2313 необходимо выставить фьюзы следующим образом (для программы CodeVision AVR):
Скачать файлы прошивки и печатной платы (1,0 Mb, скачано: 5 906)
Источник : www.radiokot.ru
www.joyta.ru
Чего хотелось:
Посмотрев подобные конструкции и покурив описалово на тиньку, которая оказалась под рукой (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 экземпляров с лабораторным термометром, прошедшим метрологический контроль…
hardlock.org.ua
Предлагаю для повторения схему цифрового термометра, который имеет очень малые размеры. Здесь мы рассмотрим создание простого цифрового термометра с использованием в качестве температурного датчика — специальный цифровой датчик температуры от фирмы DАLLAS, а точнее ds18b20 и микроконтроллером ATtiny2313. Характеристики предложенного цифрового термометра: пределы измерения от -55 до +125*С ; точность измерение от 0,1 до 0,5*С.
Фотография датчика ds18b20:
Работает термометр следующим образом: микроонтроллер подает запрос на поиск и запись адресов датчиков ds18b20, подключенных к линии контроллера по интерфейсу 1Wire. Далее производится чтение температуры с датчиков, которые были найдены, после этого микроконтроллер выводит температуру на 3-х символьный LED, хотя при небольшой модификации прошивки можно подключать и 4-х символьный LED. Тогда температура будет выводится с точность до десятичных долей градуса. Опрос датчика составляет где-то 750мс. Схема проста и в печатной плате не нуждается, хотя кому больше нравится на печатной плате — можно нарисовать. Я контроллер ATtiny2313 ставил сзади LED индикатора и всё соединял проводами.
Принципиальная схема цифрового термометра на ATtiny2313:
В архиве на форуме, есть прошивки для индикаторов с общим катодом и общим анодом. Так же все прошивки умеют работать с 8 х датчиками ds18b20. Ещё есть прошивка, которая меряет температуру с точностью до десятичных значений, при этом необходим 4х символьный LED дисплей, анод лишнего сегмента цепляют к PORTD.3 , а запятую цепляют на PORTB.7.
Использовать этот цифровой термометр можно в самом широком спектре устройств. Материал предоставил ansel73.
Форум по микроконтроллерам
Обсудить статью ПРОСТОЙ ЦИФРОВОЙ ТЕРМОМЕТР
radioskot.ru
В Интернете есть куча схем термометров на 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 Сайт автора.
Обсудить статью на форумеcxema.my1.ru