Термометр на микроконтроллере своими руками

Добавил пользователь Дмитрий К.
Обновлено: 04.10.2024

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

Основа схемы термометра микроконтроллер 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.

Термометр на PIC12F629

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

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

Использование индикатора на регистрах сдвига позволяет создать компактный двухточечный термометр, с использованием самого простого микроконтроллера PIC12F629. Два вывода этого микроконтроллера используются для управления индикатором. Один из них выполняет функцию передачи тактового сигнала, второй информационный. Регистры сдвига 74164 при обнаружении тактового импульса, переключают уровень сигнала с информационного входа, на выход Q0. Информация предыдущего состояния выходов сдвигается на один разряд. К выходам регистров подключены светодиодные семисегментные индикаторы. При этом десятичная точка используется только у второго индикатора, а к свободным выходам подключены светодиоды отрицательной температуры и номера отображаемого датчика. Для работы индикатора применены простые сдвиговые регистры 74HC164 (1553ИР8). Три таких микросхемы соединены последовательно. В итоге, в работе индикатор не требует постоянного к нему обращения, как это необходимо при реализации динамической индикации.

Термометр на PIC12F629 - принципиальная схема

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

Термометр на PIC12F629

Особенности PIC12F629 не дают возможность использования одного вывода (GPIO3), так как он работает только на вход. Сам микроконтроллер работает от внутреннего тактового генератора, что позволило освободить две линии ввода/вывода.

Конструкция термометра

Конструктивно термометр выполнен на односторонней печатной плате. В конструкции использовано большое количество элементов поверхностного монтажа. микросхемы регистров используются в корпусе SOIC, а сопротивления типоразмера 1206. На плате установлены две перемычки, а также два разъема для подключения датчиков. Печатная плата размерами 64х30 мм выполнена в программе SprintLayout5 под технологию лазерно-утюжную технологию.

Файлы проекта и другие ресурсы

Управляющая программа

Программа работы термометра написана на языке MikroPASCAL. Использованы стандартные функции работы с устройствами шины 1-Wire.

По просьбам тех, кто собрал предыдущую конструкцию барометра на PIC 16F684 и датчике давления BMP180, публикуем статью (продолжение). Данное устройство позволяет отображать одновременно и температуру и давление. Для этого в конструкции был применен индикатор на базе микросхемы MAX7219 которая позволяет работать с матрицей 8Х7, применение данного индикатора позволило сократить число задействованных портов микропроцессора.

Датчик температуры применен самый распространенный — 18b20, который имеет трехвыводную конструкцию. DS18B20 (Programmable Resolution 1-Wire® Digital Thermometer). Диапазон измерения температуры составляет от -55 до +125 °C. Для диапазона от -10 до +85 °C погрешность не превышает 0,5 °C.

Схема устройства показана на рисунке 1.

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

Индикатор MAX7219 приобретался на Aliexpress. Но данный индикатор продается уже в готовом виде и вам остается только 5ю проводниками его подключить к запрограммированной плате.

Принципиальная схема индикатора показана на рисунке 2, внизу показано фото такого индикатора.

Индикатор MAX7219

Внешний вид собранного устройства показан на фото ниже.

Самодельный барометр

Отрицательные температуры отображаются, минус перед числом и градусы отображаются без десятых долей.

Искал простой термометр для дома что бы выполнить в полевых условиях (переехал в другой город и только паяльник и монтажная плата из инструментов), задача была проста - а именно узнать температуру прежде чем выйти из дома и занять себя на время сборки

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

Схема (Из оригинала статьи тут мне добавить собственно нечего)

1862225505.jpg

На схеме показан запасной вариант включения термодатчика, если он не захотеть работать по первому варианту (хотя у меня заработало все сразу). Хочу обратить внимание на резистор в 4.7 кОм, изменение его значения чревато нестабильной работой устройства, хотя можно поэкспериментировать.

Сегментный индикатор подключен на прямую к микроконтроллеру (как и в моем варианте реализации) но я бы рекомендовал добавить ограничительные резисторы номиналом 150-470 Ом.

Что получилось при сборке

  1. припаять smdрезистор (такого наминала в магазине не оказалось, но мне попалась плата с нужным мне резистором на мусорке)
  2. поиск проводов (как бы это банально не звучало)
  3. самое главное! Программатор для тиньки. У меня был программатор USBASP (купленный на ебэе за 3$) который работать с контроллером отказался, причины так и остались для меня тайной…

Пришлось искать компьютер с LPTпортом (что нынче проблема великая) для использования старого доброго….

img3.jpg

А вот и фьюзы для программы PonyProg (будьте внимательны неправильная их расстановка ведет блокированию микроконтроллера в лучшем случае, при разблокировке обычно спасает кварцевый резонатор на 8 мГц ) :

1107963883.jpg

Ну и конечно что получилось в результате

690507331.jpg
1854420115.jpg

1407720739.jpg
3518532338.jpg

На индикатор натянул пленку красного цвета для того что бы в глазах не рябило и воспринималось красивее

Питание контроллера упростил до практически критического минимума оставив только стабилизатор 7805 (планировал питать от USBпорта ноутбука где перепады и помехи маловероятны)

880539376.jpg

В итоге мы имеет ОЧЕНЬ простое устройство которое способен повторить любой начинающий радиолюбитель (единственное на мой взгляд что может вызвать трудность так это прошивка микроконтроллера )Габариты сравнительно малы, в первом прототипе устройства разместил в пластмассовый корпус из под жвачки (фото к сожалению не могу показать но все устройство помещалось в ладонь ) И один из главных плюсов (не считая точности) это индикатор – в темноте отлично видно и не надо ломать голову над подсветкой как с китайскими термометре на ЖК которые при холоде ещё и отображаться неадекватно

Точность измерить не удалось но судя по бытовым приборам очень высока

Читайте также: