Термометр на ATmega8 и датчике температуры DS18B20. Контроллер больших температур на термопаре K-типа. PIC16F676 - Термометры - Конструкции для дома и дачи Измеритель температуры с термопарой схема

Термометр на ATmega8 и датчике температуры DS18B20

Схема термометра на ATmega8 и DS18B20

Цифровой термометр DS18B20
Семисегментный светодиодный индикатор
Алгоритм программы термометра
Программа цифрового термометра на DS18B20

Схема и программа очень простого цифрового термометра с использованием микроконтроллера ATmega8 и датчика температуры DS18B20 . Термометр позволяет измерять температуру от 0 до 99 градусов с точностью до 0,5 градусов с разрешением 0,1 градуса

Термометр по своим характеристикам очень прост, и его можно использовать только как термометр для измерения «комнатной» температуры. Использовать в этой конструкции микроконтроллер с памятью 8 килобайт конечно расточительно, можно применить микроконтроллер и попроще. Но дело в том, что эта конструкция — основа для дальнейшего развития проекта с использованием цифрового датчика температуры DS18B20. В следующей статье будет опубликована конструкция другого термометра — на двух датчиках DS18B20, что позволит измерять температуру не только в комнате, но и «за бортом». Естественно, будет добавлена возможность измерять и отрицательные температуру. В дальнейшем в конструкцию будет добавлена функция термостата, часы, возможность работы с различными нагрузками, что позволит уже собрать несложную конструкцию — основу «умного дома». Ну а сегодня первая статья из этой серии.

Схема термометра на ATmega8 и датчике температуры DS18B20

Давайте посмотрим на схему термометра:

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

Напряжение питания конструкции — 5 вольт. Если вы примените микроконтроллер с низковольтным питанием , то можно и понизить питающее напряжение конструкции, но в этом случае, возможно придется уменьшить номинал гасящих сопротивлений в сегментах индикатора. Приблизительно номиналы сопротивлений можно брать:
— при питании 5 вольт — 200-300 Ом
— при питании 2,7 — 3 вольта — 100-150 Ом


Транзисторы — любые, маломощные, структуры NPN.
Датчик температуры — DS18B20
Семисегментный индикатор — любой трехразрядный с общим катодом. Если вы захотите применить другие, с общим анодом, тогда придется заменить транзисторы на PNP и внести изменения в программу (заменить массив двоичных кодов для вывода цифр на индикатор). Я применил индикатор красного цвета свечения, и заодно, для следующей схемы, приготовил такой-же, но голубого цвета свечения.

Детали термометра на микроконтроллере ATmega и DS18B20



Распиновка микроконтроллера ATmega8:

Трехразрядный семисегментный индикатор FYT-5631AUR-21:

Датчик температуры DS18B20:

Транзисторы BC547C:

Алгоритм работы программы термометра на ATmega и DS18B20

Все установки микроконтроллера заводские, FUSE-биты трогать не надо.

Для работы программы задействовано два таймера/счетчика микроконтроллера:
восьмиразрядный Т0
шестнадцатиразрядный Т1
С помощью восьмиразрядного таймера Т0 настроенного на вызов прерывания по переполнению, с внутренней частотой СК/8 (период 2 миллисекунды) организован:
— расчет текущей температуры
— динамический вывод результатов измерения температуры датчиком DS18B20
С помощью шестнадцатиразрядного таймера Т1 настроенного на вызов прерывания по переполнению, с внутренней частотой СК/64 (период 4 секунды) организованно:
— подача команды датчику DS18B20 на измерение температуры
— считывание измеренной температуры с датчика
В принципе, можно задействовать и один восьмиразрядный таймер/счетчик, также настроенный на вызов прерывания по переполнению, с внутренней частотой СК/8, и всю работу схемы организовать в процессе обработки прерывания. Но дело в том, что смысла в этом нет — датчику DS18B20 необходимо чуть меньше 1 секунды (при 12-ти битном разрешении) для конвертирования (определения) температуры, т.е., чаще чем 1 раз в секунду мы не сможем обновлять данные температуры. Кроме того, столь частое обновление температуры приведет к нагреву датчика и, соответственно, к искажению реальных данных. Использование второго счетчика позволяет отдельно задавать промежутки времени измерения температуры.

Вот так выглядит основная часть программы в Algorithm Builder:

Где:

SP — настройка начального адреса стека

Timer 0 — настройка таймера T0:

Timer 1 — настройка таймера Т1:

TIMSK — настройка прерываний от таймеров:

Init_Display — подпрограмма настройки разрядов портов, участвующих в динамической индикации вывода данных на трехразрядный семисегментный индикатор

1 —> I — глобальное разрешение прерываний

Если возникнут вопросы, если что-то изложено не понятно или есть вопросы по программе, пишите — отвечу.

(2,4 KiB, 7 012 hits)

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

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

