» » Простой цифровой термометр на ATmega8535 + DS18B20

 
 
 
16

Простой цифровой термометр на ATmega8535 + DS18B20

Разместил hsl 10 августа 2010. Просмотров: 26 196


Доброго времени суток!
Представляю простой, цифровой термометр на индикаторе ИЖЦ21-4/7, микроконтроллере (МК) ATmega8535 и цифровом датчике DS18B20, собственно это практически все детали, еще пару резисторов и 3 конденсатора, необходимые для сборки этого термометра. Диапазон измерений от -55 до +125 градусов, поскольку датчик цифровой, термометр не нуждается в калибровке и настройке.
И так по порядку, дисплей жидкокристаллический, сегментный, без контроллера, т.е. у него отдельные выходы с каждого сегмента и один общий электрод.
Я использовал ИЖЦ21-4/7,

только по тому, что у меня завалялись именно они. Но в устройстве можно использовать любой дисплей подобного типа. Плату в таком случае, конечно, придется переделать под выводы имеющегося дисплея.
Управлять таким дисплеем можно либо через сдвиговые регистры, либо подключить напрямую к выводам МК, но в таком случае нужен мк с достаточным количеством выводов. Сдвиговых регистров я не нашел, ни у себя в запасах, ни в магазинах, а вот подходящий МК в магазине оказался ATmega8535, лучше было бы конечно использовать ATmega8515 она и по проще и подешевле должна быть, но их не было, так что остановился на ATmega8535.
Датчик, тут выбирать нечего, есть DS18B20, простой, цифровой, достаточно точный.
Набросал схемку
Исключён фрагмент. Полный вариант статьи доступен только полноправным членам сообщества и подписчикам.
Пожалуйста, ознакомьтесь с условиями доступа.

схема можно сказать примитивная, что касается питания, в схеме по этому поводу ничего не указал, поскольку запитал все это от слегка доработанного зарядника от сотового телефона,

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

в нем, например, есть память пиковых значений по плюсу и минусу, но как показала практика, ниразу практически ими не пользовался. Да и вообще делать какие то настройки, меню, на таком, если можно так сказать, мало приспособленном для таких целей дисплее проблематично, если уж делать что то навороченное, то на графическом дисплее. Так что тут решил, ограничится минимумом, только температура и никаких излишеств.
На всякий случай собрал на макетке, проверил, естественно работает, не работать то там просто нечему, развел плату

термометров мне нужно два, поэтому и плат две, на одном куске текстолита. Можно конечно было подключить к одному МК два датчика, извратится и подключить два дисплея, но так все же проще, да и универсальнее, можно распилить и будет два отдельных термометра)
а это уже полностью собранная плата

прошил МК, подключил

опять же все начинает работать сразу после подачи питания, никаких настроек, калибровок не требуется.
По схеме и плате в принципе все, можно брать ставить в подходящий корпус и использовать.
Прошивается МК внутрисхемно, под это дело на плате выведены контакты, фьюзы при прошивке в CodeVisionAVR выставляются так
Простой цифровой термометр на ATmega8535 + DS18B20

Теперь нужно это дело, куда то вставить, а с корпусами можно сказать всегда не просто)
Но я для себя довольно давно нашел одно решение, мне по работе частенько приходится обслуживать печатающе-копирующую технику и с нее остаются кое какие детали, в данном случае речь идет о фоторецепторах, кто не в курсе что это и как выглядит, вот

собственно кусок трубки из мягкого, легко обрабатываемого материала, алюминий или сплав какой то, диаметром бывают разные, мне попадались до 80 мм. В данном случае под рукой оказался диаметром 30 мм, почти то, что надо, отрезаем кусок, немного длинней платы, длиннее миллиметров на 6-10. И срезаем часть окружности вдоль, чтобы получилось вот так

Как рассчитывается, сколько нужно срезать? Плата вставляется внутрь ровно по центру

сверху над платой ставится оргстекло

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

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

это часы, делал их уже давно, из фоторецептора диаметром 80 мм.
Вот такая вот вторая жизнь отработанных фоторецепторов wink

Файлы

Все схемы, платы в формате Dip Trace, монтажные платы, прошивка.
files.rar | Файл 245,6 Kb загружен 145 раз.
Сергей (hsl)
РФ, г. Ульяновск
Профиль hsl
О себе автор ничего не сообщил.
 

