FAÇA UM VERSÁTIL TERMOSTATO COM DS18B20 E PIC 16F628A – VERSÃO 7 SEGUIMENTOS (REF143)

Gostaria de construir um termostato eletrônico, que possa ser usado tanto em aquecimento como em resfriamento, sem alterar o circuito?

A maioria dos termostato são específicos na sua função: ou são para aquecimento ou são para resfriamento. A proposta deste artigo é usar um único circuito, que possa ser programado para qualquer uma das necessidades mencionadas. Veja o circuito abaixo:

Fazendo uso de um DS18B20 como sensor de temperatura, um PIC 16F628a e 4 display de 7 seguimentos (anodo ou catodo comum), mais alguns componentes comuns, podemos conseguir o objetivo proposto.
O sensor de temperatura DS18B20 da Maxim, opera com comunicação 1-Wire, ou seja, usa apenas um fio e o gnd para enviar/receber dados.
Cabe ao microcontrolador controlar todo o tráfego de informações entre eles. Poderá obter mais informações deste interessante componente estudando o seu datasheet.
Após a carga do firmware no PIC e antes de usar o circuito, devemos programar a atuação desejada. Para isto, basta apertar momentaneamente o botão dactilar nomeado de ‘PROG’ para entrar em modo de programação. Neste momento, o display mostra brevemente a letra ‘P’ e em seguida, passa a apresentar o valor da histerese desejada. Esta pode ser positiva quando desejamos trabalhar com aquecimento, ou negativa, quando o objetivo é acionar compressores frigoríficos em sua saída. Ainda em modo de programação, apertando o botão ‘FUNC’ e mantendo-o apertado, iremos ver a temperatura que deverá ligar a saída, podendo ser alterada por apertar o botão ‘UP’ ou ‘DOWN’. Ao soltar o botão ‘FUNC’ voltará a apresentar no display o valor da histerese. Esta poderá ser alterada também usando os botões ‘UP’ e ‘DOWN’.
Vamos supor que queiramos controlar a temperatura de uma chocadeira de ovos. Ajustaremos a histerese para 1 ou 2 graus positivos (aquecimento) e a temperatura que deverá ligar em 40°C. Se a histerese for 1, então irá desligar com 41°C, e 42°C se for 2. Religará novamente quando a temperatura cair para 40°C.
Ainda outro exemplo. Talvez queiramos ligar um motor de um freezer com -15 °C ou menos. Ajustamos a histerese para 1 ou 2 graus negativos (resfriamento) e a temperatura em -15°C. Se a histerese for -1, então irá desligar com -16°C, e -17°C se for -2. Religará novamente quando a temperatura for igual a – 15°C.
Apesar da leitura apresentar uma casa após a vírgula, a comparação é feita apenas com graus inteiros, desprezando a parte fracionaria.
Deverá ser previsto uma fonte de alimentação de 5 volts para o PIC e de 12 volts para o relé de saída. Esta poderá ser feita com um pequeno transformador de 110/220 para 12 volts, e uma ponte retificadora, capacitores eletrolíticos de filtro, bem como um regulador de tensão do tipo 7805.
É possível usar display de 7 seguimento de cátodo comum, desde que use o Hex apropriado ou altere o arquivo ‘c’ e recompile para obter o novo hex.
Obs. Esta montagem é apenas didática, sendo testada apenas em placa de protoboard, estando sujeita a bugs ainda não observados. Estão sendo fornecidos os arquivos que poderão ser alterados conforme a necessidade do hobista.

Segue pasta com os arquivos “C” (CCS Compiler V3.200) e Hex para versão cátodo e ânodo comum (revisada em 13/04/2017):

TERMOSTATO_DS18B20_V2

Manuais:
DS18B20
PIC16F628A

Curiosidades:
Como está a saúde da sua gengiva?
Por que o mar é salgado?
Seja grato pela chuva
Coleta da água da chuva — métodos antigos e modernos
Como é viver acima das nuvens
O delicioso café de Kona
Como as cores afetam você?
Quem criou as leis que governam o Universo?
Quando o Sol ficou vermelho
Obras-primas “pintadas” com pedras
‘Passar pelo buraco da agulha’
Kamchatka — um paraíso russo no pacífico
Como surgiu a moderna indústria do diamante
Os desastres naturais estão mais freqüentes?

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!!!

