Пк термометр на ds1621

Датчик температуры DS1621. Подробное описание датчика

Микросхема DS1621 представляет собой термометр и термостат «в одном флаконе» с цифровым вводом и выводом, которая гарантирует точность измерения и контроля с погрешностью плюс – минус 0,5 гр.

Цельсия. Если использовать датчик DS1621  в роли термометра, то данные должны обрабатываться через I2C/SMBus последовательную шину в дополнительном девяти – битном коде с точностью младшего разряда плюс – минус 0,5 гр.

Цельсия.

Для приложений, которым нужно повышенное разрешение контролируемой величины температуры, необходимо считать дополнительные регистры и выполнить несложные арифметические операции, для того чтобы получить более чем 12-битового разрешения (при этом цена самого наименьшего разряда составляет 0,0625 гр. Цельсия). Микросхема DS1621 имеет три адресных входа, таким образом, появляется возможность   подключить к одной шине до восьми датчиков DS1621.

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

Описание выводов датчика DS1621

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

Принцип работы датчика DS1621

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

Первый из них обладает высокой температурной стабильностью. Его рабочая частота соответствует температуре  – 55 гр. Цельсия  и фактически не изменяется.

Рабочая частота же второго  генератора, напротив, меняется соразмерно изменению температуры.

 Особые счетчики совершают подсчет импульсов за равный промежуток времени и на базе разности, производится расчет текущей температуры, который представлен в виде  9-разряднго двоичного кода.

Данные делятся на старший и младший байты. Если для каких либо целей необходимо целое значение температуры, то нужно использовать, лишь старший байт. Младший же  байт обладает только одним информационным битом – LSB, который реализует дискретность в  0,5 гр. Цельсия. Оставшиеся биты младшего байта постоянно равны нулю.

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

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

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

Обмен данными с датчиком DS1621 происходит по типовому протоколу I2C. Датчик принимает участие в нем в качестве SLAVE – устройства. Его SLAVE – адрес имеет вид следующий вид:

1001ххх

где ххх – состояние линий А0-А2 микросхемы. Для взаимодействия с DS1621 применяются следующие команды:

  • 22h – «Останов преобразования» – команда выполняет окончание работы схемы преобразования температуры. Лишних данных для работы не требуется.
  • AAh – «Чтение температуры» – Итогом работы команды  –  два байта данных, которые содержат величину измеренной температуры.
  • A1h – «Установка TH» – команда выбора верхнего порога срабатывания термостата. После этой команды нужна передача двух байтов значения порога.
  • A2h – «Установка TL» – команда выбора нижнего порога срабатывания термостата. После данной команды нужна передача двух байтов значения порога.
  • A8h – «чтение температурного счетчика». Команда действует только на чтение и разрешает считать данные счетчика, частота работы которого зависит от температуры.
  • A9h – «чтение стабильного счетчика». Команда действует только на чтение и разрешает считать данные счетчика, частота работы которого не зависит от температуры.
  • AСh – «Регистр конфигурации». Если бит равен R – производится запись регистра конфигурации, при  W – чтение.
  • EEh – «Старт счетчика» – команда запуска  измерения температуры. Лишних данных не требуется.

Улучшение точности измерений

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

T=T[AAh] – 0.25 + (N[A9h]-N[A8h])/N[A9h]

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

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

Источник: http://www.joyta.ru/3564-datchik-temperatury-ds1621/

Visual Basic DS1621 Two Channels PC Thermometer Circuit – Electronics Projects Circuits

Without using a microcontroller with two DS1621 thermometer circuit further programs and source code in Visual Basic 5 has been prepared by the program data in the text file is a fan circuit with… Electronics Projects, Visual Basic DS1621 Two Channels PC Thermometer Circuit “analog circuits projects, “

Without using a microcontroller with two DS1621 thermometer circuit further programs and source code in Visual Basic 5 has been prepared by the program data in the text file is a fan circuit with the computer is communicating over RS232 port

DS1621 pc thermometer

So cool you can even measure it!

