Электронный термометр

Измерители температу­ры с датчиком DS18S20 рассчи­таны на соединение с датчиком, имею­щим «однопроводный» интерфейс, тремя проводами. Один из них общий, по второму происходит обмен инфор­мацией, а третий — питание. Именно на такое подключение и рассчитаны биб­лиотечные подпрограммы.

Питание электронного термометра

Однако дат­чик DS18S20 обладает возможностью работать в режиме так называемого «паразитного» питания энергией, посту­пающей по информационной линии. Как показано на рис. 1, его вывод 3 в этом случае соединяют не с источником на­пряжения +5 В, ас общим проводом. Остаются всего два провода. Поскольку большую часть времени информационная линия находится в пассивном состоянии, внутренний кон­денсатор Срр датчика заряжается через резистор R1 и внутренний диод VD2 практически до пяти вольт. Этим напря­жением питаются остальные узлы при бора. Накопленного конденсатором заряда достаточно для их питания и в те короткие интервалы времени, когда уровень напряжения на информацион­ной линии становится низким. В большинстве режимов работы по­требляемый датчиком DS18S20 ток не превышает десятков микроампер, и падением напряжения питания на рези­сторе R1 можно пренебречь. Однако при исполнении команд CONVERT Т (код 0x44) и COPY SCRATCHPAD (код 0x48) ток возрастает до 1,5 мА.

Во из­бежание недопу­стимой «просадки» напряжения на кон­денсаторе Срр необ­ходимо не позже, чем через 10 мкс после подачи такой команды открыть транзистор VT1, который зашунтирует резистор, что обеспечит нужный ток. Пока этот транзистор открыт, с информационной линией нельзя про­изводить никаких операций. Закрыть его можно только по завершении ис­полнения ранее поданной команды через 750 мс (CONVERT Т) или через 10 мс (СОРУ SCRATCHPAD). В большинстве случаев устанавли­вать отдельный полевой транзистор не требуется, он имеется внутри микро­контроллера. Например, у микроконт­роллеров семейства AVR, чтобы от­крыть его, достаточно перевести линию порта, используемую как информа­ционную, в режим выхода и установить на ней высокий уровень напряжения.

Признак наличия внешнего напряже­ния питания, формируемый внутри дат­чика, может быть по соответствующей команде прочитан микроконтроллером. Таким образом, программа всегда может узнать способ питания датчика. Верхний предел измеряемой темпера­туры при «паразитном» питании — 100 °С. Подробнее о датчике DS18S20 и его «паразитном» питании.

Схема электронного термометра с описанным выше подключением датчи­ка температуры DS18S20 к микроконт­роллеру AT90S8535 показана на рис. 2. Тактовая частота микроконтроллера задана кварцевым резонатором ZQ1 на 8 МГц. Изменять ее нельзя, поскольку это приведет к изменению всех форми­руемых программно задержек, необхо­димых для правильного обмена инфор­мацией между датчиком ВК1 и микро­контроллером. Датчик соединен с разъ­емом Х2 двупроводным аудиокабелем длиной 7 м. Назначение резистора R2 такое же, как у резистора R1 на рис. 1.

В сдвиговые регистры DD2 и DD3 микроконтроллер записывает резуль­таты измерения температуры в виде, необходимом для вывода на цифровой индикатор, собранный из светодиодов HL1— HL64. Каждый из шестнадцати разрядов выводимого на линию PD4 микроконтроллера кода сопровождает­ся импульсом записи на линии PD2. По окончании загрузки регистров разре­шается высоким уровнем на линии PD3 выдача кода на их выходы.

Схема электронного термометра

Поскольку выходы микросхем 74LS595N способны выдержать вте­кающий ток до 35 мА, имеется возмож­ность подключить к ним светодиоды HL1—HL64 через ограничивающие ток резисторы R3—R18 без дополнитель­ных усилителей.

Для получения максимальной ярко­сти и размеров информационного таб­ло применена статическая индикация, а в каждом из графических элементов индикатора установлено по четыре светодиода. На рис. 3 показано располо­жение светодиодов на табло. Цифрами в кружках обозначены их позиционные номера согласно схеме.

Расположение светодиодов на табло

Для питания электронного термометра необходим источник постоянного напряжения 5 В с током нагрузки до 200 мА. Программа микроконтроллера напи­сана и отлажена в среде AVRStudio4. Она работает следующим образом. Прежде всего конфигурируются внут­ренние устройства микроконтроллера. Далее проверяется наличие подклю­ченного к разьему Х2 датчика темпера­туры и выполняется чтение содержимо­го его постоянной памяти. Через 1 с (чтобы не запускать процесс измерения слишком часто) подается команда CONVERT Т. После этого на линии PD5 устанавливается необходимый для питания датчика высокий уровень.

Еще через 1 с, что более чем достаточно для завершения исполнения поданной команды, которое согласно документа­ции занимает не более 750 мс, переда­ется команда, по которой считывается измеренное значение температуры. Полученное значение преобразуется в двоично-десятичный формат. Если его абсолютное значение меньше десяти, то незначащий ноль не выводится, еди­ницы градусов отображаются в разряде десятков индикатора, а разряд единиц остается погашенным. При нулевой температуре знак результата (плюс или минус) на индикатор не выводится. Подготовленная информация описан­ным выше способом передается в регистры DD2 и DD3. Далее цикл повто­ряется, начиная с секундной задержки.

Указанный на схеме микроконтрол­лер можно заменить любым другим из семейства AVR — особых требований к нему не предьявляется. Конечно же, это потребует незначительных измене­ний в программе и ее повторной компи­ляции. Вместо датчика температуры DS18S20 можно применить DS1820, но не DS18B20, поскольку последний представляет значение температуры в ином формате, на что предлагаемая программа не рассчитана.

Так как термометр относительно прост, он собран навесным монтажом без использования печатной платы. Датчик температуры при установке его на открытом воздухе следует гермети­зировать, чтобы исключить попадание влаги на выводы.

Метки: , , , .


Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Проверочный код *

Разработка сайта: cryptonic