THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама

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

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

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

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

Можно врезать в корпус, имеется резьбовая часть, которая вращается свободно. Диаметр 5,8мм, шаг - 0,9~1.0мм, похоже М6 x 1,0 мм. Под ключ на 10


Это все хорошо, дальше что делать? Нужно преобразовать сигнал (термоэдс) в цифровой или аналоговый сигнал, чтоб читать ардуиной. В этом нам поможет . Это преобразователь сигнала термопары K-типа в цифру, имеет интерфейс, что нас устраивает.
А вот и наш герой - ($4.20)


Стоил $4.10, но того лота больше нет (продавец тот же).

Подключать будем к ардуине, можно взять простенькую ($5.25, можно найти дешевле, здесь Вы видите именно эту)


Данные будем писать на карту памяти (и заодно слать в порт) с помощью $1.25.


Интерфейс, тоже, кстати, SPI. Только не все карточки его поддерживают. Не завелось - попробуйте сначала другую.
В теории все линии SPI устройств (MOSI или SI, MISO или SO, SCLK или SCK), кроме CS (CS или SS - выбор микросхемы), можно подключить к одним контактам ардуины, но тогда MAX6675 работает неадекватно. Поэтому я все разнес по разным пинам.
В основу скетча лег пример по работе с картами памяти с .
Библиотека и скетч для MAX6675 . Схема подключения MAX6675:

#include
#include

Int units = 1; // Units to readout temp (0 = F, 1 = C)
float error = 0.0; // Temperature compensation error
float temp_out = 0.0; // Temperature output varible

MAX6675 temp0(9,8,7,units,error);

Void setup()
{
Serial.begin(9600);
Serial.print(«Initializing SD card...»);

PinMode(10, OUTPUT);
if (!SD.begin(10)) {
Serial.println(«initialization failed!»);
return;
}
Serial.println(«initialization done.»);

// Проверяем, существует ли на карте файл data.csv, если существует, то удаляем его.
if(SD.exists(«temp.csv»)) {
SD.remove(«temp.csv»);
}
// открываем файл. заметьте, что только один файл может быть открыт за раз,
// поэтому вы должны закрыть этот, чтобы открыть другой.
myFile = SD.open(«temp.csv», FILE_WRITE); // открыть на запись


if (myFile) {
Serial.print(«Writing to temp.csv...»);
// закрываем файл:
myFile.close();
Serial.println(«done.»);
}
else {


}

}
void loop()
{

Temp_out = temp0.read_temp(5); // Read the temp 5 times and return the average value to the var

Time = time + 1; // Увеличиваем время на 1

MyFile = SD.open(«temp.csv», FILE_WRITE);

// если файл нормально открылся, запишем в него:
if (myFile) {
// записываем время
myFile.print(time);
Serial.print(time);
// добавляем точку с запятой
myFile.print(";");
Serial.print(";");
// пишем температуру и перевод строки
myFile.println(temp_out);
Serial.println(temp_out);
// закрываем файл:
myFile.close();
}
else {
// а если он не открылся, то печатаем сообщение об ошибке:
Serial.println(«error opening temp.csv»);
}
delay(1000); // Ждем секунду
}


Скачать:

Термопары широко применяются там где необходимо точно померить высокие температуры, т емпературы вплоть до 2500°C. То есть там, где цифровые датчики бы сразу сдохли от перегрева, применяются термопары. Разновидностей термопар существует достаточно много, но самое большое распространение получили хромель-алюмелевые (тип К) термопары, из-за своей дешевизны и практически линейному изменению термоэдс. Этот вид термопар ставятся в водонагреватели и другие бытовые приборы с контролем температуры, их повсеместно используют для контроля температуры при плавке металла, с помощью этих термопар контролируется нагрев жала в паяльной станции. Поэтому будет весьма полезно познакомиться с ними поближе.

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


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

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

Берём стандартную схему неинвертирующего включения операционного усилителя:


Отношение входного и выходного напряжений описывается простой формулой:

Vout /Vin = 1 + (R2/R1)

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

Допустим опорным будет напряжение питания микроконтроллера 5V. Теперь необходимо определится с диапазоном температур, которые собираемся измерять. Я взял пределом измерения 1000 °C. При этом значении температуры на выходе термопары будет потенциал примерно 41,3мВ. Это значение должно соответствовать напряжению в 5 вольт на входе АЦП. Поэтому операционник должен иметь коэффициент усиления не менее 120. В итоге родилась такая схема:


В загашнике у меня нашлась давно собранная плата с этим операционником, собирал как предусилитель для микрофона, ее я и применил:


Собрал на бредборде такую схему подключения двухстрочного дисплея к микроконтроллеру:


Термопара тоже валялась без дела долгое время - она шла в комплекте с моим мультиметром. Спай закрыт в металлическую гильзу.


Код Bascom-AVR для работы с термопарой:

$regfile = "m8def.dat"
$crystal = 8000000

Dim W As Integer

"подключение двухстрочного дисплея

Config Lcdpin = Pin , Rs = Portb . 0 , E = Portd . 7 , Db4 = Portd . 6 , Db5 = Portd . 5 , Db6 = Portb . 7 , Db7 = Portb . 6
Config Lcd = 16 * 2
Cursor Off
Cls

"считывание значения с АЦП по прерыванию от таймера

Config Timer1 = Timer , Prescale = 64
On Timer1 Acp

"конфигурация АЦП

Config Adc = Single , Prescaler = Auto , Reference = Avcc

Enable Interrupts
Enable Timer1

Do

Cls
Rem Температура:
Lcd "Teјѕepaїypa:"
Lowerline
Lcd W


Waitms 200

Loop


"работа с АЦП

Acp :

Start Adc "запуск АЦП
W = Getadc (1 )
W = W / 1 . 28 "подгоняем замеры под действ. температуру
Return

End

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

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

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

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

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

THE BELL

Есть те, кто прочитали эту новость раньше вас.
Подпишитесь, чтобы получать статьи свежими.
Email
Имя
Фамилия
Как вы хотите читать The Bell
Без спама