Микросхема DS 1621 , производства Dallas Semiconductors , предназначена для выполнения функций термометра и термостата. Возможности микросхемы позволяют производить измерение в диапазоне температурот -55 до +125 градусов Цельсия. Шаг отсчета температуры составляет 0.5 градуса. DS 1621 оснащена интерфейсом I 2C . В режиме термостата возможна автономная работа.

Назначение выводов

  • SDA - линия данных шины I2C
  • SCL - линия тактового сигнала шины I2C
  • Tout - выход термостата
  • Vdd - плюсовой вывод питания
  • Vss - минусовой вывод питания
  • A0..A2 - линииформирования младших битов адреса

Принцип работы

Датчик температуры DS 1621 для измерения использует принцип нестабильности частоты колебаний при изменении температуры. Для этого в ее состав входят два генератора. Первый имеет высокую температурную стабильность. Его частота соответствует температуре –55 градусов и практически не подвержена изменениям. Частота работы второго генератора, наоборот, изменяется пропорционально температуре. Специальные счетчики импульсов производят подсчет за одинаковый временной интервал и на основе разности, вычисляют значение температуры. Это значение в 9-разрядном двоичном коде доступно пользователю Данные разбиваются на старший и младший байты. Если достаточно целое значение температуры, то можно пользоваться только старшим байтом. Младший байт имеет только один информационный бит LSB , обеспечивающий дискретность 0.5 градуса. Остальные биты младшего байта всегда равны 0.

Микросхема DS 1621 имеет несколько режимов работы. Настройка и отслеживание этих режимов производится с помощью регистра состояний. Имеются следующие доступные биты:

  • DONE – флаг окончания преобразования.Устанавливается по завершении преобразования.
  • THF – флаг «высокая температура». Устанавливается при превышении порога TH . Сбрасывается программно или отключением питания.
  • TLF - флаг «низкая температура». Устанавливается при температуре меньшей, чем значение порога TL . Сбрасывается программно или отключением питания.
  • NVB – флаг записи данных в энергонезависимую память. Установленный флаг свидетельствует о незавершенности записи. Время записи ячейки составляет ориентировочно 10 мс.
  • POL – полярность выхода Tout . Высокое значение соответствует прямой полярности, низкое – обратной. Бит энергонезависим.
  • ISHOT – управление циклом измерений. При высоком логическом уровне измерение выполняется однократно. Данный режим используется в энергосберегающих системах. Низкий логический уровень бита, разрешает выполнение преобразования в непрерывном режиме. Бит энергонезависим.

Работа с DS1621

Команды обмена

Обмен данными с DS 1621 производится по стандартному протоколу I 2C . Микросхема участвует в нем в качестве slave -устройства. Slave -адрес DS 1621 имеет вид 1001ххх, где ххх – состояние линий А0-А2 микросхемы. Для работы с DS 1621 используются следующие команды:

  • 22h – «Останов преобразования» - команда производит завершение работы схемы преобразования температуры. Дополнительных данных для работы не требуется.
  • AAh – «Чтение температуры» - Результатом работы команды являются два байта данных, содержащих значение измеренной температуры.
  • A 1h – «Установка TH » - команда установки верхнего порога срабатывания термостата. После данной команды требуется передача двух байтов значения порога.
  • A 2h - «Установка TL » - команда установки нижнего порога срабатывания термостата. После данной команды требуется передача двух байтов значения порога.
  • A 8h – «чтение температурного счетчика». Команда работает только на чтение и позволяет считать данные счетчика, частота работы которого зависит от температуры.
  • A 9h - «чтение стабильного счетчика». Команда работает только на чтение и позволяет считать данные счетчика, частота работы которого не зависит от температуры.
  • A Сh – «Регистр конфигурации». В зависимости от состояния бита R /W производится запись или чтение регистра конфигурации. Формат используемых данных – байт.
  • EEh – «Старт счетчика» - команда начала измерения температуры. Дополнительных данных не требуется.

Повышение точности измерений

Датчик температуры DS1621 допускает повышение точности измерения. Для этого пользователю доступны значения счетчиков стабильного N и температурнозависимого N генератора. Зная измеренное значение температуры T и значения счетчиков можно воспользоваться формулой:

T=T – 0.25 + (N-N)/N

Также желательна калибровка датчика с определением необходимых поправок. Учет этих поправок должен производиться в контроллере.

Режим термостата

