Для моего загородного дома потребовался термостат, который был бы достаточно точным при низких температурах, чтобы уезжая из дома иметь возможность поддерживать температуру выше точки замерзания. Зимы здесь долгие и холодные, и если топить больше, чем минимально необходимо, это сильно отразится на толщине кошелька. Микросхему DS1620, разработанную фирмой Dallas Semicondactor, приобрести было достаточно легко. Она может работать в режиме термостата и нуждается только в напряжении питания, формируя выходные сигналы в соответствии с установленными пороговыми значениями температуры. Однако готового ПО для программирования этих пороговых значений с помощью ПК я так и не нашел. Существует некая утилита от Dallas Semicondactor, но она работает только на старых версиях Windows и в DOS. Когда я запустил ее под Win2K, она попросту зависла. И это не удивительно, потому что для работы с утилитой требуется подключить микросхему непосредственно к параллельному порту, недоступному напрямую в сегодняшнем превосходном компьютерном мире.
По этой причине появился новый инструмент с новым ПО. Его схема представлена ниже. В нем используются три выходных сигнала последовательного порта для генерации напряжения питания микросхемы (элементы D2, D3, D5, D7, C1 и C2 сглаживают напряжение и ограничивают его значением 4.6…4.7 В). Уровни логической единицы для каждого входа микросхемы формируются диодом и резистором, поскольку положительное напряжение на выходах COM порта не превышает напряжения питания микросхемы VCC плюс падения на диоде. Уровни логического нуля формируются с помощью резисторов R2, R3 и R4, подтягивающих напряжение к общему проводу (земле). Резистор R1, включенный последовательно в линию, используемую для двунаправленной передачи данных, позволяет DQ управлять этой линией, независимо от сигнала на выходе COM порта. На месте показанной на схеме микросхемы DS1620 на самом деле находится 8-контактная панелька. Разъем JP1 вы можете не ставить, это просто ряд контактов, упрощающих тестирование термостата. Однорядный разъем JP2 служит для программирования модулей термодатчиков (смотри ниже).
Устройство работает не со всеми последовательными портами, некоторые не обеспечивают достаточной мощности, некоторые требуют отрицательного напряжения на входе DSR. Термостат работал с тремя различными настольными компьютерами из четырех, с которыми я его испытывал. Кроме того, я проверял возможность работы с двумя различными конверторами USB/RS-232C, и лишь один подошел к термостату. Так что имейте ввиду, эта программа работает по принципу WYSIWYG: то, что вы видите, то и получаете. Если она не работает, попробуйте другой порт.
Соберите устройство, вставьте микросхему в панельку, подключите термостат к одному из последовательных портов вашего ПК и запустите программу. Если вам повезет, и тока последовательного порта окажется достаточно для питания микросхемы, а размаха напряжения от 0 до 5 В хватит для считывания логических сигналов, первое считанное значение температуры будет –60. Это нормально, такое значение датчик всегда выдает после подачи питания. В процессе работы будут отображаться текущая температура и состояние датчика, обновляясь каждые 2 секунды.
На панели Thermostat отображаются верхнее и нижнее пороговые значения температуры, которые вы можете изменять. На панели Status/config показаны текущие значения флагов состояния. Вы также можете устанавливать свои значения. Флаги temp high и temp low можно только сбросить в 0, они устанавливаются автоматически, когда температура достигает значения верхнего порога или опускается ниже нижнего. Установка флага CPU mode запрещает работу термостата. Флаг one-shot устанавливает режим, при котором по запросу датчик делает одно измерение температуры и останавливается. Если этот режим отключен, измерения температуры будут производиться каждые 10 мс, до тех пор, пока не будет дана команда стоп.
При нажатии кнопки program значения температурных порогов и флагов запишутся в датчик.
Модуль термодатчика очень прост, так как микросхеме не нужны какие либо внешние компоненты. Я хотел иметь возможность перепрограммировать пороговые значения температуры и, в то же время, сделать модуль предельно низкопрофильным, поэтому использование панельки – неудачный вариант. Решение показано на схеме ниже.
К ряду контактов слева (PAD1…PAD5) припаяны кусочки провода, которыми весь модуль можно подключать к разъему JP2 программатора. Три контакта PAD6…PAD8 служат для подключения проводов, идущих к устройству контроля температуры. Наличие резисторов R5, R6 гарантирует, что микросхема будет находиться в режиме термостата, при этом оставляя возможность программирования ее через входы трехпроводного интерфейса.
И под конец изображение моих устройств в сборе.
Загрузки