Этот прибор, построенный на микроконтроллере ATmega8, может быть сконфигурирован как термометр или как термостат независимо для каждого из двух каналов. Имеется возможность задавать температуру выключения нагревателя в пределах от +5 до +95 °С, разность значений температуры его выключения и включения от 0 до 4 °С и компенсировать систематическую погрешность датчиков температуры от -2 до +2 °С. Схема термометра-термостата показана на рисунке.
Два датчика DS18B20 подключают к разъемам Х1 и Х2, причем номера гнезд соответствуют номерам их выводов. Использована трехпроводная схема подключения. Уже много раз я убеждался в том, что только так можно добиться максимальной длины соединительных проводов, и везде, где это возможно, стараюсь избегать паразитного питания датчиков. При медных проводах сечением 0,5 мм2 устойчивую связь удавалось обеспечить на расстоянии до 40 м. Показания датчиков выводятся на HG1 - трехразрядный светодиодный индикатор с общими анодами светодиодов каждого разряда. Двухцветные светодиоды HL1 и HL2 отображают состояние каждого из каналов. Сигналы управления нагревателями в режиме термостата формируются на выходах микроконтроллера РВ6 (первый канал) и РВ7 (второй канал). Управление двухпозиционное; нагреватель включен или выключен. Для гальванической развязки прибора от исполнительных устройств установлены оптроны U1 и U2. В моем варианте к разъемам Х4 и Х5 подключены цепи управления двух симисторов ВТ139, коммутирующих нагревательные элементы. При необходимости оптроны можно заменить транзисторами, включив в их коллекторные цепи обмотки электромагнитных реле. В течение 4...5 с после подачи на прибор питания происходит инициализация датчиков и начальный сбор их показаний. В это время поочередно мигают все элементы индикатора HG1. Далее устанавливается режим измерения и отображения температуры. В этом режиме нагреватели выключены. Показания датчиков на индикаторе чередуются с периодом 5 с. Если температура измерена датчиком, подключенным к разъему Х1, светится светодиод HL1, а подключенным к разъему Х2 - HL2. При этом, если соответствующий канал сконфигурирован как термометр, цвет свечения желтый, если как термостат, то при поданной команде на включение нагревателя он красный, а при ее отсутствии - зеленый. После нажатия на кнопку SB2 отображаются показания только первого датчика, а после нажатия на SB3 - только второго. Если какой-либо датчик не подключен, в его цепи произошел обрыв, замыкание или температура вышла за пределы 0,1...99,9 °С, на индикатор вместо значения температуры выводится надпись "Err", а соответствующий нагреватель выключается. Если во время отображения температуры, измеренной, например, первым датчиком, несколько раз нажимать на кнопку SB2, то с каждым нажатием соответствующий канал будет переходить из режима термостата в режим термометра и обратно. При кратковременном нажатии на кнопку SB1 восстанавливается режим поочередного отображения температуры в двух каналах. Но если удерживать кнопку 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-бит | ATmega8 | 1 | Поиск в магазине Отрон | ||
U1, U2 | Оптопара | MOC3052M | 2 | Поиск в магазине Отрон | ||
Датчик температуры | DS18B20 | 2 | В схеме не показан | Поиск в магазине Отрон | ||
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 | Поиск в магазине Отрон | ||
HG1 | Светодиодный цифровой индикатор | CPD-05211SR2/A | 1 | Поиск в магазине Отрон | ||
SB1-SB3 | Тактовая кнопка | 3 | Поиск в магазине Отрон | |||
Х1, Х2 | Разьем для подключения датчика | 2 | Поиск в магазине Отрон | |||
Х3 | Разьем для подключения питания | 1 | Поиск в магазине Отрон | |||
X4, X5 | Разьем выхода | 2 | Поиск в магазине Отрон | |||
Скачать список элементов (PDF)
Прикрепленные файлы:
- termo2ch.zip (15 Кб)
Комментарии (4) | Я собрал (0) | Подписаться
Для добавления Вашей сборки необходима регистрация