Основные технические характеристики прибора: диапазон контролируемых температур от 0 до 200 или до 1200 °С в зависимости от используемого датчика. Погрешность термометра не более 1,5% от верхнего предела измерения; максимальная точность поддержания температуры до 0,05°С. Следует учитывать, что система с использованием ТП является дифференциальной, т.е. напряжение на ее выходе пропорционально разности температур между соединенными и свободными концами термопары Поэтому если при высоких контролируемых температурах влияние колебаний температуры окружающей среды на выходное напряжение ТП незначительно, и его можно не учитывать, то для контролируемых температур менее 200°С необходимо применять дополнительные меры по компенсации изменения температуры свободных концов термопары. Максимальная частота коммутации нагрузки 12,5 Гц, ток нагрузки до 0,1A, а при использовании дополнительного симисторного ключа до 80 А при напряжении ~220 В, габаритные размеры 120х75х160 мм.

Переменное напряжение 24 В с частотой сети (f), снимаемое с вторичной обмотки трансформатора Т1, через ограничивающий резистор R21 поступает на транзисторный оптрон U1, на выводе 5 которого образуются синхронизирующие импульсы, фронт которых по времени практически совпадает с моментами перехода сетевого напряжения через нуль. Далее эти импульсы поступают на цифровую часть прибора, которая на основе сигналов, приходящих с аналого вой части, формирует соответствующие управляющие сигналы.

Аналоговая часть прибора реализована на четырех ОУ микросхемы К1401УД2. Напряжение, снимаемое с ТП, усиливается ОУ DA1.1 и поступает на входы ОУ DA1.2...DA1.4, выполняющие роль компараторов. Опорные напряжения, определяющие пороги их переключения, задаются резисторами R8, R9, R11, R12, R14-R16. Благодаря отсутствию обратных связей в ОУ (DA 1.2-DA 1.4) и большому коэффициенту их усиления, достигнута очень высокая чувствительность прибора. Резистор R12 служит для установки верхнего температурного порога, при котором нагрузка отключается, а резистор R9 предназначен для задания разницы температуры (Dt) между верхним и нижним порогами переключения терморегулятора. Когда регулировка Dt не требуется, для обеспечения максимальной точности поддержания температуры вместо резистора R9 рекомендуется установить перемычку, резистор R8 при этом можно исключить из схемы. Цепи на элементах VD1-VD3, С1-СЗ, R10 R13, R17 служат для предотвращения прохождения отрицательного напряжения на входы цифровых микросхем и устранения помех. Синхронизация триггеров DD1.2, DD2.1, DD2.2 осуществляется импульсами, формируемыми счетчиком DD3. Логику формирования управляющих сигналов в устройстве поясняет таблица.

В установившемся режиме работы, когда температура на объекте соответствует заданной, индикатор HL2 должен быть постоянно включен, а индикаторы HL1, HL3 выключены. Об отклонениях температуры, сигнализирует включение индикаторов HL1, HL3. Для повышения наглядности они работают в мигающем режиме. Необходимые для управления этими индикаторами импульсы формируются на выходах 5 и 12 счетчика dD3. С вывода 9 триггера DD1.2 через эмиттерный повторитель на транзисторе VT1 сигнал идет на цепи индикации и управления нагрузкой. Принудительное отключение нагрузки осуществляется выключателем SA1, размыкающим эти цепи. Для управления нагрузкой используется динисторный оптрон U2, включенный в диагональ моста VD2. Максимальный коммутируемый ток в таком варианте составляет 0,1 A. Установив дополнительно семи-стор VS1 и соответственно изменив схему включения нагрузки, этот ток можно увеличить до 80 А.

Функции измерения температуры, а также отображение ее значения реализованы на основе микросхемы К572ПВ2 (аналог ILC7107) . Выбор этого АЦП обусловлен возможностью непосредственного подключения к нему светодиодных знакосинтезирующих индикаторов. При использовании жКи можно применить К572ПВ5 . При отжатой кнопке SВ1 на АЦП поступает напряжение с выхода ОУ DA1.1, обеспечивая режим измерения температуры. При нажатии на кнопку SВ1 измеряется напряжение на переменном резисторе R12, соответствующее температуре установленного порога регулирования.

Детали. В устройстве использованы постоянные резисторы типа МЛТ, подстроенные СП5-2 (R9, R15), переменный СПЗ-45 (R12), конденсаторы типа К73-17 (С11-С13), КТ1 (С10), К53-1 (С4-С7). Оптрон АОУЮ3В можно заменить АОУ115В. Индикаторы HG1-HG4 типа SA08-11HWA можно заменить отечественными КЛЦ402.

Настройка заключается в установке резистором R3 правильных показаний термометра при минимальной температуре, а резистором R4 - при максимальной. Для устранения взаимного влияния сопротивлений резисторов такую регулировку следует повторить несколько раз. Правильно собранный прибор в дальнейшей настройке не нуждается, необходимо лишь установить резистором R9 требуемое значение Dt, а резистором R15 - допустимый предел превышения температуры до включения аварийной сигнализации.

