DS18B20: датчик температуры для жидкостей

DS18B20

Доступны различные датчики влажности и температуры, такие как LM35. Некоторые из них встроены в модули для специального использования с Arduino. Но, как правило, они предназначены для измерения температуры в сухом виде, то есть температуры воздуха. Но есть конкретная модель, которая работает для измеряет температуру в жидкостях и называется DS18B20. Особенность, которая может пригодиться для некоторых из ваших более экзотических проектов DIY, где вы также играете с жидкостью, для которой вам необходимо знать этот параметр.

На самом деле DS18B20 не только измеряет температуру внутри жидкостей, но и может быть очень полезен для измерения температуры в влажная среда, а также под жидкостью. Таким образом, вы также можете использовать его для измерения температуры воздуха, если окружающая среда довольно влажная. И, как я уже сказал, возможность погрузить его в жидкость для измерения температуры - одна из функций, делающих его невероятно практичным.

Что такое DS18B20?

Что ж, думаю, уже стало ясно, это электронный датчик, способный измерять температуру газообразных или жидких сред. Кроме того, есть разные пакеты или пакеты DS18B20, например, базовый, который вы видите на основном изображении, или он также может быть интегрирован в некоторые печатные платы, погружные зонды и т. д. Для вашего проекта вы должны выбрать наиболее подходящий формат в соответствии с тем, что вы хотите.

Например, помимо типичного ТО-92 есть еще и microSOP. Возможно интегрировать с Arduino наиболее подходящим является TO-92, так как его три контакта очень легко вставить в макет для подключения.

Распиновка

Контакты ds18b20

El Распиновка DS18B20 легко идентифицировать. Например, взяв за образец корпус Dallas TO-92, который является одним из самых популярных, вы можете увидеть, что он имеет три контакта. Если вы поместите его спереди, то есть с закругленной частью назад и посмотрите на плоскую грань, где появляются надписи, штифт слева от вас будет 1, а справа - 3. Таким образом, 1 будет для GND или заземление, 2 - данные и 3 - напряжение питания.

Здесь мы должны сказать, что ценности, которые вы должны знать:

  • Контакт 1: вы должны подключить его к контакту GND Arduino, то есть к 0v.
  • Контакт 2: этот вывод представляет собой DQ или данные, тот, который будет отправлять температуру, измеренную датчиком, в Arduino через определенный протокол, известный как 1-Wire, и для которого потребуется специальная библиотека и функции для Arduino IDE. Это позволит использовать только один вывод Arduino для подключения нескольких датчиков по этому протоколу ...
  • Контакт 3: он может питаться от 3 до 5,5 В, поэтому вы можете подключить его к выходу 5 В Arduino.

DS18B20 технические характеристики и лист данных

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

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

Но, несмотря на причуды, вот несколько основные технические данные:

  • Диапазон температур: От -55 до 125 ° C, поэтому он может измерять как в газе, так и в жидкости при очень низких и высоких температурах.
  • Ошибки: DS18B20 чувствителен к внешнему шуму или помехам, которые могут давать ошибочные значения в измерениях. Допустимая погрешность составляет плюс минус 2ºC, хотя при температурах от -10ºC до 85ºC, то есть когда мы не приближаемся к предельным значениям, она может составлять всего полградуса.
  • Разрешение: Вы можете работать с несколькими разрешениями или минимальными вариациями, которые вы можете обнаружить с помощью аналоговых выводов Arduino. Поддерживает 9, 10, 11 и 12 бит (по умолчанию). То есть он может измерять от половины до половины градуса, от четверти до четверти градуса, от 0,125 до 0,125ºC или от 0,0625ºC соответственно. Вы можете изменить это программирование с помощью программного кода.
  • Напряжение питания: От 3 до 5,5 В
  • Цена : От 1 до 3 евро

Интеграция с Arduino

Схема подключения Arduino - ds18b20

Хотя есть различные способы его подключения, наиболее подходящим является тот, который вы видите на этой диаграмме. Это довольно просто, с контактом GND в соответствующем соединении платы Arduino, с тем же источником питания, а затем с данными для аналога Arduino, который вы выбрали в своем программном коде в Arduino IDE. Но также хорошо установить подтягивающий резистор 4,7 кОм (если расстояние до кабеля датчика датчика больше, сопротивление должно быть ниже, например, для 5 м 3,3 кОм, для 10 из 2,2, XNUMX кОм,…) для вывода данных и, таким образом, всегда держите его на высоком уровне.

Для программирование в Arduino IDE и его хорошая интеграция с DS18B20 и этим конкретным протоколом, рекомендуется загрузить библиотеки Даллас Температура y -Wire из окружающей среды. И базовый код, это может быть что-то вроде этого примера, который я показываю:

#include <OneWire.h>
#include <DallasTemperature.h>

// Pin donde se conecta el bus 1-Wire (DQ)
const int pinDatosDQ = 9;

// Instancia a las clases OneWire y DallasTemperature
OneWire oneWireObjeto(pinDatosDQ);
DallasTemperature sensorDS18B20(&oneWireObjeto);
 
void setup() {
    // Iniciamos la comunicación serie a 9600 baudios
    Serial.begin(9600);
    // Iniciamos el bus 1-Wire del sensor
    sensorDS18B20.begin(); 
}
 
void loop() {
    // Indicamos que tome la temperatura
    Serial.println("Midiendo temperatura");
    sensorDS18B20.requestTemperatures();
 
    // Lee y muestra la temperatura (recuerda que puedes conectar más de uno con 1-wire)
    Serial.print("La temperatura del sensor 0 es de: ");
    Serial.print(sensorDS18B20.getTempCByIndex(0));
    Serial.println(" C");
    Serial.print("La temperatura del sensor x es de: ");
    Serial.print(sensorDS18B20.getTempCByIndex(1));
    Serial.println(" ºC");
    
    delay(1000); 
}

Больше информации - Руководство по программированию Arduino (бесплатный PDF)


Будьте первым, чтобы комментировать

Оставьте свой комментарий

Ваш электронный адрес не будет опубликован. Обязательные для заполнения поля помечены *

*

*

  1. Ответственный за данные: Мигель Анхель Гатон
  2. Назначение данных: контроль спама, управление комментариями.
  3. Легитимация: ваше согласие
  4. Передача данных: данные не будут переданы третьим лицам, кроме как по закону.
  5. Хранение данных: база данных, размещенная в Occentus Networks (ЕС)
  6. Права: в любое время вы можете ограничить, восстановить и удалить свою информацию.