Понравилось? Палец вверх!

  • всего лайков: 14

18 сентября 2016 изменил Datagor. Исправлена ошибка на схеме

Поделись с друзьями!

Связанные материалы:


Схема на Датагоре. Новая статья Немного про шину 1-Wire и цифровой термометр DS18b20... Фотка от www.150cc.ru Здравствуйте, друзья. Хочу предложить вашему вниманию несколько простых...
Схема на Датагоре. Новая статья Простой электронный прерыватель поворотов для Skoda-Felicia на CD4069... В первую очередь привет всем шкодоводам. Проблема, о которой я расскажу, присуща всем не новым...
Схема на Датагоре. Новая статья LB3500 + LC7265. Цифровая шкала для УКВ/FM-приёмника... 1. Что такое цифровая шкала?В современных приёмниках и тюнерах есть много дополнительных сервисных...
Схема на Датагоре. Новая статья SHT10 + Atmega8: Микроконтроллерный модуль управления вентилятором санузла, v2... Доброго дня, сограждане! Представляю вторую версию блока управления вентилятором для ванной,...
Схема на Датагоре. Новая статья Печем платы! Утюг-пресс для ЛУТ из ТЭНов для духовки... Одна из самых капризных и трудноповторимых операций при лазерно-утюжной технологии (ЛУТ) — это...
Схема на Датагоре. Новая статья Изготовление разъема для LCD дисплея из старого компьютерного шлейфа... При установке дисплея на плату конечно можно его просто запаять непосредственно к плате, или...
Схема на Датагоре. Новая статья Преобразователь сигналов для механического энкодера... При использовании механического энкодера в своих разработках возникают некоторые проблемы, так как...
Схема на Датагоре. Новая статья Цифровой измеритель остатка топлива и напряжения АКБ для автомобиля (ATMega8 и дисплей от Nokia 1110i)... Не знаю кому как, а мне лично не нравится точность, вернее ее полное отсутствие у автомобильного...
Схема на Датагоре. Новая статья Счётчик витков для намоточного станка на ATtiny13... Случилось так, что припекло мне трансформатор мотать, всё бы хорошо, да станка только не хватает -...
Схема на Датагоре. Новая статья Даташиты на микроконтроллеры AVR ATMega, ATTiny и AT90... Любому разработчику нужно знать специфику компонента, особенно если этот компонент -...
Схема на Датагоре. Новая статья TDA7050 - усилитель для наушников и простой микшер на 18 каналов... TDA7050 от PHILIPS это стерео усилитель для наушников. Минимальная обвеска, надежность. Не сгорает...
Схема на Датагоре. Новая статья Плагин iZotope Ozone для Winamp. Средство улучшения звучания... Всем пользователям winamp посвящается! Предлагаю вашему вниманию плагин для winamp от...
<
  • Прохожий
10 августа 2010 15:42

/ KiberPank

  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
  • 0
Еще 'Их' называют Фотобарабанами smile
Хорошая конструкция, спасибо!

<
  • Гражданин
10 августа 2010 16:52

Максим Черепанов / еще один max

  • С нами с 10.03.2009
  • Ушёл в реал Пользователь offline
  • 91 комментарий
  • 10 публикаций
 
  • 0
Просто и со вкусом. Интересно, стоимость МК плюс датчик плюс дисплей больше или меньше китайских промышленных аналогов? Я, кажись, в магазине видел рублей по 250... Ну плюс еще потрахаться с фотобарабаном :)
Когда-то думал себе поставить в машину тоже с двумя дисплеями - температура снаружи-внутри, а потом понял, что в данном случае критериев "Тепло-холодно-хорошо" достаточно. А для дома такая штучка очень полезна, спасибо! Писалось на Си? Если да, исходник мона?

<
  • Гражданин
10 августа 2010 20:35

Сергей / hsl

  • С нами с 18.12.2009
  • Ушёл в реал Пользователь offline
  • 54 комментария
  • 7 публикаций
 
  • 0
еще один max, насчет стоимости, китайский термометр - вот тот что на фотке я покупал за 450 руб., это было правда года два назад, но не думаю что они сейчас сильно подешевели, по крайней мере у нас, да и точность у них значительно хуже, чем у датчиков DS18B20.