В качестве датчика температуры можно использовать полупроводниковый диод. Основными преимуществами последнего являются низкая стоимость и намного меньшая инерционность по сравнению с интегральным датчиком, точность измерений достигает 0,2°С в диапазоне температур от -50 до +125°С. Питание низковольтной части устройства осуществляется от двуполярного стабилизатора напряжением ±5 В, собранного на элементах DA2-DA3, С4-С9. Для управления оптроном U1 используется напряжение +12 В. Запрещается включение прибора без наличия заземления. Прибор имеет высокую помехозащищенность, допускающую значительную протяженность линии, соединяющей его с датчиком. Однако для обеспечения надежной работы прибора не следует прокладывать ее вблизи силовых проводов, несущих высокочастотные и импульсные токи.

Литература:

1. Ануфриев Л. Мультиметр на БИС// Радио.- 1986. №4.- C. 34-38.

2. Суетин. В. Бытовой цифровой термометр// Радио.- 1991. №10. C.28-31.

3. Гутников В. С. Интегральная электроника в измерительных устройствах. - 2-е изд. перераб. и доп. - Л.: Энергоато-миздат, 1988.

PIC16F676 Применение, это и паяльная станция, и управление высокотемпературными процессами и т.д. с функцией ПИД регулировки нагревательного элемента

Решил в свой ламинатор вставить термометр, термометр на термопаре K-типа. Чтобы он у меня стал более информативен, считаю, что хоббийный радиолюбитель не может довольствоваться, когда на таком приборе горит только два светодиода "POWER” и "READY” . Развожу платку под свои детальки. На всякий случай с возможностью её резать пополам(это некоторая универсальность). Сразу с местом под силовую часть на тиристоре, но пока эту часть не использую, это будет у меня схемка под паяльник (когда придумаю, как в жало термопару пристроить)


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


Настраиваю, сначала делаю, как сказано в форуме , не впаиваю термопару, задаю 400 (хотя если этот параметр будет в памяти, этот пункт отпадет) настраиваю переменниками примерно комнатную и точно по кипению,

Такой контроллер теоретически работает до 999°C но в домашних условиях такую температуру вряд ли найти, самое большее это открытый огонь, но у этого источника тепла сильная нелинейность и чувствительность к внешним условиям.

вот примерная таблица.
и еще для наглядности

Так что выбор невелик в выборе источника для настройки показаний контроллера.

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

делаю трансформатором по скрутке угольком, шарик получается, а к двум концам точно так, по медной проволочке, для хорошей пайки к моим проводам.

На МК. Сердцем его является микроконтроллер PIC16F628A. В схеме термометра используется 4-х значный или 2+2 светодиодный индикатор с общим анодом. Датчик температуры используется типа DS18B20, и в моем случае показания датчика отображаются с точностью 0,5*С. Термометр имеет пределы измерения теемпературы от -55 до +125*С, что достаточно на все случаи жизни. Для питания термометра была использована обычная зарядка от мобилы на ИП с транзистором 13001.

Принципиальная схема термометра на микроконтроллере PIC16F628A:

Для прошивки PIC16F628A я использовал программу ProgCode, установив её на компьютер и собрав программатор ProgCode по известной схеме:

Обозначение выводов используемого микроконтроллера и цоколёвка некоторых других аналогичных МК:

Программа ProgCode и инструкции с фотографиями пошаговой прошивки находятся в архиве на форуме. Там же и все необходимые для этой схемы файлы. В программе открываем и нажимаем на кнопку "записать всё”. В моем изготовленном устройстве, как видно из фотографий, собрано 2 термометра сразу в одном корпусе, верхний индикатор показывает температуру дома, нижний - на улице. Размещается он в любом месте помещения и соединяется с датчиком гибким проводом в экране. Материал предоставил ansel73. Прошивку редактировал: [)еНиС

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

Очень простой и достаточно точный термометр можно сделать, если у вас случайно завалялся старый стрелочный амперметр со шкалой 100 мкА.
Для этого потребуется и всего две детали.
Температура измеряется датчиком LM 35. Этот интегральный кремниевый включает в себя термочувствительный элемент — первичный преобразователь и схему обработки сигнала, выполненные на одном кристалле и заключенные в корпус, такой, как, например, у КТ 502 (ТО- 92). У датчика LM 35 есть конструктивная разновидность с теми же параметрами, но иной цокалевкой и теплоотводом, что очень удобно для контактных измерений температуры.
Выходное напряжение датчика LM 35 пропорционально шкале Цельсия (10мВ/ С). При температуре 25 градусов этот датчик имеет на выходе напряжение 250 мВ, а при 100 градусов на выходе 1,0 В.
Обозначение датчика несколько необычно. Цоколевка приведена на рисунке.

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

В авторском варианте для тарировки был использован градусник от 0 до 50 градусов Цельсия с ценой деления 0,1 градус, поэтому термометр получился достаточно точным.
К сожалению, найти такой градусник проблематично. Для грубой тарировки можно просто положить датчик рядом с термометром, измеряющем скажем температуру в помещении, подождать часа два и выставить нужную температуру на шкале микроамперметра.
Если точный градусник все же найдется, то в качестве индикатора вместо стрелочного прибора можно использовать цифровой мультиметр, например китайский ВТ-308В, тогда показания температуры можно будет считывать до десятых долей градуса.
Для тех, кто хочет ознакомиться с интегральными датчиками подробно- простите сайт kit-e.ru или rcl-radio.ru (искать LM 35).