Двухканальный терморегулятор на микроконтроллере PIC16F84A


Николай Заец. п. Вейделевка Белгородской обл.

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

Устройство отличается от известных измерителей температуры на DS1820 возможностью одновременной регулировки температуры в двух точках с точностью ±0,5 °С в интервале температур -10...+85 °С при малом времени реагирования. Микроконтроллерный термометрический датчик DS1820 рассчитан на измерение температуры в диапазоне -55...+125 °С, но на границах предела точность измерения ухудшается до ±2 °С. Управление нагревателями выполняется с помощью цифрового компаратора.

На однорядном ЖК индикаторе можно одновременно наблюдать текущую температуру в двух различных точках и ее установленное значение. Прием данных, их обработка и выдача на индикатор выполняются микроконтроллером PIC16F84A. Алгоритм работы программы микроконтроллера показан на рис. 1.

После пуска и инициализации регистров микроконтроллера выполняется инициализация ЖК-дисплея. Далее проверяется состояние флага установки. Если флаг не установлен, то на индикацию выводится содержимое регистров текущего режима. Если идет установка, то проверяется флаг курсора. Если флаг курсора установлен, то индицируется курсор. При установке индикация курсора и значений регистров индикации выполняется поочередно.

После индикации программа переходит к инициализации и считыванию температуры с первого датчика DS1820. Микроконтроллер принимает девять бит информации с кодом знака температуры в девятом бите и значением десятых долей градуса в первом бите. Если девятый бит равен единице, то знак измеренной температуры отрицательный. При единичном первом бите десятые доли равны пяти. Измеренная температура сравнивается с установленной. Если она больше необходимой, на выходе RA1 микроконтроллера появляется лог. 0, в противном случае — лог. 1. Двоичное значение температуры перекодируется в двоично-десятичный код для индикации (на рис. 1 не показано).

Далее аналогично первому датчику выполняется считывание температуры из второго датчика и установка уровня на выходе RA2. Поскольку вывод на индикацию занимает довольно много времени (8 мс), то он выполняется после шести циклов считывания температуры через 68 мс. Когда счетчик циклов будет равен нулю, проверяется состояние кнопок управления и по установленному режиму заполняются регистры индикации. После этого цикл индикации и измерения температуры повторяется. Цикл измерения температуры и установка управляющих выходов обоих датчиков выполняется за 11,4 мс. Таким образом, управление каждым нагревателем будет выполняться минимум один раз за период сетевого напряжения.

Схема терморегулятора показана на рис. 2. Все блоки устройства соединены стандартно и в пояснении не нуждаются. Резистором R8 устанавливают необходимую контрастность изображения индикатора.

Датчики температуры DS1820 можно заменить любыми из серии DS18x20x (DS18x21x) за исключением DS18B20x, имеющего другую программу инициализации.

При регулировании температуры воздуха, например, в инкубаторе, выводы датчика изолируют силиконовым герметиком, а при регулировании температуры жидкости герметиком изолируют и провода. Если регулируют высокую температуру, то изоляцию выполняют эпоксидной смолой. В любом случае 2 корпус датчика должен быть свободен от изоляции. Это увеличит скорость реагирования устройства на изменение температуры, и, следовательно, точность поддержания заданной температуры.

Во время испытаний датчик температуры при положительных температурах работал на расстоянии до 20 м от микроконтроллера, а при отрицательных — до 6 м. При измерении температуры около 100 °С датчики давали абсолютную погрешность, равную 1,5 °С, сохраняя при этом монотонность характеристики и разрешающую способность 0,5 °С.

Поэтому, если необходима точная регулировка температуры за границами предела -10...+85 °С, потребуется введение поправки при установке значения температуры выключения нагревателя.

Работа с терморегулятором сводится к установке температуры для обоих датчиков. При включении устройства на дисплее появится значение температуры первого и второго датчика с указанием после символа ">" номера датчика (рис. 3). При нажатии кнопки «Режим» на дисплее последовательно будут появляться изображения, аналогичные показанным на рис. 4—7.

На рис. 4, 5 левые цифры показывают текущую температуру соответствующих датчиков, а правые — установленные значения температуры.

При включении режимов работы, показанных на рис. 6, 7, микроконтроллер переходит в режим установки. В этом режиме под устанавливаемым разрядом появляется мигающий курсор (на рис. 6 и 7 под знаком плюс). Кнопкой «Разряд» перемещают курсор по разрядам, а кнопкой «Установка» устанавливают необходимое значение температуры.

При установке нет ограничений по максимуму и минимуму, поэтому необходимо быть внимательным. Можно установить знак в результате нагреватель не будет включаться, и наоборот, установить температуру регулирования более +125 °С, нагреватель будет постоянно включен. Во время установки сравнение температур не прекращается, поэтому нагреватели в это время желательно отключить. Поскольку установленные значения запоминаются в энергонезависимой памяти, то нагреватели можно подключить при выключенном напряжении сети.

При индикации (в т. ч. и во время установки) температуры 100... 109,5°С в разряде десятков будет двоеточие, для 110...119,5 °С — точка с запятой, для 120...125 °С — обратная стрелка "<".

Файл прошивки

Источник: СХЕМОТЕХНИКА 2004г., №10, стр.42