Микросхема DS 1621 может работать в режиме термостата. Для этого имеется выход Tout , устанавливаемый в зависимости от значения температуры. Пороги включения и выключения выхода задаются значениями в регистрах TH и TL . Полярность выхода устанавливается битом POL регистра конфигурации.



Устройство простое, без калибровки и микроконтроллеров.

Это невероятно простой термометр подключается к любому свободному последовательному порту. В устройстве не применяются какие-либо программируемые компоненты и микроконтроллеры. Точность измерений составляет до 0,5°C без калибровки. Оно так дешево, что я сделал его для каждого используемого мной компьютера. Это так приятно иметь температуру на панели задач Windows, что многие друзья попросили меня сделать такое устройство!

Сделайте себе точный термометр

Д анный проект достаточно легок для новичков, только, возможно могут быть трудности, связанные с аппаратной несовместимость последовательного порта на разных компьютерах. В версии с одним датчиком нужна только микросхема датчика, регулятор напряжения и несколько диодов и резисторов. Сделайте его и узнайте секреты IIC шины, как реализовать IIC шину используя только два резистора и пару стабилитронов, как управлять им на последовательном порту используя Visual Basic. Используемые компоненты легко доступны в .

Характеристики:
Температура отображается как на панели задач Windows, так и за её пределами(см. рисунок).
Устанавливается в любой свободный COM порт ПК.
Диапазон измерений -20 ... +125°C (-4 ... 257°F).
Базовая точность и разрешение 0.5°C.
Шкала Цельсия(°С) и Farenheit (°F).
Данные записываются в легко читаемый текстовый файл (хорошо для Excel).
Частота дискретизации 1, 5, 30 или 60 секунд.
Один или два датчика температуры (с возможностью расширения до 8)
Питание с COM-порта, внешний источник не требуется.
Легко сделать, не экзотические программные и аппаратные части.
Не требует калибровки.

Сделать ПК термометр легко. Я подробно опишу версию с элементами для поверхностного монтажа. Те, кто не знакомы с пайкой маленьких SMT элементов, будут рады узнать, что плата для выводных элементов также доступна.

Для начала необходимо собрать все элементы кроме плат. Вот список элементов:

Номер

Описание

DS1621 или DS1631

Цифровой датчик температуры
Пластиковый корпус SO8 (SMD) или DIP (Выводной)

Регулятор напряжения с ультра низкими потерями, корпус ТО92(в обоих вариантах)

Маленький импульсный диод(вроде 1N4148)

Стабилитрон 5,1В 0,5W.

Электролитический конденсатор

Низковольтный керамический конденсатор (SMD 1206)

Резистор 0,25W (SMD 1206)

9-контактный разъем “мама”, прямой (SMD) или угловой (Выводной)

Это увеличенный вид собранной SMT платы (Небольшая плата это выносной датчик температуры).

Как только я собрал все элементы, я распечатал плату в её реальном размере, чтобы проверить размеры всех элементов относительно неё. Ели элемент слишком большой или маленький, я могу поправить плату или поискать подходящий элемент перед началом работы.

После того, как все элементы проверены, я делаю плату. Так как она односторонняя, вы можете легко вытравить её самостоятельно. Это занимает меньше часа и не требует никаких особых материалов по методу, описанному здесь.

Плата должна быть безупречно чистой (без следов окисления и отпечатков пальцев) для хорошего травления и пайки. Протрите её мягким абразивом до блеска (кухонная мочалка, стальная вата и даже офисный ластик). Не забывайте отзеркалить рисунок платы перед печатью! Я люблю SMT платы, потому что необходимо сверлить не так много утомительных отверстий перед пайкой.

Для пайки требуется паяльник с тонким жалом, острый пинцет и твердая рука. Я креплю плату к столу во время пайки. На самом деле я прикрепляю её к распечатке, чтобы облегчить проверку во время пайки.
Для того, чтобы случайно не перепутать элементы, держите их в оригинальной упаковке до необходимости. Я предлагаю вам начать пайку с мелких элементов (резисторы, диоды...) и закончить большими (электролитический конденсатор), высокие элементы могут усложнить доступ к мелким.

Не наносите слишком много припоя, и будьте осторожны, чтобы не перегреть элементы (особенно диоды и микросхемы). Если необходимо, пусть элемент остынет. Большинство элементов полярные, поэтому будьте осторожны, чтобы не перепутать их. Катод диода (K) отмечен черным кольцом, отрицательный вывод электролитических конденсаторов черной полоской. Если вы предпочитаете использовать танталовые конденсаторы, помните, что их маркировка перевернута, и черной полосой обозначают положительный вывод!

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

