Этот прибор, построенный на микроконтроллере ATmega8, может быть сконфигурирован как термометр или как термостат независимо для каждого из 2-х каналов. Имеется возможность задавать температуру выключения нагревателя в районе от +5 до +95 °С, разность значений температуры его выключения и включения от 0 до 4 °С и компенсировать систематическую погрешность датчиков температуры от -2 до +2 °С. Схема термометра-термостата показана на рисунке.
Два датчика DS18B20 подключают к разъемам Х1 и Х2, причем номера гнезд соответствуют номерам их выводов. Использована 3-хпроводная схема подключения. Уже много раз я убеждался в том, что лишь так можно добиться максимальной длины соединительных проводов, и везде, где это возможно, стараюсь избегать паразитного питания датчиков. При медных проводах сечением 0,5 мм2 устойчивую связь удавалось обеспечить на расстоянии до 40 м. Показания датчиков выводятся на HG1 — 3-хразрядный светодиодный индикатор с общими анодами светодиодов каждого разряда. Двухцветные светодиоды HL1 и HL2 отображают состояние каждого из каналов. Сигналы управления нагревателями в режиме термостата формируются на выходах микроконтроллера РВ6 (первый канал) и РВ7 (второй канал). Управление 2-хпозиционное; нагреватель включен или выключен. Для гальванической развязки прибора от исполнительных устройств установлены оптроны U1 и U2. В моем варианте к разъемам Х4 и Х5 подключены цепи управления 2-х симисторов ВТ139, коммутирующих нагревательные элементы. При необходимости оптроны можно заменить транзисторами, включив в их коллекторные цепи обмотки электромагнитных реле. В течение 4…5 с после подачи на прибор питания происходит инициализация датчиков и начальный сбор их показаний. В это время поочередно мигают все элементы индикатора HG1. Далее устанавливается режим измерения и отображения температуры. В этом режиме нагреватели выключены. Показания датчиков на индикаторе чередуются с периодом 5 с. Если температура измерена датчиком, подключенным к разъему Х1, светится светодиод HL1, а подключенным к разъему Х2 — HL2. При этом, если соответствующий канал сконфигурирован как термометр, цвет свечения желтый, если как термостат, то при поданной команде на включение нагревателя он красный, а при ее отсутствии — зеленый. После нажатия на кнопку SB2 отображаются показания лишь первого датчика, а после нажатия на SB3 — лишь второго. Если какой-либо датчик не подключен, в его цепи произошел обрыв, замыкание или температура вышла за пределы 0,1…99,9 °С, на индикатор вместо значения температуры выводится надпись «Err», а соответствующий нагреватель выключается. Если во время отображения температуры, измеренной, например, первым датчиком, несколько раз нажимать на кнопку SB2, то с каждым нажатием соответствующий канал будет переходить из режима термостата в режим термометра и обратно. При кратковременном нажатии на кнопку SB1 восстанавливается режим поочередного отображения температуры в 2-х каналах. Но если удерживать кнопку SB1 нажатой длительное время, термометр-термостат войдет в режим настройки того канала, во время отображения температуры которого была нажата кнопка. В этом режиме кнопками SB2 и SB3 выбирают необходимый параметр:
ut1 (ut2) — установка температуры выключения нагревателя в канале 1 (2);
dt1 (dt2) -установка разности температуры выключения и включения нагревателя в канале 1 (2).
К примеру, при установке температуры выключения 35 °С и разности 1,5 °С нагревание произойдет до температуры 35 °С, по ее достижении нагреватель будет выключен и вновь включен, когда температура понизится до 33,5 °С. Оптимальным выбором разности достигают компромисса между точностью поддержания температуры и частотой включений нагревателя.
со1 (со2) — корректировка показаний датчика 1 (2). Введенное значение суммируется (с учетом знака) с этими показаниями прежде, чем они поступят на дальнейшую обработку. Это позволяет скомпенсировать возможную погрешность датчика. В случае повторного кратковременного нажатия на кнопку SB1 на индикатор выводится хранящееся в памяти микроконтроллера значение выбранного параметра, после чего кнопками SB2 и SB3 (соответственно уменьшение и увеличение на 0,1 °С) задают его новое значение. При длительном удержании этих кнопок изменение параметра начинает происходить быстрее (приблизительно 10 раз в секунду). Через 5 с после последнего нажатия на любую кнопку установленное значение запоминается в энергонезависимой памяти микроконтроллера, а на индикатор выводится текущая температура. Коды программы из файла Termo2ch.hex записывают в программную (FLASH) память микроконтроллера, а информацию из файла Termo2ch.epp — в его EEPROM. Разряды конфигурации микроконтроллера программируют в соответствии с таблицей.
Разряд
Знач.
Разряд
Знач.
BODEN
0
SKCEL0
0
BODLEVEL
1
SKCEL1
0
BOOTRST
1
SKCEL2
1
BOOTSZ0
1
SKCEL3
0
BOOTSZ1
1
SPIEN
0
CKOPT
1
SUT0
0
EESAVE
1
SUT1
1
RSTDISBL
1
WDTON
0
Для защиты от зависания программы в микроконтроллере должен быть включен сторожевой таймер. Поскольку интерфейс 1-Wire, используемый датчиками, критичен к тактовой частоте микроконтроллера, необходима точная настройка его внутреннего тактового генератора на 8 МГц. Для этого следует, подключив используемый экземпляр микроконтроллера к программатору, прочитать калибровочную константу, находящуюся в старшем байте слова, расположенного по адресу 0x0003 сигнатуры микроконтроллера. После загрузки в программатор файла Termo2ch.epp, но перед программированием, эту константу записывают в нулевую ячейку буфера EEPROM программатора. Микроконтроллер АТmega8 может быть заменен на ATmega8L При замене индикатора CPD-05211SR2/A аналогичным другого типа придется, возможно, подобрать резисторы R8-R15, чтобы обеспечить приемлемую яркость.
г. Красноармейск Донецкой обл., Украина
Радио №11, 2009г.
Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот
DD1
МК AVR 8-битATmega81
U1, U2
ОптопараMOC3052M2
Датчик температурыDS18B202
В схеме не показанR1, R3
Резистор4.7 кОм2
R2, R4
Резистор150 Ом2
R5-R7
Резистор10 кОм3
R8-R21
Резистор510 Ом14
R22, R23
Резистор1.5 кОм2
HL1, HL2
Светодиод 2-хцветный с общим катодомКрасный / Зеленый2
HG1
Светодиодный цифровой индикаторCPD-05211SR2/A1
SB1-SB3
Тактовая кнопка3
Х1, Х2
Разьем для подключения датчика2
Х3
Разьем для подключения питания1
X4, X5
Разьем выхода2
Добавить все
Скачать список элементов (PDF)
Прикрепленные файлы:
- termo2ch.zip (15 Кб)