This incredibly simple thermometer plugs on any free serial port. Does not make use of any programmable components as microcontrollers. It gives temperature readings accurate to 0.5°C with no calibration.

It’s cheap, so I’ve put one on any PC I use.

And it is so nice to have the temperature shown on the Windows taskbar, that a million friends asked me to build one!
Build yourself an accurate thermometer

Since I have no time to build a million pcTHERMs, I give you the plans and the software to build one on your own. This project is easy enough for beginners, the only difficulties possibly arising from serial port hardware incompatibility from PC to PC.

In the single-sensor version, you need only the sensor IC, a voltage regulator and and handful of diodes and resistors. Build it, and learn the secrets of IIC bus, how to implement IIC bus using only two resistors and a couple of zeners, how to drive it on a serial port using Visual Basic .

Components involved are available on the worldwide RS-components catalogue.

PC Thermometer features

displays both indoor and outside temperature on the Windows taskbar (see figure) plugs in any free PC com port range -20 … +125°C (-4 … 257°F) basic accuracy and resolution 0.

5°C Centigrade (°C) of Farenheit (°F) scale data logging on easily readable text file sampling rate 1, 5, 30 or 60 seconds one or two temperature sensors (upgradeable up to 8) com port powered, no external power supply required easy to build, no exotic nor programmable parts inside no calibration required

full source code available for free (educational and non-commercial uses only)

DS1621 Thermometer Circuit Schematic

Parts list
2 x 1N4148 diodes 2 x 5.1 volt 1/4W zeners 2 x 4700 ohm resistors 2 x 100 nFcapacitors 2 x 47uF 16V el.capacitors 2 x DS1621 digital temperature sensors (Dallas Semiconductor) 1 x LM2936-z5 low-droput 5V regulator(National Semiconductor) 1 x DB9 female plug.

How it works