Те, у кого нет опыта в пайке SMT элементов, могут быть обеспокоены пайкой микросхемы датчика.
Я чищу жало паяльника перед каждой точкой пайки, и использую очень тонкий припой, чтобы наносить максимально малое количество припоя. Я наношу небольшое количество припоя только на площадку предназначенную для вывода 1.

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

Регулятор напряжения LM2936Z5 нуждается в специальной подготовке к пайке. У меня были сквозные отверстия, но я хотел припаять его на SMT стороне платы. На рисунке показано как согнуть и укоротить контакты.

Печатная плата рассчитана на установку между контактами разъема последовательного порта. Это последняя часть пайки. Не забывайте припаять выводы 7 и 8 на противоположной стороне печатной платы.
Я обычно очищаю плату от остатков флюса при помощи растворителя, например ацетона, и позволяю плате полностью высохнуть перед включением. Как только плата проверена и работает, я наношу слой прозрачного лака-спрея для защиты меди от окисления.

Последний шаг заключается в загрузке и установке программного обеспечения. Если вас смущают подсказки Microsoft Installer (... на итальянском языке) эти скриншоты (первый и второй) помогут сделать всё правильно.

При первом запуске, необходимо выбрать номер последовательного порта, к которому подключена схема, и вы будете готовы к получению температуры. Удачи!

Как это работает?

Схема является производным от программатора Claudio Lanconelli PonyProg. Ключевым компонентом является датчик температуры DS1621 Dallas Semiconductor. Это цифровой датчик температуры, а это значит, что он измеряет температуру и превращает её в цифровые значения (двоичные числа, то есть последовательность из нулей и единиц, как байты в компьютере).

Просто подайте стабилизированное питание 5В, и DS1621 способен передавать температуры окружающей среды через последовательную шину IIC (Inter-Integrated Circuit шину, также пишется I2C). Это стандартная схема передачи разработанная Philips Semiconductors для соединения множества микросхем вместе, используя всего две линии: тактовую (SCL) и данные (SDA).

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

Прямо с завода, все DS1621 поставляется базовым адресом ($40), но вы можете настроить его, соединяя адресные выводы (А0, А1, А2), с 5В или GND соответственно (см. таблицу). Таким образом, вы можете подключить до 8-ми микросхем датчиков параллельно на шину, хотя поставляемое программное обеспечение поддерживает и заносит в таблицу только два (вы можете добавить больше датчиков, изменив программное обеспечение).

Так что мы можем питать DS1621 от 5В постоянного тока и подключить его SCK и SDA проводам I2C интерфейса ПК, верно? К сожалению, компьютеры не имеют разъемов 5В постоянного тока и портов I2C, поэтому мы должны хакнуть их!

Хак#1: Фантомное питание COM-порта

Датчик температуры не требует много энергии для работы, так почему бы не устранить необходимость питания, "крадя" питание с сигналов уже доступных на порте RS232?
+12В от линий RS232 передаются на регулятор через диоды D1, D2, фильтруется C1 и регулируется до +5В на LM2936-Z5. Это специальный регулятор, способный работать с минимальным входным напряжением и сохранять каждый мА. LM2936 способен регулировать с таким низким входным напряжением как 5,2 (больше всего последовательных портов питаются только 6В). Для сравнения, обычные регуляторы 78L05 требуют, по крайней мере, 6.7В на входе и потребляет в 100 раз больше тока, необходимого LM2936-Z5.

Хак#2: Заставляем COM-порт делать вид, что это I2C-шина.

Программное обеспечение ПК термометра эмулирует провода I2C-шины двумя контактами COM-порта, доступного на всех материнских платах.

В качестве линии SCL используется RTS (Request To Send, контакт 7), а для SDA используется линия, первоначально разработанная для DTR последовательного порта (Data Terminal Ready, вывод 4). Эти сигналы доступны из Visual Basic установкой DTR и RTS свойств объекта MSComm.
Вы не можете подать сигнал с COM порта на DS1621 напрямую, так как уровни напряжения должны быть адаптированы. В соответствии со стандартом EIA-RS232, в большинстве компьютеров выходное напряжения достигает +15В постоянного тока и падает до -15В постоянного тока на разъеме COM порта, поэтому мы должны ограничить их более удобными напряжениями от 0 до +5В постоянного тока перед подключением к DS1621 SDA и SCL проводов. Стабилитрона 5.1В и ограничительного резистора 4700 достаточно для этой цели.

