Термометр на термопаре схема для станции. Контроллер больших температур на термопаре K-типа

Термометр на 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)

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

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

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

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

вот примерная таблица.

и еще для наглядности

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

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

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

Термопара - это один из видов температурных датчиков, который может применяться в измерительных устройствах и системах автоматизации. Ей присущи определенные преимущества: дешевизна, высокая точность, широкий по сравнению с термисторами и микросхемами цифровых датчиков температуры диапазон измерения, простота и надежность. Однако выходное напряжение термопары мало и относительно, а схема измерителя на термопаре сложна, так как предъявляются жесткие требования к прецизионному усилению сигнала с термопары и к схеме компенсации. Для разработки таких устройств существуют специализированные микросхемы, интегрирующие схему преобразования и обработки аналогового сигнала. С помощью этих микросхем можно построить достаточно компактный измеритель температуры с термопарой в качестве датчика (Рисунок 1).

Принципы

Википедия определяет принцип действия термопары следующим образом:

Принцип действия основан на эффекте Зеебека или, иначе, термоэлектрическом эффекте. Между соединенными проводниками имеется контактная разность потенциалов. Если стыки связанных в кольцо проводников находятся при одинаковой температуре, сумма таких разностей потенциалов равна нулю. Когда же стыки находятся при разных температурах, разность потенциалов между ними зависит от разности температур. Коэффициент пропорциональности в этой зависимости называют коэффициентом термо-ЭДС. У разных металлов коэффициент термо-ЭДС разный и, соответственно, разность потенциалов, возникающая между концами разных проводников, будет различной. Помещая спай из металлов с отличными коэффициентами термо-ЭДС в среду с температурой Т1, мы получим напряжение между противоположными контактами, находящимися при другой температуре Т2, которое будет пропорционально разности температур Т1 и Т2 (Рисунок 2).

Рисунок 2.

Существует несколько типов термопар, в зависимости от используемой пары материалов (чистый металл или сплав). В нашем проекте мы используем термопару K-типа (хромель-алюмель), которая часто применяется в промышленных инструментах и приборах. Выходное напряжение термопары K-типа составляет приблизительно 40 мкВ/°С, следовательно, потребуется схема усиления сигнала с небольшим смещением напряжения по входу.

Как упоминалось выше, термо-ЭДС пропорциональна разности температур между холодным и горячим спаем. Это означает, что температура холодного спая должна быть известна для вычисления фактического значения температуры горячего спая. Для этого потребуется схема компенсации холодного спая, которая будет автоматически вводить поправку к измеренной термо-ЭДС (Рисунок 3).

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

Основные характеристики микросхемы MAX31855:

  • Диапазон измерения температуры: от -270 °С до +1800 °С;
  • Разрешение: 14 бит, шаг 0.25 °С;
  • Простой SPI-совместимый интерфейс (режим чтения данных);
  • Схема компенсации опорного спая термопары;
  • Схема детектирования замыкания проводов термопары на шину питания и общую шину;
  • Схема детектирования разрыва в измерительной цепи;
  • Исполнения для термопар типов K, J, N, T и E;
  • 8-ми выводной корпус.

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

Принципиальная схема измерителя температуры изображена на Рисунке 5.

Сердцем прибора является микроконтроллер AVR . Микросхема MAX31855 подключается к микроконтроллеру по интерфейсу SPI.

В качестве источника питания используется батарея типоразмера LR1 с напряжением 1.5 В. Для питания микроконтроллера и микросхемы интерфейса термопары используется схема повышающего DC/DC преобразователя, выполненного на микросхеме серии XC9111 , обеспечивающего выходное напряжение 3.0 В. Микроконтроллер осуществляет управление питанием и отслеживает напряжение батареи.

Так как для питания используется элемент питания 1.5 В, для отображения данных оптимально использовать сегментный статический ЖК индикатор TWV1302W, который применяется в цифровых устройствах измерения температуры (Рисунок 6). Рабочее напряжение этого индикатора 3 В. При использовании индикатора с рабочим напряжением 5 В потребуется дополнительная схема преобразователя напряжения (Рисунок 7). Функции управления индикатором выполняет микроконтроллер. При таком решении потребляемый устройством ток составит 4 мА, а батарея прослужит, как минимум, 100 часов.

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

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

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

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

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

Термометр на микроконтроллере PIC16F628A и DS18B20(DS18S20) – статья с подробным описанием схемы запоминающего термометра и, вдобавок, - логическое продолжение ранее опубликованной мною статьи на яндекс сайте pichobbi.narod.ru. Этот термометр довольно неплохо себя зарекомендовал, и было принято решение немного его модернизировать. В этой статье расскажу, какие изменения внесены в схему и рабочую программу, опишу новые функции. Статья будет полезна новичкам. Позже переделал текущую версию термометра в .