The circuit is derived from the Claudio Lanconelli’s PONYPROG programmer (I recommend you to visit the Claudio Homepage at http://www.cs.unibo.it/~lanconel ). The key component is the Dallas Semiconductor’s DS1621 temperature sensor. This tiny 8 pin IC needs only +5 volts to measure the temperature and to send it out via its IIC bus output.

Since many IIC bus devices can be connected in parallel, three address inputs (A0, A1, A2) are provided to select one out 8 addresses the device will respond on. This way, up to 8 sensors can be connected in parallel. I have set the internal temperature sensor to address 0 and the external one to address 1.

If you plan to use only one sensor connect it as address 0.

Interfacing the IIC bus to the RS232 com port is a matter of adapting levels. IIC works on 0..5V signals, RS232 uses -12V .. +12V. The trick here is that, altough specified for -12V..+12V, almost all PC com port I know work equally well with 0..5V signals.

This eliminates the need to raise the IIC output to RS232 levels, and the SDA data line connects directly to the PC CTS line. On the opposite way, the RS232 signals can damage the IIC inputs, so I placed voltage limiters (R1, DZ2, R2, DZ1) on the SCL clock input and SDA data input.

(note that SDA is bidirectional: receives from the DTR line and transmits to the CTS line).

Since the circuit draws very little current, there is no need to add an external power supply.

The +12V from the RS232 lines are conveyed to the regulator by diodes D1, D2, filtered by C1 and regulated to +5V by the LM2936-Z5.

Don’t replace it with an ordinary 78L05 regulator unless you want to add an external 9V battery: the LM2936 is capable to regulate even with input voltages near to 6V, as is the case of many serial ports.

PC Thermometer software

Источник: http://320volt.com/en/visual-basic-ds1621-iki-kanal-pc-termometre/

Датчик температуры DS1621

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

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

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

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

Датчик температуры DS1621 для измерения использует принцип нестабильности частоты колебаний при изменении температуры. Для этого в ее состав входят два генератора. Первый имеет высокую температурную стабильность.

Его частота соответствует температуре –55 градусов и практически не подвержена изменениям. Частота работы второго генератора, наоборот, изменяется пропорционально температуре.

Специальные счетчики импульсов производят подсчет за одинаковый временной интервал и на основе разности, вычисляют значение температуры. Это значение в 9-разрядном двоичном коде доступно пользователю Данные разбиваются на старший и младший байты.

Если достаточно целое значение температуры, то можно пользоваться только старшим байтом. Младший байт имеет только один информационный бит LSB, обеспечивающий дискретность 0.5 градуса. Остальные биты младшего байта всегда равны 0.

Регистр состояния

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

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

Работа с DS1621

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

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

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

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

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

T=T[AAh] – 0.25 + (N[A9h]-N[A8h])/N[A9h]

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

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

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

Примеры работы

Использование датчика температуры DS1621 и платы AMICUS18

You have no rights to post comments

Источник: https://mcucpu.ru/index.php/pdevices/datchiki/52-ds1621

Библиотека для DS1621 – разрешение 0.1 °С

Источник: https://pro-radio.ru/controllers/3196

Регулятор температуры на AT90S2313 и DS1621

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

Таким образом, я разработал это небольшое устройство, которое может контролировать температуру и управлять нагревателем.

В основе устройства лежат микроконтроллер AT90S2313 и цифровой датчик DS1621. Температура отображается на двойной 7-сегментном индикаторе. Две кнопки используются для настройки параметров. Реле рассчитано на большой ток нагревательного элемента.

Я использовал AVR AT90S2313, так как он был оптимален для выполнения поставленной задачи. Кроме того, его можно программировать на С, а это упрощает задачу. Альтернативой этому микроконтроллеру был бы 1200, но у меня был неудачный опыт с этим микроконтроллером .
Для тактирования микроконтроллера AT90S2313 применяется  керамический резонатор на 4 МГц.

Индикаторы используются с общим катодом. Сегменты обоих индикаторов соединены между собой, а управление осуществляется с помощью динамической индикации. Обратите внимание, что десятичные точки индикаторов также используются. Более подробно об этом позже.

Питание осуществляется переменным напряжением 9В, снимаемым со вторичной (или двух вторичных) обмотки трансформатора. Далее напряжение выпрямляется с помощью диодного моста В1 и сглаживается на конденсаторе С2. Выпрямленное и сглаженное напряжение поступает на вход линейного стабилизатора 5В. Выпрямленное напряжение также является источником питания для выходного реле К1.

Связь микроконтроллера 2313  с цифровым датчиком Dallas DS1621 осуществляется с помощью последовательного интерфейса I2C. Это 2-проводная двунаправленная шина со скоростью до 400 кбит / с.

До 8 датчиков DS1621 могут быть подключены к одной шине I2C.

  В этом устройстве есть только один датчик, поэтому выводы DS1621, определяющие адрес устройства на шине подключаем к общему проводу питания, задав при этом адрес 0. (а 0x90 на самом деле).

На самом деле, DS1621 имеет термостатный выход, который можно запрограммировать на определенную температуру, но он не используется в данном приложении.

Реле потребляет ток около 40-50 мА и управляется стандартным транзистором NPN.

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

Как правило, дисплей показывает измеренную температуру. Левую десятичную точку, можно включить или выключить, для того чтобы убедиться что устройство исправно. Правая десятичная точка показывает состояние реле, включено оно или нет.

Короткое нажатие на любую из кнопок вверх или вниз, покажет заданную температуру в течение 1 секунды. Если удерживаются клавиши, то заданная температура будет увеличиваться или уменьшаться соответственно.

Нажатие обеих клавиш одновременно дает доступ к двум параметрам:

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

Например, если гистерезис имеет значение 2, и заданная температура 21 градус, реле будет включаться при температуре 19 градусов, а выключатся при температуре 23 градуса.

Это позволит избежать дребезжаний реле.

Второй параметр — это скважность управления индикаторами ( в этом режиме светиться нижний сегмент в левом индикаторе, а в правом отображается значение параметра) Этот параметр позволяет определять яркость свечения индикаторов.

Оба этих параметра хранятся в EEPROM.

Схема

Внешний вид

Источник: http://elektro-shemi.ru/reguljator_temperatury_na_at90s2313_i_ds1621.html

Пк термометр на ds1621

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

Это невероятно простой термометр подключается к любому свободному последовательному порту. В устройстве не применяются какие-либо программируемые компоненты и микроконтроллеры.

Точность измерений составляет до 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 элементов, будут рады узнать, что плата для выводных элементов также доступна.

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

Не знал, куда кинуть – то ли в Удачный опыт, то ли сюда – но тут ближе к теме. Столкнулся с необходимостью измерения температуры с высоким разрешением, решил использовать упомянутый в теме датчик.

Нижеприведенная библиотека позволяет читать данные с дополнительных регистров датчика (в соответсвии с datasheet на него) и вычислять температуру с высоким разрешением. Функция возвращает значение температуры(целое число), умноженное на 10 (сотые доли не округляются, а отбрасываются). Т.е.

при температуре 37.5 °С функция вернет 375. Написано для CodeVision. Буду рад, если кому-то пригодится.

Заголовочный файл:

/* 1621.h */

/*CodeVisionAVR C Compiler

(C) 2001 Pavel Haiduc, HP InfoTech S.R.L.

*/

#ifndef _1621_INCLUDED_
#define _1621_INCLUDED_

#include<\p>

#pragma used+

void ds1621_init(void);void ds1621_start(void);

int ds1621_read(void);

#pragma used-
#pragma library 1621.lib

#endif

/* end of file */

Библиотечный файл:


/******************************************************************

1621.lib

/* ЛИРИЧЕСКОЕ ОТСТУПЛЕНИЕ */
/* По даташиту на DS1621 максимальное время преобразования – 750мс,однако, при интенсивной работе с датчиком замечено, что при частыхобращениях, или при работе в режиме непрерывных преобразований, оннесколько завышает показания – видимо, это связано с нагревом самогокристалла при выполнении различных операций, т.к. при этом растетпотребляемый ток.

Также замечено, что реальное время преобразованиягораздо меньше 750 мс, и составляет около 400 мс (выяснение зависимостиот измеряемой температуры или напряжения питания не проводилось).Если от устройства требуется максимально быстрая реакция на изменениетемпературы, имеет смысл после запуска преобразования опрашиватьрегистр статуса на предмет единицы в MSB (done).

При использовании

стандартной библиотеки CodeVision ds1621.h это будет выглядеть так:

while ((ds1621_get_status(chip) & 0x80)==0);

Впрочем, читать регистр статуса можно и самостоятельно, без библиотеки,но опять-таки непрерывное обращение к датчику вызывает некотороезавышение измеренной им температуры.

**********************************************************************/

void ds1621_init(void){i2c_start();i2c_write(0x90|(01)); i2c_write(0xAC);i2c_write(0b00000001); //в LSB конфигурационного байта пишем 1 – преобр. по запросу.

i2c_stop();

i2c_start();i2c_write(0x90|(01));i2c_write(0x22); // остановка преобразованияi2c_stop();

}

void ds1621_start(void){i2c_start();i2c_write(0x90|(01));i2c_write(0xEE); // старт преобразованияi2c_stop();

}

int ds1621_read(){unsigned char i2c_address;int read_temp;

float b, cpc, cr;

//читаем count_per_ci2c_address=0x90|(01);i2c_start();i2c_write(i2c_address);i2c_write(0xa9);i2c_start();i2c_write(++i2c_address);cpc=i2c_read(0);

i2c_stop();

//читаем count_remaini2c_address=0x90|(01);i2c_start();i2c_write(i2c_address);i2c_write(0xa8);i2c_start();i2c_write(++i2c_address);cr=i2c_read(0);

i2c_stop();

//читаем старший байт температурыi2c_address=0x90|(01);i2c_start();i2c_write(i2c_address);i2c_write(0xaa);i2c_start();i2c_write(++i2c_address);read_temp=i2c_read(0);

i2c_stop();

b=read_temp-0.25+(cpc-cr)/cpc; //вычисляем температуру

return b*10;
}

/* end of file */
[/b]

PS: Как есть может работать только с одним датчиком (с нулевым адресом). Но добавить передачу адреса датчика не так уж и сложно.

Номер

Тип

Описание

U1, U2

DS1621 или DS1631

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

U3

LM2936Z-5.0

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

D1, D2

LL4148

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

DZ1, DZ2

MMSZ5V1

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

C1, C2

47 мкФ/16В

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

C3, C4

100нФ

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

R1, R2

4700 Ом 5%

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

COM

DB9F

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”, если оно включено, то при последующих запусках программа  не будет открывать окно на рабочем столе, а будет минимизирована на панели задач, обеспечивая “иконку температуры”. Это мой предпочтительный способ использования программы.
При нажатии на иконку открывается окно.

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

Скачать список элементов (PDF)

Оригинал статьи

Прикрепленные файлы:

  • pc_thermometer.rar (1660 Кб)

Источник: http://cxem.gq/house/1-304.php

Ссылка на основную публикацию
Adblock
detector
",css:{backgroundColor:"#000",opacity:.6}},container:{block:void 0,tpl:"
"},wrap:void 0,body:void 0,errors:{tpl:"
",autoclose_delay:2e3,ajax_unsuccessful_load:"Error"},openEffect:{type:"fade",speed:400},closeEffect:{type:"fade",speed:400},beforeOpen:n.noop,afterOpen:n.noop,beforeClose:n.noop,afterClose:n.noop,afterLoading:n.noop,afterLoadingOnShow:n.noop,errorLoading:n.noop},o=0,p=n([]),h={isEventOut:function(a,b){var c=!0;return n(a).each(function(){n(b.target).get(0)==n(this).get(0)&&(c=!1),0==n(b.target).closest("HTML",n(this).get(0)).length&&(c=!1)}),c}},q={getParentEl:function(a){var b=n(a);return b.data("arcticmodal")?b:(b=n(a).closest(".arcticmodal-container").data("arcticmodalParentEl"),!!b&&b)},transition:function(a,b,c,d){switch(d=null==d?n.noop:d,c.type){case"fade":"show"==b?a.fadeIn(c.speed,d):a.fadeOut(c.speed,d);break;case"none":"show"==b?a.show():a.hide(),d();}},prepare_body:function(a,b){n(".arcticmodal-close",a.body).unbind("click.arcticmodal").bind("click.arcticmodal",function(){return b.arcticmodal("close"),!1})},init_el:function(d,a){var b=d.data("arcticmodal");if(!b){if(b=a,o++,b.modalID=o,b.overlay.block=n(b.overlay.tpl),b.overlay.block.css(b.overlay.css),b.container.block=n(b.container.tpl),b.body=n(".arcticmodal-container_i2",b.container.block),a.clone?b.body.html(d.clone(!0)):(d.before("
"),b.body.html(d)),q.prepare_body(b,d),b.closeOnOverlayClick&&b.overlay.block.add(b.container.block).click(function(a){h.isEventOut(n(">*",b.body),a)&&d.arcticmodal("close")}),b.container.block.data("arcticmodalParentEl",d),d.data("arcticmodal",b),p=n.merge(p,d),n.proxy(e.show,d)(),"html"==b.type)return d;if(null!=b.ajax.beforeSend){var c=b.ajax.beforeSend;delete b.ajax.beforeSend}if(null!=b.ajax.success){var f=b.ajax.success;delete b.ajax.success}if(null!=b.ajax.error){var g=b.ajax.error;delete b.ajax.error}var j=n.extend(!0,{url:b.url,beforeSend:function(){null==c?b.body.html("
"):c(b,d)},success:function(c){d.trigger("afterLoading"),b.afterLoading(b,d,c),null==f?b.body.html(c):f(b,d,c),q.prepare_body(b,d),d.trigger("afterLoadingOnShow"),b.afterLoadingOnShow(b,d,c)},error:function(){d.trigger("errorLoading"),b.errorLoading(b,d),null==g?(b.body.html(b.errors.tpl),n(".arcticmodal-error",b.body).html(b.errors.ajax_unsuccessful_load),n(".arcticmodal-close",b.body).click(function(){return d.arcticmodal("close"),!1}),b.errors.autoclose_delay&&setTimeout(function(){d.arcticmodal("close")},b.errors.autoclose_delay)):g(b,d)}},b.ajax);b.ajax_request=n.ajax(j),d.data("arcticmodal",b)}},init:function(b){if(b=n.extend(!0,{},a,b),!n.isFunction(this))return this.each(function(){q.init_el(n(this),n.extend(!0,{},b))});if(null==b)return void n.error("jquery.arcticmodal: Uncorrect parameters");if(""==b.type)return void n.error("jquery.arcticmodal: Don't set parameter \"type\"");switch(b.type){case"html":if(""==b.content)return void n.error("jquery.arcticmodal: Don't set parameter \"content\"");var e=b.content;return b.content="",q.init_el(n(e),b);case"ajax":return""==b.url?void n.error("jquery.arcticmodal: Don't set parameter \"url\""):q.init_el(n("
"),b);}}},e={show:function(){var a=q.getParentEl(this);if(!1===a)return void n.error("jquery.arcticmodal: Uncorrect call");var b=a.data("arcticmodal");if(b.overlay.block.hide(),b.container.block.hide(),n("BODY").append(b.overlay.block),n("BODY").append(b.container.block),b.beforeOpen(b,a),a.trigger("beforeOpen"),"hidden"!=b.wrap.css("overflow")){b.wrap.data("arcticmodalOverflow",b.wrap.css("overflow"));var c=b.wrap.outerWidth(!0);b.wrap.css("overflow","hidden");var d=b.wrap.outerWidth(!0);d!=c&&b.wrap.css("marginRight",d-c+"px")}return p.not(a).each(function(){var a=n(this).data("arcticmodal");a.overlay.block.hide()}),q.transition(b.overlay.block,"show",1*")),b.overlay.block.remove(),b.container.block.remove(),a.data("arcticmodal",null),n(".arcticmodal-container").length||(b.wrap.data("arcticmodalOverflow")&&b.wrap.css("overflow",b.wrap.data("arcticmodalOverflow")),b.wrap.css("marginRight",0))}),"ajax"==b.type&&b.ajax_request.abort(),p=p.not(a))})},setDefault:function(b){n.extend(!0,a,b)}};n(function(){a.wrap=n(document.all&&!document.querySelector?"html":"body")}),n(document).bind("keyup.arcticmodal",function(d){var a=p.last();if(a.length){var b=a.data("arcticmodal");b.closeOnEsc&&27===d.keyCode&&a.arcticmodal("close")}}),n.arcticmodal=n.fn.arcticmodal=function(a){return e[a]?e[a].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof a&&a?void n.error("jquery.arcticmodal: Method "+a+" does not exist"):q.init.apply(this,arguments)}}(jQuery)}var debugMode="undefined"!=typeof debugFlatPM&&debugFlatPM,duplicateMode="undefined"!=typeof duplicateFlatPM&&duplicateFlatPM,countMode="undefined"!=typeof countFlatPM&&countFlatPM;document["wri"+"te"]=function(a){let b=document.createElement("div");jQuery(document.currentScript).after(b),flatPM_setHTML(b,a),jQuery(b).contents().unwrap()};function flatPM_sticky(c,d,e=0){function f(){if(null==a){let b=getComputedStyle(g,""),c="";for(let a=0;a=b.top-h?b.top-h{const d=c.split("=");return d[0]===a?decodeURIComponent(d[1]):b},""),c=""==b?void 0:b;return c}function flatPM_testCookie(){let a="test_56445";try{return localStorage.setItem(a,a),localStorage.removeItem(a),!0}catch(a){return!1}}function flatPM_grep(a,b,c){return jQuery.grep(a,(a,d)=>c?d==b:0==(d+1)%b)}function flatPM_random(a,b){return Math.floor(Math.random()*(b-a+1))+a}