Если вы посмотрите на схему внимательно, вы заметите, что вывод SDA соединен также с контактом CTS (Clear To Send, контакт 8). Таким образом, программное обеспечение ПК термометра может контролировать логический уровень SDA, чтобы читать ответы микросхемы, что делает эту линию двунаправленной. Хотя теоретически последовательный порт требует отрицательного сигнала с входа, сигналы в диапазоне 0 ... 5В постоянного тока хорошо работают практически на любом компьютере на земле.

Программное обеспечение

Программное обеспечение поставляется предварительно скомпилированным и с инсталлятором (setup.exe), но для тех, кто интересуется программированием, включен исходный код.

Я написал программу в Visual Basic. Я сделал это прямым путем, намеренно избегая оптимизации, которая сделает код менее читабельным.
Функции шины I2C сгруппированы в файл, который может быть повторно использован для других приложений. Он предоставляет функции для всех основных операций I2C шины: таких как запуск и остановка шины, или отправка и получение одного байта.

Основная программа обеспечивает функции, температуры(chipaddress), который дает I2C-шине команду, чтобы получить температуру от микросхемы.
Чтобы прочитать температуру микросхемы в Visual Basic все, что вам нужно, это запросить температуру ($&48), где $ и 48 является адресом для первой микросхемы, $H49 является адресом второй микросхемы, и так далее в соответствии с таблицей выше. Моя программа использует два датчика, но не так трудно изменить её для поддержки до 8 микросхем.

Самый первый раз, когда вы запустите программу, вы получите предупреждение о том, что не существует файла конфигурации (он будет автоматически создан в конце сессии) и настройки будут по умолчанию. Выберите последовательный (COM) порт, который вы используете, если ваше устройство включает в себя U2 для чтения температуры наружного воздуха, интервал между измерениями, единицы измерения и если вы хотите логирование температуры в файл "pc_thermometer.txt" (ASCII текстовый файл, который вы можете импортировать в Excel для обработки или построения графика).

Проверьте поле "start minimized", если оно включено, то при последующих запусках программа не будет открывать окно на рабочем столе, а будет минимизирована на панели задач, обеспечивая "иконку температуры". Это мой предпочтительный способ использования программы.
При нажатии на иконку открывается окно.

Список радиоэлементов

Обозначение Тип Номинал Количество Примечание Магазин Мой блокнот
U1, U2 Датчик температуры

DS1621

2 В блокнот
U3 Линейный регулятор

LM2936

1

Микросхема DS1621 это термометр и термостат с цифровым вводом/выводом, обеспечивающий точность ±0.5°C. При использовании в качестве термометра, данные считываются через I2C/SMBus последовательную шину в дополнительном 9-битном коде с ценой младшего разряда ±0.5°C. Для приложений требующих более высокого разрешения, пользователь может прочитать дополнительные регистры и произвести простые арифметические действия, чтобы достичь более чем 12-битового разрешения (с ценой самого младшего разряда 0.0625°C). Микросхема DS1621 обеспечивает 3 адресных входа, чтобы позволить пользователям подключить до 8 DS1621 к одной шине.
При использовании в качестве термостата, микросхема DS1621 имеет во внутренней энергонезависимой памяти (EEPROM) программируемые пользователем контрольные точки по превышению температуры (TH) и по понижению температуры (TL). Один специальный логический выход сработает, когда TH достигнут, и выход будет оставаться активным до тех пор, пока температура не упадёт ниже TL (программируемый гистерезис).
Микросхема DS1621 предлагается в 300mil, 8-контактном PDIP и 150mil, 8-контактном SOIC. Для приложений, которым не требуется точность ±0.5°C, доступна микросхема DS1721 с пониженной точностью ±1°C, более дешёвая полностью совместимая микросхема (только в корпусе SOIC).
Микросхема DS1621 поддерживается Демонстрационным комплектом DS1702k.
Отличительные Особенности:
±0.5°C точность с 0°C до 70°C
9-битовое разрешение, расширяемое до 12-битового
специальный логический выход для термостатирования
Настройки термостатирования энергонезависимые и программируются пользователем
Данные передаются через I2C/SMBus последовательный интерфейс
3 адресных входа (8 DS1621 может быть использовано на одной шине)
Диапазон рабочего питающего напряжения от 2.7В до 5.5В
8-контактные PDIP или 150mil, 8-контактные SOIC корпуса
DS1621 8-PIN DIP (300-MIL)
DS1621S 8-PIN SOIC (150-MIL)
DS1621V 8-PIN SOIC (208-MIL)

