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

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

Основа схемы термометра микроконтроллер PIC16F628A, он выбран не случайно во первых его легко достать, а во вторых он достаточно дешевый, кроме того он обладает блоком энергонезависимой памяти и внутренней RC цепочкой, которую мы применим в роле тактового генератора с фиксированной частотой на четыре МГц. Это позволило нам существенно облегчить вес схемы, уменьшив общее количество радиокомпонентов.

В качестве измерительного датчика температуры мы взяли недорогой и доступный цифровой датчик DS18B20 передающий информацию о температуре сразу в цифровом виде, что позволило исключить из схемы достаточно дорогой АЦП. В соответствии со своими техническими характеристиками датчик DS18B20 может измерять температуру в диапазоне от -55… +125 °С. И

Информация подается на трех разрядный семисегментный индикатор зеленого цвета с общим катодом, и только поэтому дробная часть информации о температуре не выводится, поэтому если требуется более высокая точность измерения используйте другой сегментный индикатор. Сопротивления R5-R11 применяются с целью токоограничения, катоды индикатора подсоединяются через биполярные транзисторы типа КТ315, это позволяет разгрузить отдельные пины микроконтроллера.

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

Печатная плата схемы цифрового термометра, отображена на рисунке ниже, была сделана в специализированной программе Sprint-Layout. Этот чертеж в оригинале вы сможете найти в архиве по зеленой стрелочке в начале статьи.

Термометр способен работать как с преобразователем DS18B20, так и с датчиком DS1820(DS18S20). Под каждый температурный преобразователь применяется своя прошивка микроконтроллера. На фотографии выше показан вариант этого измерительного устройства с уже установленным на печатную плату диодным мостом и стабилизатором типа 7805. Кроме того, к конструкции добавлен светодиод, который кратковременно загорается во время опроса МК температурным датчиком. Светодиод подсоединен между ножкой RB3 (9 вывод ) и "массой", естественно с сопротивлением.

Схема универсального программатора EXTRA-PIC и сама программа, а также опсание ируководство по использованию. Сделайте это один раз и вы всегда сможете запрограмировать PIC микроконтроллер.

Для отображения температуры у микроконтроллера использованы два вывода для тактирования и для передачи информации.

Микросхемы 74164 регистрового сдвига при появлении тактового импульса, переносят значение входного сигнала на выход Q0. Значение прошлого то же передвигается на один шаг. Семи сегментные индикаторы подсоединены к регистровым выходам. К свободным выводам подключены светодиоды для индикации знака отрицательной температуры и номера считываемого температурного датчика. В роли температурных датчиков используется таже микросхема. В архиве к схеме вы найдете прошивку для микроконтроллера и чертеж печатной платы устройства.

Схема цифрового термометра, выполнена на микроконтроллере Attiny2313 и имеет выносной цифровой датчик DS18B20. Пределы измерения от -55 до +125 градусов, шаг измерения 0,1 градус. При необходимости можно использовать до восьми цифровых датчиков. Микроконтроллер обменивается данными с датчиком по протоколу 1Wire.

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

Читайте также:  Как сделать вазу из цемента и тряпки

Для прошивки микроконтроллера Attiny2313 требуется выставить фьюзы в соответствии с рисунком для программы CodeVision AVR:

Прошивку и чертеж печатной платы в формате Sprint-Layout вы можете скачать нажав на зеленую ссылочку рядом с заголовком.

В роли датчика в первой конструкции применена крайне интересная идея, а именно использование старого отечественного транзистора типа КТ315В, а во втором устройстве используется типовой преобразователь ds18b20.

Двухканальный термометр на AtMega8

Автор: Nusik1975
Опубликовано 15.05.2012
Создано при помощи КотоРед.

