Básico - Projeto 83

Sensor de temperatura DS18B20 com display

Objetivo

Neste projeto, vamos demonstrar o uso do sensor de temperatura DS18B20 controlado pelo Arduino para monitorar a temperatura ambiente. No projeto, o valor da temperatura será exibido em um display LCD, junto com os valores máximo e mínimo registrados desde que o microcontrolador foi ligado ou reiniciado. Também adicionaremos um  botão (push button) que quando acionado alterna a exibição de Celsius para Fahrenheit.

Observações:

1) Utilizamos o sensor DS18B20 como controle de temperatura ambiente.

2) Este projeto foi desenvolvido para um display LCD com controlador HD44780 em conjunto com o módulo serial I2C (soldado ou não).

3) Se você não possui um módulo I2C para display LCD, poderá adaptar o projeto para o display LCD sem o adaptador. Veja como montar o display no projeto Projeto 38 - Controlando um display LCD (instalação e comandos básicos).

Sensor DS18B20 - O DS18B20 é um sensor de temperatura capaz de efetuar leituras entre -55ºC e 125ºC com precisão de até ±0,5 ºC. Cada sensor possui um endereço físico, possibilitando que se utilize vários sensores em uma única porta do microcontrolador e mesmo assim, efetuar a leitura individualmente. Ele portanto, pode ler a temperatura, interpreta-la e enviar a informação do valor de temperatura em graus Celsius para o microcontrolador usando um barramento de apenas um fio (protocolo de comunicação OneWire ou 1-wire ). Em geral, os sensores de temperatura trabalham de forma diferente, pois a maioria deles são analógicos e fornecem um valor de tensão ou de corrente que precisa ser interpretado pelo microcontrolador.

Endereço individual e fixo

Cada sensor de temperatura DS18B20 possui um endereço serial de 64 bits próprio, possibilitando a montagem com vários sensores em uma única porta digital do microcontrolador e obter valores de temperatura para cada sensor separadamente. Veremos na prática este recurso em projetos futuros.

Encapsulamento

a) O sensor de temperatura DS18B20 é fornecido com o encapsulamento TO-92, o mesmo utilizado no sensor LM35.

b) O sensor DS18B20 também é produzido com proteção à prova de água (cápsula metálica) com fios. São muito comuns no controle de temperatura de aquários, piscinas e banheiras aquecidas.

Sensor DS18B20 à prova d'água

Outros Recursos

Estes recursos não serão utilizados nesse tutorial:

a) Modo parasita: pode ser utilizado apenas 2 terminais para ligar o sensor.

b) Alarme programável de temperatura alta e baixa.

c) Resolução configurável para 9, 10, 11 ou 12 bits

Sensores de temperatura são dispositivos que identificam a temperatura de um determinado equipamento, processo ou do próprio ambiente, podendo ser utilizados no monitoramento e controle para que se mantenham as condições adequadas de funcionamento e/ou conforto térmico. Veja abaixo altguns tutoriais que apresentamos medições de temperatura com diferentes sensores:

Projeto 39 - Display LCD como mostrador de temperatura (sensor LM35)

Projeto 40 - Sensor de temperatura e umidade DHT11 com display LCD

Projeto 41 - Usando o sensor de temperatura termistor NTC 10K com LCD

Projeto 51 - Relógio digital com temperatura - RTC DS3231 Arduino    

Aplicação

Para fins didáticos e projetos onde é necessária a medição de temperatura do ambiente e monitoramento de máquinas, equipamento, processos e sistemas de controle.

Componentes necessários

Referência

Componente

Quantidade

Imagem

Observação

Protoboard Protoboard 830 pontos 1 Resultado de imagem para protoboard 830v

No mínimo utilizar protoboard com 830 pontos

Jumpers Kit cabos ligação macho / macho 1

 
 

 

Display LCD

Display LCD 16X2 com pinos soldados

1 DISPLAY LCD 16X2

LCD que utilize o controlador HD44780 (veja na descrição ou datasheet do componente)

