Gostaria de medir temperatura de uma forma bem fácil, com um pic e um sensor DS18B20? Com apenas alguns componentes?
Esta montagem usa um circuito integrado dedicado para medir temperatura: o DS18B20, da anterior Dallas (atual Maxim). Veja o esquema abaixo:
Foi usado a versão de apenas 3 pinos, com encapsulamento TO-92 (formato identico de um BC548). Para funcionar no modo normal, precisa receber alimentação no pino +Vcc entre 3 a 5,5 volts. Outro pino extremo é ligado ao gnd. Pode ser usado para obter medidas de temperatura na faixa de -55°C a 125°C, com precisão de +- 0,5°C entre -10°c e +85°C.
Como é lida a informação de temperatura?
O pino do meio, chamado de ‘DQ’ recebe e envia dados através do protocolo ‘1-Wire’, para o microcontrolador. Todas as operações são feitas em modo ‘Slave’ ou seja, o microcontrolador coordena todo o processo de medição. Seu conversor analógico/digital pode ser programado de 9 a 12 bits de resolução. Quando adquirimos um DS18B20, ele já vem programado para 12 bits. O tempo médio de uma conversão em 12 bits é de 750 ms. Com resoluções menores temos tempos menores proporcionalmente. Vários destes sensores podem ser ligado a este ‘único fio’ de comunicação, visto que cada peça tem um número serial exclusivo de 64 bits. Apenas aquele que tiver o número serial igual ao enviado pelo barramento é que irá responder aos comandos do microcontrolador.
Para comunicar com o DS18B20, o microcontrolador precisa dar um ‘reset’, seguido pelo ‘rom command’ e pelo ‘function commands’. Esta receita tem que ser repetida para usar outros ‘function commands’. O programa ‘C’ aqui proposto usa apenas poucos ‘function commands’, em especial, o de nova conversão de temperatura (44h) e o de leitura da temperatura (BEh). Lendo o datasheet veremos que tem mais comandos para seleção da rom e de funções adicionais como programar uma temperatura de alarme, ler o modo da alimentação quanto a ser em modo parasita ou com +Vcc, ler o número serial do DS18B20 (usado apenas com um só DS18B20 no barramento), enviar um comando para todos os DS’s no barramentos, etc.
A apresentação do resultado da leitura é feita em 4 dígitos, sendo estes feitos com display de 7 seguimentos do tipo anodo comum. Quando a temperatura é negativa, aparecerá o traço (-) no digito mais a esquerda. A rotina para conversão hex para decimal da parte inteira é feita em 8 bits, pelo método do decremento do valor lido e incremento dos registradores de resultado, conforme seja unidade, dezena ou centena. Já na parte fracionaria (pós virgula), foi usado uma tabela para converter os 4 bits, de forma bem simples (nada de matemática!).
A alimentação poderá provir de uma fonte de 9 a 12 volts, usando um regulador 7805 para reduzir para os 5 volts necessários, ou uma fonte de carga de celular, já com 5 volts de saída.
Obs. Esta montagem é didática, sendo testada apenas em placa de protoboard, sujeita a bug’s ainda não detectados com o uso.
Esta sendo fornecido os arquivos que poderão ser alterados conforme a necessidade dos hobistas.
Segue abaixo pasta com arquivos “C” (CCS Compiler v 3.200) e Hex para versão anodo comum ( antiga, de 24/03/2014):
Segue adicionalmente, pasta contendo arquivos para montar o projeto usando catodo comum (antiga, de 24/03/2014) :
Segue pasta com arquivos “C” (CCS Compiler v 3.200) e Hex para anodo ou catodo comum, sendo uma versão com rotinas melhoradas, de 13/04/2014:
Manuais:
DS18B20
PIC16F628A
Curiosidades:
Seu filho está com febre?
São Petersburgo — a “janela para a Europa”
A arte e a ciência da previsão do tempo
Quantos sentidos temos realmente?
Da árvore para a garrafa — a história da cortiça
Ação refrescante natural
Temperatura em carros estacionados
Temperatura do Sol
Os alimentos transgênicos são seguros?
Como uma música se torna um sucesso?
Enxaqueca — o que você pode fazer?
Como estimular o desejo de aprender
Como ajudar pessoas com transtornos de ansiedades
Dicas sobre congelamento de alimentos
Outros assuntos:
Um site para você
Quando seu casamento não é o que você esperava
Como resolver diferenças no casamento
Como recuperar a confiança no casamento
Como controlar o estresse
Quando um dos cônjuges tem necessidades especiais
Aprenda a perdoar
Como acabar com a tática do silêncio
Como criar filhos responsáveis
Como administrar o seu dinheiro
Ensine valores morais a seus filhos
Como posso ter ânimo para exercitar
Como posso controlar meu peso?
Adolescentes- O que fazer se estou sofrendo bullying?
Como evitar ferir com palavras?
Como tratar seu cônjuge com respeito?
Até o próximo artigo!!!
Sr. mais como eu faz para usar display de 7 seguimentos
TERMÔMETRO DIGITAL COM PIC 16F676
Olá Paulo!
Precisa mudar o programa . Quando eu tiver uma folga vou ver isto.
Claudio
Sr.. Como em minha cidade não encontro “DS18B20” no projeto: FAÇA UM TERMÔMETRO DIGITAL – COM PIC16F628A E SENSOR DS18B20 (VERSÃO DISPLAY DE 7 SEGUIMENTOS)
Como posso usar LM35 agradeço Paulo Ferreira
Olá Paulo!
O PIC 16F628A não dispõe de conversor analógico/digital, portanto fica mais difícil a implementação tendo que se contruir um a base de software e amplificador operacional interno (delta-sigma). Mas poderá usar o pic 16f676 que facilita as coisas, conforme o artigo FAÇA UM TERMÔMETRO DIGITAL COM PIC 16F676.
Cláudio
Claudio pesquisei o data shild desse display , mais so tem de 2 digito no modelo postado KW2-561 AOA.