Понадобился мне термометр, который одновременно показывает температуру на улице и дома. В Интернете полно схем, которые реализованы с использованием датчика DS18B20, и даже не одного, а нескольких… Но во всех термометрах, схемы которых я нашел, был только один семисегментный индикатор с 2, 3 или 4 разрядами. Вывод температуры на него с двух и более датчиков производится попеременным переключением индикации. Аналогичный термометр прослужил мне некоторое время. Но мне показалось это неудобным. Было принято решение использовать 2 трехразрядных семисегментника, чтобы температура с каждого из двух датчиков выводилась на свой дисплей. Но готовых решений в Интернете я не нашел, поэтому пришлось самому сделать то, что требуется. Конечно, можно изготовить два отдельных термометра и разместить их в одном корпусе… Но это нерационально.

В моем двухканальном термометре используется 2 датчика DS18B20-один для улицы и второй для дома. Датчики эти привлекают достаточной точностью показаний и неприхотливостью. Применен микроконтроллер AtMega8А в корпусе TQFP32 (других под рукой не оказалось), и семисегментные трехразрядные индикаторы с общим анодом CPD05231UR2/A. Они достаточно яркие при небольшом токе потребления. Транзисторы в цепях анодов являются ключевыми, дабы не превышать максимальные токи для портов МК.

Схема устройства (нажмите для увеличения)

Схема питания стандартна – стабилизатор 7805. В качестве источника питания применил зарядное устройство от сотового телефона Siemens. Оно дает на выходе примерно 7,5 вольт, что достаточно для нормальной работы стабилизатора 7805.

Печатная плата у меня получилась двусторонней, разрабатывалась под конкретный корпус. На одной стороне размещен стабилизатор, 2 семисегментника, разъем питания, электролитический конденсатор, разъем для программирования и подтягивающий резистор на 4,7 кОм для нормальной работы датчиков. Все остальные детали размещены на другой стороне платы. Конечно, можно использовать микроконтроллер и в DIP-корпусе, но тогда придется нарисовать свою печатную плату, ориентируясь на названия портов микроконтроллера.

Один датчик (комнатный) установлен сбоку корпуса, а второй-на улице. Для правильности показаний уличный датчик нужно установить так, чтобы на него не падал солнечный свет и не попадали атмосферные осадки. Желательно его ставить с северной стороны дома, где солнышка мало. Я его разместил в воронке, сделанной из пол-литровой пластиковой бутылки, обрезав ее. Предварительно надо загерметизировать контакты датчика. У меня это выглядит так (кликабельно):

Датчик закреплен с внешней стороны балкона.

Тактовая частота МК выбрана 8 МГц. Кварц я не использовал-нет необходимости. Частоту внутреннего генератора выставляем фьюзами, как на картинке:

Картинка дана для программы CodeVision AVR.

Читайте также:  Крупнейшие бассейны медной руды в мире

Для выставления фьюзов в других программах я пользуюсь универсальным правилом. Считываем фьюзы нового МК и смотрим на фьюз RSTDISBL. Если на нем нет галочки (как в CodeVision и как на скриншоте), то все галочки ставим также. А вот если на этом фьюзе есть галочка, то все фьюзы нужно выставить инверсно, то есть наоборот. Фьюз RSTDISBL никогда не трогайте. Если его изменить, то прошивка МК станет невозможна.

Прошить микроконтроллер можно любым программатором AVR. Я постоянно пользуюсь программатором STK200. Мне он нравится своей простотой, развязкой от LPT-порта и скоростью прошивки чипов.

Микроконтроллер можно применить с любыми буквами. Если используете МК в DIP-корпусе, будьте внимательны при разводке платы. Семисегментные индикаторы можно применить любые трехразрядные (или 4-х разрядные) с общим анодом. Резисторы R4-R11 являются токоограничительными, ими можно подобрать яркость свечения индикаторов, не забывая о максимальном токе в 20 мА на порт микроконтроллера. Транзисторы BC857B можно заменить аналогичными с проводимостью PNP. Так как отладкой я занимался непосредственно в железе, был установлен разъем для ISP-программирования.

Вот что получилось в итоге.

Термометр на стене.

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