O display poderá ser de qualquer cor (fundo verde, azul ou vermelho)

Módulo I2C para display LCD

Módulo I2C com CI PCF8574

(opcional)

1 Módulo I2C display LCD Arduino

O módulo I2C poderá vir separado ou já soldado no display LCD

(datasheet)

Se você não possui um módulo I2C para display LCD, poderá adaptar o projeto para o display LCD sem o adaptador.

Sensor de Temperatura DS18B20

Sensor de Temperatura DS18B20

(encapsulamento TO-92 ou a prova de água)

1

 

Tensão de operação: 3 a 5,5V

Faixa de medição de temperatura: -55 ºC a +125 ºC

Precisão: +/- 0,5 ºC entre -10 ºC e +85 ºC

Ponta de aço inoxidável (6 x 50mm), com cabo de 108 cm de comprimento

datasheet

Resistor Resistor 1

1 Resistor de 4,7KΩ a 10KΩ

Arduino UNO R3 Arduino UNO 1

Você poderá utilizar uma placa Arduino UNO original ou similar

Montagem do Circuito

Conecte os componentes no Protoboard como mostra a figura abaixo. Verifique cuidadosamente os cabos de ligação antes de ligar seu Arduino. Lembre-se que o Arduino deve estar totalmente desconectado da força enquanto você monta o circuito.


Atenção

1) Neste projeto vamos utilizar um display LCD 16x2 com controlador HD44780, que se adapta aos mais diversos projetos com vários modelos de placas e microcontroladores. Este display possui 16 colunas por 2 linhas com backlight (luz de fundo) verde, azul ou vermelha e tem 16 pinos para a conexão. Atenção: Utilize um display LCD com os pinos soldados.

DISPLAY LCD 16X2

3. Para a montagem do display com adaptador, entenda a estrutura do módulo I2C para display LCD 16x2 / 20X4:

Módulo I2C - Detalhes

3.1. Na lateral do adaptador encontramos 4 pinos, sendo: 2 pinos para alimentação (Vcc e GND) e 2 pinos para conexão com a interface I2C (SDA e SCL) que deverão estar conectados nos pinos analógicos A4 (SDA) e A5 (SCL) do Arduino Uno ou nos pinos A20 (SDA) e A21 (SCL) do Arduino Mega 2560. Veja a tabela abaixo com onde temos as principais placas Arduino e suas conexões com o I2C.

3.2. Para controlar o contraste do display, utilize o potenciômetro de ajuste de contraste. O jumper lateral, quando utilizado, permite que a luz do fundo (backlight) seja controlada pelo programa ou permaneça apagada.

 

3.3. A seleção de endereço do adaptador I2C para display LCD, na maioria dos módulos fornecidos no mercado já vêm configurados com o com o endereço 0x27. Se você não sabe qual endereço que o seu módulo I2C e/ou módulo RTC DS3231 está configurado, baixe o seguinte "sketch":

 

3.3.1 Após instalar e rodar o sketch acima, abra o monitor serial que mostrará qual é o endereço que o seu módulo I2C e o módulo RTC DS3231 está configurado:

 

3.3.1.1 Nos casos em que módulo I2C estiver configurado com uma faixa de endereços diferente do endereço 0X27 altere a alinha de programação -> LiquidCrystal_I2C lcd(0x27,2,1,0,4,5,6,7,3, POSITIVE); com o endereço correto.

3.5. Para saber mais sobre a montagem e utilização de display LCD com módulo I2C leia: Projeto 48 - Como controlar um display LCD com o módulo I2C.

4) Monte o botão (push button) sem o resistor, pois através da programação vamos habilitar o resistor de pull up interno do Arduino. Desta forma, quando o botão estiver pressionado, o Arduino retornará "LOW" ou "0". Para saber mais sobre botões, assista o vídeo Arduino: Botão e Resistor de Pull Up Interno ou leia o artigo: Como usar push button com Arduino (programação).