А стоимось деталей для сборки, довольно относительна, если все покупать то может и не выгодно будет делать, опять же цены то везде разные, но я то собирал по максимуму из того что уже было, покупал только контроллеры, так что вышло явно дешевле. Да и иной раз собрать что то самому интереснее, даже если в итоге выйдет дороже готового аналога smile
Да писалось на Си в CodeVisionAVR, исходник скинул в личку.

<
  • Главный редактор
10 августа 2010 21:40

Игорь Петрович Котов / Datagor

  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 631 комментарий
  • 261 публикация
 
  • 0
Сергей, на 101% поддерживаю.

Макс, я считаю, что не следует искать в нашем с вами хобби офигительную экономическую выгоду. Странно ожидать двойной приход от одного занятия: и отдых души с радостью творчества и денежную выгоду.

С китайскими штамповками по показателю цены не может поспорить ни один мировой производитель. Ну и что?


<
  • Прохожий
11 августа 2010 12:06

/ vampo

  • С нами с --
  • 0 комментариев
  • 0 публикаций
 
  • 0
отработанных фотобарабанов на работе скопилось уже достаточно.. спасибо за идею в их использовании.

<
  • Гражданин
11 августа 2010 12:44

Максим Черепанов / еще один max

  • С нами с 10.03.2009
  • Ушёл в реал Пользователь offline
  • 91 комментарий
  • 10 публикаций
 
  • 0
Сергей, спасибо за исходник, мне для "повышения самообразованности" полезно, но я бы вывод на дисплей не в прерывании делал, а в теле программы. Или уж опрос датчика тоже перенес в прерывания... Чем лучше разносить эти процессы? Для исключения превратного толкования вопроса сразу оговорюсь, что спрашиваю потому, что интересно. Места в памяти действительно осталось много, и выводы свободные есть. Можно индикацию температуры сделать как сервисную функцию, а основную программу сделать для чего-нибудь еще, не лучше ли в таком случае температурный блок отделить от основного?
Игорь, я разве искал выгоду? Или мой вопрос кого-то задел? Мне конструкция понравилась, это я ясно дал понять.
А насчет китайских комплектующих - есть гарантия, что датчик в этом устройстве сделан не в Китае? И контроллер?

<
  • Гражданин
11 августа 2010 15:48

Сергей / hsl

  • С нами с 18.12.2009
  • Ушёл в реал Пользователь offline
  • 54 комментария
  • 7 публикаций
 
  • 0
еще один max, не не, все не так smile , и вывод на дисплей не в прерываниях и опрос датчика в прерывания нельзя, по крайней мере такой опрос. Вывод на дисплей, или запись в порты происходит в процедуре decbin, а в прерываниях всего навсего идет пересчелкивание портов в инверсию и обратно. На этом основан принцип работы этих дисплеев, они хоть и питаются постоянным током, но держать их под напряжением постоянно нельзя, что то там нехорошее с кристалами происходит. Поэтому питать их нужно через меандр, сегмент который попадает в противофазе к кобщему электроду включается. Получается так, загнали в порты значение, а потом только перекидываем порты, создаем меандр так сказать. Выносить инверсию портов из прерываний с таким опросом датчика тоже нельзя, опрос идет ~800 милисекунд, а переключать порты нужно ну никак не реже чем 100 Гц, а лучше и почаще, иначе будет заметно мерцание. Опрос датчика специально сделан отдельно, чтоб не мешал ничему, т.е. в прерываниях постоянно идет переключение, им опрос датчика не мешает, когда идет запись в порты прерывания останавливаются, но это происходит довольно быстро, частота заданная в прерываниях не сильно сбивается. А если делать что то еще на базе данной конструкции, опрос датчика нужно будет делать совсем по другому инече эта задержка будет тормозить всю программу. Но как я уже писал делать что то более серьезное на таком дисплее не серьезно smile Есть в планах идея сделать, так называемую погодную станцию, с часами, температурой, давлением, влажностью, но это будет уже другая история и однозначно на другом дисплее.
Кстати насчет комплектующих, гарантии разумеется нет, но этот цифровой датчик, я бы даже сказал датчики, поскольку использовал их уже достаточно много, намного точнее вот того китайского термометра, их я тоже сравнивал штук 5.

<
  • Гражданин
11 августа 2010 17:24

Максим Черепанов / еще один max

  • С нами с 10.03.2009
  • Ушёл в реал Пользователь offline
  • 91 комментарий
  • 10 публикаций
 
  • 0