Принципиальная схема самодельного термостата, который предназначен для работы с отопительной системой на основе электрокотла. В основе схемы лежит микросхема DS1621. Микросхема DS1621 это термометр и термостат с цифровымвводом/выводом, обеспечивающий точность ±0.5°С.

При использовании в качестве термометра, данные считываются через l2C/SMBus последовательную шину в дополнительном 9-битном коде с ценой младшего разряда ±0.5°С.

Для приложений требующих более высокого разрешения, пользователь может прочитать дополнительные регистры и произвести простые арифметические действия, чтобы достичь более чем 12-битового разрешения (с ценой самого младшего разряда 0.0625°С). Микросхема DS1621 обеспечивает 3 адресных входа, чтобы позволить пользователям подключить до 8 DS1621 к одной шине.

При использовании данной микросхемы в качестве термостата, данные о той температуре, которую нужно поддерживать хранятся во внутренней энергонезависимой памяти (EEPROM) в виде задаваемых пользователем контрольных точек по превышению температуры (ТН) и по понижению температуры (TL). Разница между ТН и TL образует гистерезис.

Когда температура недостаточна (TL и ниже) на выводе 3 микросхемы устанавливается низкий логический уровень. Когда температура достаточная (ТН и выше) на этом выводе логическая единица.

Микросхема DS1621 выпускается в 8-контактном PDIP и 8-контактном SOIC корпусах.

Принципиальная схема

На рисунке 1 показана схема подключения данной микросхемы к персональному компютеру.

Рис. 1. Принципиальная схема термостата для электрокотла.

Программное обеспечение, с которым будет работать термостат по рис.1 совместно с персональным компьютером можно найти в , скачать программу - Скачать (1,5 МБ).

После задания температуры с помощью персонального компьютера, его можно отключить от схемы на рис.1. Заданные данные сохранятся в памяти микросхемы, и эта схема будет работать самостоятельно, поддерживая заданную температуру с помощью симистора VS1, управляя им питанием ТЭНа отопительного котла.

Рис. 2. Схема термостата на микроконтроллере ATTINY2313.

Компьютер, с успехом, можно заменить схемой управления и контроля на основе микроконтроллера, например, схема на ATTINY2313, показанная на рисунке 2. Это законченное самостоятельное устройство, которое может поддерживать температуру в помещении в пределах от 10 до 40 град, по Цельсию, и одновременно служить термометром, показывающим конкретную температуру в помещении.

Температура отображается на двухразрядном светодиодном цифровом индикаторе. Управление тремя кнопками. S1 служит для включения и выключения термометра.

А кнопками S2 и S3 можно установить температуру, которую нужно поддерживать. Светодиод HL1 служит для индикации включенного состояния электрокотла. Когда ТЭН котла работает, он мигает.

Прошивка МК

НЕХ-файл для программирования микроконтроллера находится по этой ссылке: Скачать (1,9 КБ).

Микроконтроллер работает со встроенным генератором частотой 4 МГц. При программировании в Features нужно выбрать:

int. RC Osc. 4 MHz; Start-up time: 14 CK + 0 ms;

Brown-out detection disabled; поставить галочку на Serial program downloading (SPI) enabled;

Фьюзы: (поставить галочки) SUT1, SPIEN, SUTO, CKSEL3, CKSEL2, CKSELO

Детали

Монтаж выполнялся на макетных печатных платах. Трансформатор Т1 - готовый трансформатор «TAIWAN 110-230V 6-0-6V 150тА», силовой, маломощный, со вторичной обмоткой на 6V. Вернее, у него две вторичные обмотки 6-0-6V и ток до 150тА, соединенные последовательно. Здесь используется только одна обмотка. Первичная обмотка на 230V, но содержит отвод для 110V.

Нужно омметром выбрать выводы первичной обмотки с наибольшим сопротивлением между ними, и их подключить в электросеть. Светодиодные индикаторы АЛСЗЗЗА довольно старые. Их можно заменить любыми семисегментными цифровыми светодиодными с общим катодом.

Кожухин В. А. РК-08-16.

Литература: 1. Термометр для ПК на DS1621 - cxem.net/mc/mc136.php.