17 comments on “FAÇA UM VERSÁTIL TERMOSTATO COM DS18B20 E PIC 16F628A – VERSÃO 7 SEGUIMENTOS (REF143)

  1. Descupe Larios, eu não soube expressar direito.
    Eu quis dizer que (varrer)seria caso mais de uma maq solicitasse a manutençao, apareceria no display o N° da maq solicitante depois a 2 3 ou quantas fossem solicitadas mostrando em sequencia, e o beep seria para alertar que a uma solicitação no display

  2. Olá Larios, voce esta de parabens pela otima qualidade do conteudo do site, ja emulei montei alguns projetos que funcionaram a contento,
    Gostaria da sua ajuda ou dos participantes mais experientes em um projeto similiar ao atendente de salas, ou seja um chamador de maquinas para manutenção.
    Quando a maquina falhar o operador aperta um botão e via rs485 ou 232, envia o numero da maquina em um display que com bip varre o display mostrando qual maquina ou maquias chamou,agradeço quem ajudar e de antemão obrigado

    1. olá MKleber! muito obrigado por seu comentário apreciativo e positivo quanto a este blog. Creio que o chama_atendente_escolar pode ser usado como chama_manutenção. Talvez possa incrementar o código com alguma funcionalidade extra. Eu não entendi a parte do ‘ com bip varre o display’???? Talvez alguém tenha alguma sugestão com microcontroladores ou até com PC!!!!
      Cláudio

  3. BOA NOITE LARIOS BOM EU FIZ O ESQUEMA NO PROTEUS COM OS MESMOS COMPONENTES MAS INFELIZMENTE NAO FAZ A LEITURA. BOM GOSTARIA MUITO DE FAZER ESSE SENSOR E VI QUE A ENTRADA DO MICROCONTROLADOR É A MSM DO OSC NAO SEI SE É ESSE O PROBLEMA BOM DE QUALQUER FORMA VC PODERIA ME ESCLARECER MELHOR? TO FAZENDO COM O CATODO QUE NAO MUDA NÉ SE VC PODER ME MANDA INFORMAÇOES NO E-MAIL. daniel.marinho81@hotmail.com… Grato

    1. Olá Daniel! Simular com Proteus não é comigo. Faço os testes no simulador do Mplab e com protoboard montado.
      Cláudio

  4. :mrgreen: Ok claudio, toda e qualquer ajuda para conhecimento e bem vinda, obrigado pela ajuda e por explicar com detalhes o porque do “C”, vou dar as minhas primeiras caminhadas em “C”, a minha dificuldade e saber o que pode e não pode nesta linguagem, mais vamos lá, vai que eu consigo ne, valeu mesmo ai, um abraço.

  5. 😛 Opa claudio, e as versões com assembler, em c nadinha de nada em mexer aqui em, tem como vc fazer uma versão em assembler de exemplo, valeu..

    1. Olá Foxconn! Até uns tempos atrás eu torcia o nariz só de pensar em programar em “C”. Pensei comigo: Se é tão ruim assim quanto acho, porque é ele tão usado? Então, meio a contragosto resolvi fazer o primeiro programa, que como sempre, deu vários problemas e se negava como um ‘ burrinho empacado’, a funcionar. Gastei uma semana para conseguir compilar sem erros (aperte um botão , pisca um led)! Insisti, com outro programa. Gastei 1 hora apenas. O próximo programa gastei 30 minutos (coisa bem simples) e o tempo foi diminuindo. Resolvi fazer um projetinho em “C”, que em ‘Assembly’, com certeza, gastaria por volta de 20 a 30 dias. Fiz em apenas 3 dias. Fiquei animado! Comecei a entender porque tantos usam “C” e torcem o nariz para o ‘Assembly’. Farei o seguinte: O compilador também gera um arquivo em ‘Assembly’ usado para analisar como o programa foi montado. Poderei enviar a você para que possa estudar e aproveitar rotinas.
      Cláudio

Comments are closed.

Back To Top