Sensor de Temperatura DS18B20 no Arduino

DS18B20 é um sensor de temperatura digital que trabalha com o protocolo 1-Wire da Maxim IC. Mostra a temperatura em graus Celsius de -55 a 125, com precisão de 9 a 12 bits. Cada sensor tem um número de série de 64 bits gravado nele - permite um número enorme de sensores para ser usado em um barramento de dados.

Datasheet

 Características:

      ·         A interface 1-Wire® requer apenas um pino para comunicação.
·    Cada dispositivo tem um código de série de 64 bits exclusivo armazenado em uma ROM onboard
·         A capacidade Multidrop simplifica as aplicações de detecção de temperatura distribuída
·         Pode ser alimentado a partir da linha de dados (Modo parasita / Parasite mode).
·         Tensão de entrada 3.0V a 5.5V
·         Converte a temperatura em palavra digital de 12 bits em 750 ms (máx.)
·         Configurações de alarme não volátil definidas pelo usuário (NV)
·         O comando de busca de alarmes identifica e endereça dispositivos cuja temperatura está fora dos limites programados (condição de alarme de temperatura)

Materiais necessários

1.       Arduino – De sua preferência, mas utilizamos o Uno no tutorial;
2.       DS18B20;
3.       Resistor de 4.7 kΩ;
4.       Placa de ensaio (matriz de contato / protoboard /breadboard );
5.       Fios / Jumpers;
6.       Bibliotecas Onewire e DallasTemperaure;

Bibliotecas

Para instalar as bibliotecas, basta abrir a IDE do Arduino, e ir em:
·         Sketch
·         Incluir Biblioteca
·         Gerenciar Bibliotecas
·         Buscar por Onewire e DallasTemperaure;
·         Clicar em cima e depois instalar

Para este tutorial utilizei

* OneWire by Jim Studt, Tom Pollard, Robin James …  Versão 2.3.3
Access 1-wire temperature sensors, memory and other chíps.
* DalIasTemperature by Miles Burton , Tim Newsome…  Versão 3.7.6
Arduino Library for Oallas Temperature ICs Supports DS18B20, DS18S20, DS1822, DS1820

Caso não achar ou der algum erro segue abaixo os links para download e fazer a instalação manual

OneWire

DallasTemperaure


Circuito




Com vários DS18B20 em série:



Caso queira testar o modo parasita:




Código

//********************************************************************************
// Bibliotecas necessarias 
#include <OneWire.h>
#include <DallasTemperature.h>

// definindo o sensor no pino 2
// OneWire nome(pino) 
OneWire ds_1(2);  

//DallasTemperature nome_da_variavel(&nome);
//esse comando procura os pinos em seu endereco e solicitar temperatura
DallasTemperature sensor_1(&ds_1);

// variavel para armazenamento da temperatura entregue pelo sensor
float temperatura;

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

void setup( )
{
  //inicia a porta serial
  Serial.begin(9600);
  
  //inicia a biblioteca 
  sensor_1.begin();

}
//********************************************************************************

void loop( )
{

//*********************************************
//  Pega os valores de Sensor e joga na serial
//*********************************************  
  
  // manda um comando para o sensor para ler a temperatura 
  sensor_1.requestTemperatures();

  //texto para serial
  Serial.println("temperatura var");

  // lê a temperatura do sensor e joga na serial - pressione Ctrl + Shift + M para visualizar
  Serial.println(sensor_1.getTempCByIndex(0));

  // lê a temperatura do sensor e joga na variavel 
  //temperatura = (sensor_1.getTempCByIndex(0));

  // conversão para fahrenheit
  // float fahrenheit = (temperatura*1.8)+32;

  // conversão para kelvin
  // float kelvin = (temperatura+273);
  
  //adicionar atraso de 1 segundos para melhor leitura do sensor
  delay(1000);

}

// FIM
//********************************************************************************





Perguntas, Duvidas ?
Comente abaixo,




Autor: Guilherme Zucco
Conheça nosso site zuch.co




Comentários

Postagens mais visitadas deste blog

Sensor de Temperatura e Umidade do Ar DHT22 ( AM2302 ) no Arduino

Sensor de Temperatura LM35 no Arduino - sem biblioteca

Sensor de Temperatura LM35 no Arduino - com biblioteca