13 - Aplicação : sensor de temperatura DS18B20

O sensor DS18B20 utiliza o protocolo de comunicação 1-Wire. Este protocolo permite a conexão de inúmeros dispositivos numa mesma rede, utilizando apenas 1 fio para a troca de dados.

O sensor DS18B20 fornece temperaturas entre -55°C e 125°C com uma precisão de ±0.5°C no intervalo de -10°C to +85°C. Vide datasheet. Ele é identificado na rede 1-Wire a partir de um código único de 64 bits.

Na figura abaixo são observados os seus pinos no encapsulamento TO92. Nota-se que o pino GND corresponde ao terra, VDD a 5V e no pino DQ é fornecida a informação de temperatura.


Um microcontrolador pode ler informações deste sensor utilizando um único fio e resistor de pull-up, sendo normalmente utilizado um resistor de 4k7 ohms.

No circuito abaixo observa-se a conexão do sensor com uma placa arduino, sendo que foi escolhida a porta digital 2 do arduino para a leitura do sensor.


Para este circuito, é possível monitorar as temperaturas amostradas pelo sensor utilizando o código arduino abaixo. As bibliotecas OneWire e DallasTemperature podem ser obtidas aqui. Basta descompactar as bibliotecas no diretório "libraries" do ambiente arduino.


#include "OneWire.h"
#include "DallasTemperature.h"


#define ONE_WIRE_BUS 2       // sensor conectado na porta digital 2


OneWire oneWire(ONE_WIRE_BUS);
DallasTemperature sensors(&oneWire);

void setup() {
  Serial.begin(9600);
  sensors.begin();
}

void loop() {
  sensors.requestTemperatures();

  Serial.print("Temperatura no sensor 1 : "); // pode haver mais
  Serial.println(sensors.getTempCByIndex(0)); // do que um sensor
}


Para verificar as temperaturas amostradas, basta pressionar a tecla "Serial Monitor" no ambiente de programação arduino e visualizar uma tela similar à figura abaixo:


Nenhum comentário:

Postar um comentário