У, как все сложно... Еще раз пересмотрел код, функцию-то я и не приметил... Сымаю кепку! Дошел смысл - плясалось от наличия дисплеев и датчиков...

<
  • Гражданин
11 августа 2010 18:07

Сергей / hsl

  • С нами с 18.12.2009
  • Ушёл в реал Пользователь offline
  • 54 комментария
  • 7 публикаций
 
  • 0
Упс, а датчик то на схеме я не правильно пририсовал, нужно соответственно Vcc на Х3, GND на Х1, DQ на Х2. На монтажной схеме и плате все правильно, это на самой схеме просто перепутано.

<
  • Главный редактор
11 августа 2010 20:59

Игорь Петрович Котов / Datagor

  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 631 комментарий
  • 261 публикация
 
  • 0
Схема на картинке и архив исправлены и перезалиты.
Спасибо Сергею за оперативность!

<
  • Гражданин
12 августа 2010 00:57

Игорь / xtrason

  • С нами с 4.10.2009
  • Ушёл в реал Пользователь offline
  • 6 комментариев
  • 0 публикаций
 
  • 0
Конструкция понравилась, но больно уж все сложно и навороченно! Если использовать обыкновенный LCD с контроллером 44780, то можно для двух датчиков прогу вместить и в 4 кБ памяти, да и ног гораздо меньше потребуется. К тому же и часики туда же прикрутить мона, чтобы попеременно: -то температура , -то часики...
А юзать Мегу8535 для того, чтобы просто измерить температуру, ИМХО излишество это...

<
  • Гражданин
12 августа 2010 02:57

Сергей / hsl

  • С нами с 18.12.2009
  • Ушёл в реал Пользователь offline
  • 54 комментария
  • 7 публикаций
 
  • 0
xtrason, сложно??? наворочено?? wassat Да проще же некуда, нужно для поставленых целей 3 детали, дисплей - датчик - МК, они и есть и ничего лишнего. А дисплеи у меня есть разные, и на 44780 и от сотовых, но для поставленой задачи эти подошли идеально по всем параметрам: 4 семгента, больше и не надо, большие цифры, низкое потребление, не нужна подсветка. А реализация на Меге8535, ну да может и излишество, ну а что тут поделаешь, как я уже писал, нашел только их, ни более просой 8515 ни сдвиговых регистров нету. Я вообще сначала хотел все в ATiny13 запихнуть плюс регистры, но не судьба, но мне кстати и так нравится.
Часики, ну вообще логично, но опять же мне туда часы без надобности, а вот эти переключающиеся переодически режимы я не люблю, предпочитаю обозревать всю доступную информацию сразу.


<
  • Главный редактор
12 августа 2010 19:25

Игорь Петрович Котов / Datagor

  • С нами с 25.02.2011
  • Ушёл в реал Пользователь offline
  • 1 631 комментарий
  • 261 публикация
 
  • 0
Сережа,
я уж думаю, не сделать ли отдельно статью про использование фоторецепторов в радиолюбительской практике? И положить в раздел "Секреты самодельщика".

Ведь не всем придет в голову искать технологию изготовления модных корпусов среди микроконтроллеров.
wink

<
  • Гражданин
12 августа 2010 20:13

Сергей / hsl

  • С нами с 18.12.2009
  • Ушёл в реал Пользователь offline
  • 54 комментария
  • 7 публикаций
 
  • 0
Можно и отдельную, только надо будет еще разных фоторецепторов сфоткать, на той неделе посмотрю, что еще на работе валяется.

<
  • Гражданин
9 октября 2012 15:32

Владимир / vladomir

  • С нами с 6.09.2009
  • Ушёл в реал Пользователь offline
  • 46 комментариев
  • 0 публикаций
 
  • 0
Голосую ЗА!

<
  • Прохожий
22 января 2015 22:19

Сергей / serka

  • С нами с 21.07.2008
  • Ушёл в реал Пользователь offline
  • 6 комментариев
  • 0 публикаций
 
  • 0
Хочется спросить про ток потребления дивайса (device).

Информация
Вы не можете участвовать в комментировании. Вероятные причины:
— Администратор остановил комментирование этой статьи.
— Вы не авторизовались на сайте. Войдите с паролем.
— Вы не зарегистрированы у нас. Зарегистрируйтесь.
— Вы зарегистрированы, но имеете низкий уровень доступа. Получите полный доступ.