Доброго времени суток уважаемые читатели. Как видно из названия статьи , речь в ней пойдет о термометре собранном на PIC. Итак. Почему и как всё начиналось?!
Понадобилась мне схема простейшего термометра для подвала гаража. Начал искать подходящую схему в Интернете. Важным критерием было применение минимального количества элементов в схеме. Сразу скажу, что таких схем термометров в сети навалом. Но! Чаще всего они выполнены на AVR с которыми я к глубокому своему сожалению не дружу. Поэтому стал искать схему на PIC. Но и тут меня ожидало разочарование. Схемы термометров на PIC есть. Но там применяют, то транзисторы для индикаторов, то внешний кварц, либо еще что то, что усложняло схему и было неприемлемо в моем случае. Наконец, после долгих поисков, подходящая мне схема была найдена тут:

http://www.labkit.ru/html/show_meter?id=38
И была успешно повторена неоднократно. Всё прекрасно работает. (на сайте автора этой схемы есть и прошивка и печатная плата для повторения данного термометра). Время шло. И в одно прекрасное время во первых выяснились недочеты данной схемы и еще мне понадобилось применить индикатор с Общим Катодом (на сайте автора прошивка была только под Общий Анод). Теперь о недочете схемы в первоисточнике. Изначально в схеме автора нет резистора подтяжки у датчика температуры. Тоесть резистор на 4,7К в схеме отсутствует. Да действительно при таком исполнении схемы термометр может работать, но только при условии, если датчик температуры впаян сразу в плату, либо длина провода на котором находится датчик не должен превышать длины провода метр, полтора метра. Не более. В противном случае индикатор начинает показывать какую- то ерунду, а не температуру.
Такой поворот событий меня совсем не обрадовал. Потому как длинна провода с датчиком мне была нудна не менее 10 метров.
Эта проблема решилась очень просто и быстро, именно установкой подтягивающего резистора 4,7К на датчике. После чего датчик стал работать стабильно при любой длине провода. Но как быть, если у меня есть индикаторы только с общим катодом! А прошивка сделана под анод… Вот тут мне и помог Станислав Дмитриев. За что ему огромнейшее спасибо. Он не только написал прошивку под общий анод. Но так же и под общий катод и под разные типы датчиков температуры (DS18S20 или DS18B20). Что позволило еще более унифицировать данную схему. И рекомендовать её к повторению. Также можно применить в схеме как четырех разрядные семисегментники так и трех разрядные семисегментники. Что является не большим, но все, же плюсом.
Теперь сама схема

Читайте также:  Позис 257 морозильник отзывы

Как вы видите, схема не отличается от той, что представлена, была на сайте http://www.labkit.ru
Так и было задумано изначально. Единственное изменение в схеме это установка дополнительного резистора. Схему я не стал перерисовывать с нуля. Просто добавил недостающий элемент схемы. По сути если Вы хотите еще более упростить схему и у вас есть стабильный источник питания 5В, то Вы можете исключить из схемы и линейный стабилизатор. И запитать МК сразу от 5В.
Теперь поговорим немного о том, как самому настроить прошивку под нужный вам индикатор или датчик. Тут всё просто.

Загрузив файл прошивки в программатор, Вы сами: исходя из того, что вам нужно и смотря на данный скриншот, прописываете нужные вам параметры в файл прошивки в разделе EPROM. После чего можете прошивать контролер.

В моём варианте печатной платы в плате предусмотрено место не только для линейного стабилизатора, но и для диодного моста (что позволит запитывать схему напряжением от 7,5В до 12В. А так же на плате предусмотрено место для установки клемника, который позволяет не впаивать датчик температуры в плату, а зажать его зажимами. Это удобно при смене датчика, либо при установке датчика на длинный провод. Позволяет быстро сменить провод.

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

Подводя итог скажу.
Благодаря трудам, проделанным Станиславом Дмитриевым, в данной схеме стало возможным применять;
Датчики температуры DS18S20 или DS18B20
Семисигментные индикаторы, как с общим анодом, так и с общим катодом.

Бонусы:
Отображение на дисплее информации без десятых долей, либо с десятыми долями градуса.
Без знака градуса, либо со знаком градуса.

Ссылка на основную публикацию
Adblock detector