Термометр на 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 089 hits)
Решил в свой ламинатор вставить термометр, термометр на термопаре K-типа. Чтобы он у меня стал более информативен, считаю, что хоббийный радиолюбитель не может довольствоваться, когда на таком приборе горит только два светодиода "POWER” и "READY” . Развожу платку под свои детальки. На всякий случай с возможностью её резать пополам(это некоторая универсальность). Сразу с местом под силовую часть на тиристоре, но пока эту часть не использую, это будет у меня схемка под паяльник (когда придумаю, как в жало термопару пристроить)
В ламинаторе мало места (механизмы расположены очень плотно, китай понимаеш ли), использую маленький семисегментный индикатор, но это еще не все, плата целиком тоже не влазит, вот тут пригодилась универсальность платы, разрезаю ее надвое (если использовать разъем верхняя часть подходит ко многим разработкам на пикушечках от ur5kby.)
Настраиваю, сначала делаю, как сказано в форуме , не впаиваю термопару, задаю 400 (хотя если этот параметр будет в памяти, этот пункт отпадет) настраиваю переменниками примерно комнатную и точно по кипению,
Такой контроллер теоретически работает до 999°C но в домашних условиях такую температуру вряд ли найти, самое большее это открытый огонь, но у этого источника тепла сильная нелинейность и чувствительность к внешним условиям.
вот примерная таблица.
и еще для наглядности
Так что выбор невелик в выборе источника для настройки показаний контроллера.
больше тут никакой игры кнопочками, Все можно собирать,
Термопару использовал от китайского тестера. И пост в форуме надоумил меня, что эту термопару можно размножать, её длина почти полметра, отрезаю 2 см.
делаю трансформатором по скрутке угольком, шарик получается, а к двум концам точно так, по медной проволочке, для хорошей пайки к моим проводам
Серия статей об измерении температуры контроллерами Ардуино была бы неполной, без рассказа о термопарах. Тем более что измерять высокие температуры больше нечем.
Термопары (термоэлектрические преобразователи).
Все термодатчики из предыдущих уроков позволяли измерять температуру в диапазоне не шире – 55 … + 150 °C. Для измерения более высоких температур самыми распространенными датчиками являются термопары. Они:
- имеют крайне широкий диапазон измерения температуры -250 … +2500 °C;
- могут быть откалиброваны на высокую точность измерения, до погрешности не более 0,01 °C;
- как правило, имеют низкую цену;
- считаются надежными датчиками температуры.
Главный недостаток термопар – это необходимость в достаточно сложном прецизионном измерителе, который должен обеспечивать:
- измерение низких значений термо-ЭДС с верхним значением диапазона десятки, а иногда и единицы мВ;
- компенсацию термо-ЭДС холодного спая;
- линеаризацию характеристики термопары.
Принцип действия термопар.
Принцип действия датчиков такого типа основан на термоэлектрическом эффекте (эффекте Зеебека). Поэтому другое название термопары – термоэлектрический преобразователь.
В цепи между соединенными разнородными металлами образовывается разность потенциалов. Ее величина зависит от температуры. Поэтому она называется термо-ЭДС. У разных материалов величина термо-ЭДС разная.
Если в цепи стыки (спаи) разнородных проводников связаны в кольцо и имеют одинаковую температуру, то сумма термо-ЭДС равна нулю. Если же спаи проводов находятся при разных температурах, то общая разность потенциалов между ними зависит от разности температур. В результате мы приходим к конструкции термопары.
Два разнородных металла 1 и 2 в одной точке образуют рабочий спай. Рабочий спай помещают в точку, температуру которой необходимо измерить.
Холодные спаи это точки подключения металлов термопары к другому металлу, как правило, к меди. Это могут быть клеммные колодки измерительного прибора или медные провода связи с термопарой. В любом случае необходимо измерять температуру холодного спая и учитывать ее в вычислениях измеренной температуры.
Основные типы термопар.
Наиболее широкое распространение получили термопары ХК (хромель – копель) и ХА (хромель – алюмель).
Название | Обозначение НСХ | Материалы | Диапазон измерения, °C | Чувствительность, мкВ/°C, (при температуре, °C) | Термо-ЭДС, мВ, при 100 °C |
ТХК (хромель-копелевые) | L | Хромель, копель | - 200 … + 800 | 64 (0) | 6,86 |
ТХА (хромель-алюмель) | K | Хромель, алюмель | - 270 … +1372 | 35 (0) | 4,10 |
ТПР (платино-родиевые) | B | Платинородий, платина | 100 … 1820 | 8 (1000) | 0, 03 |
ТВР (вольфрам-рениевые) | A | Вольфрам-рений, вольфрам-рений | 0 … 2500 | 14 (1300) | 1,34 |
Как практически измерять температуру с помощью термопары. Методика измерения.
Номинальная статическая характеристика (НСХ) термопары задана в виде таблицы с двумя столбцами: температура рабочего спая и термо-ЭДС. ГОСТ Р 8.585-2001 содержит НСХ термопар разных типов, заданные для каждого градуса. Можно загрузить в PDF формате по этой ссылке .
Для измерения температуры с помощью термопары необходимо выполнить следующие действия:
- измерить термо-ЭДС термопары (E общ.);
- измерить температуру холодного спая (T хол. спая);
- по таблице НСХ термопары определить термо-ЭДС холодного спая, используя температуру холодного спая (E хол. спая);
- определить термо-ЭДС рабочего спая, т.е. прибавить ЭДС холодного спая к общей термо-ЭДС (E раб. спая = E общ. + E хол. спая);
- по таблице НСХ определить температуру рабочего спая, используя термо-ЭДС рабочего спая.
Вот пример, как я замерил с помощью термопары типа ТХА температуру жала паяльника.
- Прикоснулся рабочим спаем к жалу паяльника, замерил напряжение на выводах термопары. Получилось 10,6 мВ.
- Температура окружающей среды, т.е. температура холодного спая – примерно 25 °C. ЭДС холодного спая из таблицы ГОСТ Р 8.585-2001 для термопары типа K при 25 °C равна 1 мВ.
- Термо-ЭДС рабочего спая равна 10,6 + 1 = 11,6 мВ.
- Температура из той же таблицы для 11,6 мВ равна 285 °C. Это и есть измеренное значение.
Такую последовательность действий нам надо реализовать в программе Ардуино термометра.
Ардуино термометр для измерения высоких температур с помощью термопары типа ТХА.
У меня нашлась термопара TP-01A. Типичная, широко распространенная ТХА термопара от тестера. Ее я и буду использовать в термометре.
На упаковке указаны параметры:
- тип K;
- диапазон измерения – 60 … + 400 °C;
- точность ±2,5 % в диапазоне до 400 °C.
Диапазон измерения указан для кабеля из стекловолокна. Существует похожая термопара TP-02, но с зондом длиной 10 см.
У TP-02 верхняя граница измерения 700 °C . Значит, будем разрабатывать термометр:
- для термопары типа ТХА;
- с диапазоном измерения – 60 … + 700 °C.
Разобравшись в программе и схеме устройства, Вы сможете создать измеритель для термопар любых типов с любым диапазоном измерения.
Остальные функциональные возможности термометра такие же, как у устройств из трех предыдущих уроков, включая функцию регистрации изменения температуры.
Рубрика: . Вы можете добавить в закладки.Прибор (см. рисунок) можно использовать для автоматического контроля измерения температуры в теплицах и овощехранилищах, сушильных шкафах и электропечах, а также в биомедицинских целях. Он обеспечивает высокую чувствительность и помехоустойчивость, удобное управление режимами работы. Наличие гальванической развязки по цепям питания и управления делают его надежным и безопасным в работе. Оптронная система синхронизации с частотой сети позволяет избежать коммутационных помех.
Прибор состоит из двух основных функциональных узлов: электронного терморегулятора и цифрового измерителя. Управляющие сигналы в терморегуляторе формируются на основе сравнения напряжения, получаемого от термопары (ТП), с опорным напряжением.
Основные технические характеристики прибора: диапазон контролируемых температур от 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.