Chevroletavtoliga - Автомобильный портал

Электросхемы в помощниках. Термометр на ATmega8 и датчике температуры DS18B20 Контроллер больших температур на термопаре 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)

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

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

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

Основные технические характеристики прибора: диапазон контролируемых температур от 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.

На МК. Сердцем его является микроконтроллер 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

Похожие публикации