Термометр на микроконтроллере PIC16F628A и DS18B20(DS18S20) умеет:

  • измерять и отображать температуру в диапазоне:
    -55...-10 и +100...+125 с точностью 1 градус(ds18b20 и ds18s20)
    -в диапазоне -9,9...+99,9 с точностью 0,1 градус(ds18b20)
    -в диапазоне -9,5...+99,5 с точностью 0,5 градус(ds18s20);
  • Автоматически определять датчик DS18B20 или DS18S20;
  • Автоматически проверять датчик на аварию;
  • Запоминать максимальную и минимальную измеренные температуры.

Также в термометре предусмотрена легкая замена 7 сегментного индикатора с ОК на индикатор с ОА. Организована щадящая процедура записи в EEPROM память микроконтроллера. Вольтметр, который неплохо себя зарекомендовал, описан в этой статье - .

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

Принципиальная схема термометра показана на рисунке 1

Рисунок 1 - Принципиальная схема термометра на PIC16F628A + ds18b20/ds18s20

Описывать всю принципиальную схему термометра не стану, так как она довольно проста, остановлюсь только на особенностях.

В качестве микроконтроллера применяется PIC16F628A фирмы Microchip. Это недорогой контроллер и к тому же не дефицитный.

Для измерения температуры используются цифровые датчики DS18B20 или DS18S20 фирмы Maxim. Эти датчики не дорогие, малые по размеру и информация о измеренной температуре передается в цифровом виде. Такое решение позволяет, не тревожиться о сечении проводов, о их длине и прочем. Датчики DS18B20, DS18S20 способны работать в диапазоне температур от -55… +125 °С.

Температура выводится на 7-ми сегментный 3-х разрядный LED индикатор с общим катодом (ОК) или с (ОА).

Для вывода на индикатор максимальной и минимальной измеренных температур нужна кнопка SB1. Для сброса памяти так же нужна кнопка SB1

Кнопкой SA1 можно оперативно переключать датчики(улица, дом).

Jamper необходим для переключения общего провода для LED индикатора. ВАЖНО! Если индикатор с ОК – то ставим jamper на нижнее по схеме положение, а транзисторы VT1-VT3 впаиваем p-n-p проводимости. Если LED индикатор с ОА, то jamper переводим в верхнее по схеме положение, а транзисторы VT1-VT3 впаиваем n-p-n проводимости.

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

Таблица 1 – Перечень деталей для сборки термометра
Позиционное обозначение Наименование Аналог/замена
С1, С2 Конденсатор керамический - 0,1мкФх50В -
С3 Конденсатор электролитический - 220мкФх10В
DD1 Микроконтроллер PIC16F628A PIC16F648A
DD2,DD3 Датчик температуры DS18B20 или DS18S20
GB1 Три пальчиковых батарейки 1,5В
HG1 7-ми сегментный LED индикатор KEM-5631-ASR (OK) Любой другой маломощный для динамической индикации и подходящий по подключению.
R1,R3,R14,R15 Резистор 0,125Вт 5,1 Ом SMD типоразмер 0805
R2,R16 Резистор 0,125Вт 5,1 кОм SMD типоразмер 0805
R4,R13 Резистор 0,125Вт 4,7 кОм SMD типоразмер 0805
R17-R19 Резистор 0,125Вт 4,3 кОм SMD типоразмер 0805
R5-R12 Резистор 0,125Вт 330 Ом SMD типоразмер 0805
SA1 Любой подходящий переключатель
SB1 Кнопка тактовая
VT1-VT3 Транзистор BC556B для индикатора с ОК/ транзистор BC546B для индикатора с ОА KT3107/КТ3102
XT1 Клеммник на 3 контакта.

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

Рисунок 2 – Модель термометра на микроконтроллере PIC16F628A в Proteus’e

На рисунке 3-4 показана печатная плата цифрового термометра

Рисунок 3 – Печатная плата термометра на микроконтроллере PIC16F628A(низ) не в масштабе.

Рисунок 4 – Печатная плата термометра на микроконтроллере PIC16F628A(верх) не в масштабе.

Термометр, собранный рабочих деталей начинает работать сразу и в отладке не нуждается.

Результат работы рисунки 5-7.

Рисунок 5 - Внешний вид термометра

Рисунок 6 - Внешний вид термометра

Рисунок 7 - Внешний вид термометра

ВАЖНО! В прошивку термометра не вшита реклама можно пользоваться в свое удовольствие.

Поправки, внесенные в рабочую программу:

1 автоматическое определение датчика DS18B20 или DS18S20;

2. снижено время перезаписи в EEPROM(если выполнилось условие для перезаписи) с 5 минут, до 1 минуты.

3. увеличена частота мерцания точки;

Более подробное описание работы термометра можно посмотреть в документе, который можно скачать в конце этой статьи. Если скачивать нет желания, то на сайте www.pichobbi.narod.ru также отлично расписана работа устройства.

Готовая плата отлично поместилась в китайский будильник (рисунки 8, 9).

Рисунок 8 – Вся начинка в китайском будильнике

Рисунок 9 - Вся начинка в китайском будильнике

Видео - Работа термометра на PIC16F628A