Existem vários sensores de umidade e temperatura disponíveis, como o LM35. Alguns embutidos em módulos para uso específico com o Arduino. Mas geralmente, eles devem medir a temperatura seca, ou seja, a temperatura do ar. Mas existe um modelo concreto que funciona para mede a temperatura em líquidos e é chamado DS18B20. Uma peculiaridade que pode ser útil para alguns de seus projetos DIY mais exóticos, onde você também brinca com algum tipo de líquido para o qual precisa saber este parâmetro.
Na verdade, o DS18B20 não mede apenas a temperatura dentro de líquidos, mas pode ser muito útil para medir a temperatura em ambientes úmidos e também sob algum líquido. Portanto, você também pode usá-lo para medir a temperatura do ar se o ambiente estiver muito carregado de umidade. E como eu disse, a possibilidade de mergulhar em um líquido para medir sua temperatura é uma das características que o torna incrivelmente prático.
O que é DS18B20?
Bem, acho que já ficou bem claro, é um sensor eletrônico capaz de medir a temperatura de meio gasoso ou líquido. Além disso, existem encapsulamento ou embalagem diferente do DS18B20, como o básico que você vê na imagem principal, ou também pode ser integrado em alguns PCBs, sondas submersíveis, etc. Para o seu projeto você deve escolher o formato mais adequado de acordo com o que deseja.
Por exemplo, além do típico TO-92, existe também o microSOP. Possivelmente para integrar com o Arduino o mais apropriado é o TO-92, já que com seus três pinos é muito fácil inserir na placa de ensaio para conexão.
Pinagem
El Pinagem DS18B20 é fácil de identificar. Por exemplo, tomando como referência o pacote Dallas TO-92, que é um dos mais populares, você pode ver que ele possui três pinos. Se você colocar de frente, ou seja, com a seção arredondada para trás e olhando para a face plana onde aparecem as inscrições, o pino da sua esquerda é 1 e o da sua direita é 3. Portanto, 1 seria para GND ou terra, 2 é para dados e 3 para tensão de alimentação.
Aqui temos que dizer que, valores que você deve saber:
- Pino 1: você deve conectá-lo ao pino GND do Arduino, ou seja, a 0v.
- Pino 2: este pino é DQ ou data, aquele que enviará as temperaturas medidas pelo sensor para o Arduino através de um protocolo particular conhecido como 1-Wire e que precisará de uma biblioteca especial e funções para o IDE do Arduino. Isso permitirá usar apenas um pino Arduino para conectar vários sensores com este protocolo ...
- Pino 3: pode ser alimentado de 3 a 5,5 V, para que você possa conectá-lo à saída de 5 V do Arduino.
Características técnicas e folha de dados do DS18B20
Como sempre, é interessante saber as características técnicas do sensor para saber como funciona, para não o danificar, e sobretudo para que saibamos onde estão os seus limites de medição, pois se os valores que queremos medir não estão entre eles não nos ajudará nem a ti deve procurar outra alternativa.
Para fazer isso, é melhor baixar um folha de dados do fabricante, como aquele em Dallas que você pode ver aqui. Lá você encontrará todas as informações necessárias. E lembre-se que embora todos os DS18B20 possam ser semelhantes, dependendo do fabricante ou embalagem você pode encontrar algumas mudanças ...
Mas, independentemente das peculiaridades, aqui estão algumas dados técnicos básicos:
- Faixa de temperatura: -55 a 125ºC, portanto, pode medir em gás ou líquido a temperaturas muito baixas e também altas.
- Erros: o DS18B20 é sensível a ruídos externos ou distúrbios que podem fornecer valores errôneos nas medições. A margem de erro é de mais 2ºC negativos, embora em temperaturas entre -10ºC e 85ºC, ou seja, quando não estamos próximos dos limites, pode ser apenas meio grau.
- Resolução: Você pode trabalhar com várias resoluções ou variações mínimas que você pode detectar com os pinos analógicos do Arduino. Suporta 9 bits, 10 bits, 11 bits e 12 bits (padrão). Ou seja, pode medir de meio a meio grau, de um quarto a um quarto de grau, de 0,125 a 0,125ºC, ou de 0,0625ºC respectivamente. Você pode alterar essa programação por meio do código de programação.
- Tensão de alimentação: 3 a 5,5 V
- Preço: 1 a 3 €
Integração com Arduino
Apesar de haver várias maneiras de conectá-lo, o mais adequado é o que você vê neste diagrama. É bem simples, com o pino GND na conexão correspondente da placa Arduino, a fonte de alimentação é a mesma e depois os dados para o analógico do Arduino que você escolheu em seu código de programação no IDE do Arduino. Mas também é bom definir um resistor pull-up de 4,7k (se a distância do cabo da sonda do sensor for maior, a resistência deve ser menor, por exemplo, para 5m de 3,3k, para 10 de 2,2, XNUMXk, ...) para o pino de dados e, portanto, mantê-lo sempre alto.
Para a programação em Arduino IDE e sua boa integração com o DS18B20 e aquele protocolo muito particular, é recomendado que você baixe as bibliotecas Temperatura de Dallas y OneWire do meio ambiente. E o código base, pode ser algo como este exemplo que mostro:
#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); }
Mais informações - Manual de programação do Arduino (PDF grátis)