FAÇA UM SIMPLES TERMOSTATO ELETRÔNICO COM UM PIC 16F676 (SENSOR LM35)

Gostaria de controlar de forma automática a temperatura de seu aquário? Ou ainda, de um aquecedor de café? Ou quem sabe, de uma chocadeira de ovos? Então, você vai querer saber mais…

Existem muitas maquinas que trabalham com termostato interno: geladeiras, freeser, cafeteiras de padaria, ar condicionado, fornos, aquários, etc. Muitos usam laminas de bimetal (ferro de passar roupa), outros usam a expansão dos gases para pressionar um interruptor (geladeira) e ainda os que usam a eletrônica para o controle. A vantagem dos termostatos eletrônicos está na possibilidade de visualizar a temperatura e as facilidades de calibração.
Neste projeto didático, estamos usando um microcontrolador PIC 16F676 e um sensor LM35 para ligar/desligar um relé de carga. Este relé poderá acionar inúmeras cargas, dependendo da necessidade do hobista.
Veja o esquema elétrico abaixo:

Em princípio, não difere muito do PIC_TERMOMETRO, exceto pelas chaves de controle e rele adicionado.
Ao ligar, aparecerá o seguinte no display:

| PIC_TERMOSTATO |
|LARIOS.TECNOL.WS|

E após alguns instantes, vai para tela de trabalho, como abaixo:

|TEMP= 30.4Cº ON |
|L= 28.4 D= 32.5 |

Onde, a primeira linha do LCD, indicará a temperatura atual do sensor e a situação do relé:  ligado ou desligado. Na segunda linha, a letra “L” indica a temperatura que irá ligar o relé e a letra “D”, a temperatura que irá desligar o relé. No pino 2 do PIC, foi colocado um botão para fazer incremento de temperatura (up) e no pino 3, o botão de decremento (down). Quando apertamos ‘up’ irá incrementar e apertando ‘down’ irá decrementar os dígitos (da função “L” =  ligar abaixo desta temperatura). Para ajustar a função “D” (desligar acima desta temperatura) , o botão ligado ao pino 4 (func) deverá ser acionado antes do botão, e mantê-lo pressionado, enquanto se aciona o botão ‘up’ ou ‘down’. O incremento na função “L” ocorrerá até o seu valor ser igual ao da função “D”. Depois, para de incrementar, mesmo com botão pressionado. Sempre o valor ajustado na função “L’ será menor ou igual ao valor ajustado na função “D”, nunca superior.
Os fios que ligam o sensor LM35 devem ser preferivelmente curtos para evitar interferências que possam gerar instabilidades na leitura. Foi colocado um filtro, com um resistor de 75 ohms em série com capacitor de 1 uF, conforme sugestão do datasheet do componente.
No ponto de teste PT1, poderá ser colocado um voltímetro de precisão para ler a temperatura para fins de calibração. A cada 10mVolts corresponderá a um grau centígrado. No ponto de teste PT2, deverá ser colocado também o voltímetro e ajustado no potenciômetro para obter 2,048 volts, em relação ao GND. Este potenciômetro, deverá ser preferencialmente do tipo ‘multivoltas’, o que facilitará em muito a calibração desta tensão.
As regulagens são salvas nas primeiras posições da EEprom interna do PIC. Assim, mesmo que acabe a energia, não será perdido este valores, sendo recuperados da EEprom, na ocasião da reinicialização.
O relé de carga tem bobina para 5 volts, sendo seus contatos para 10 a 15 amperes (dependendo da sua aplicação, poderá ser alterado).
A fonte de alimentação poderá ser feita com um pequeno transformador de 110/9 volts, retificadores, capacitores e um regulador 7805 para obter os ‘regulados’ 5 volts.

Abaixo temos a primeira sugestão de uso: Controlar a temperatura de um aquário !

Deverá ser usada as resistências apropriadas para aquário nesta aplicação e tomar todas as medidas de segurança e isolação de fios.
O LM35 deverá ser soldado a 3 fios flexíveis de comprimento suficiente para chegar a placa. Depois, este sensor, já com os fios ligados, deverá ser colocado em um pequeno tubo de ensaio (de vidro) e preenchido com cola resistente a água (silicone por exemplo). O tubo de ensaio, com o sensor em dentro, deverá ficar mergulhado dentro do aquário.

A próxima sugestão: Controlar a temperatura de uma chocadeira !

Poderá ser usado um conjunto de lâmpadas para prover o calor necessário ao ambiente dos ovos a serem chocados.
Deverá ser pesquisado qual é a temperatura ideal para esta aplicação, visto ser muito critica.

Uma sugestão final: Aquecedor de cafeteira

Também, deverá ser usado resistências ‘blindadas’, com aterramento em toda a estrutura metálica, visando a segurança do operador deste equipamento. O relé nesta função, deverá ser bem dimensionado, ou ainda, faze-lo acionar um ‘contator’ elétrico adicional.
Obs: Este material é publicado com objetivos didáticos. Poderá estar sujeito a bug’s ainda não detectados. Esta montagem foi realizada e testada apenas em protoboard.
Visto que está sendo fornecido os arquivos do programa, cada hobista poderá fazer as alterações que julgar necessário, em conformidade com as suas necessidades. Visto que algumas sugestões envolvem riscos de choque elétrico, cada montador assumirá seus próprios riscos de segurança.
Caso queira uma versão com display de 7 seguimentos, veja este link.

Clique abaixo para visualizar o arquivo ASM da primeira versão:
PIC_TERMOSTATO_ASM

Clique abaixo para visualizar o arquivo HEX da primeira versão:
PIC_TERMOSTATO_HEX

Poderá baixar estes arquivos com terminação ‘.asm’ e ‘.hex’, na pasta abaixo:
PIC_TERMOSTATO_V1_FILES

Em 08/02/2012 foi feita uma alteração, com aprimoramento na velocidade de incremento do ajuste inicial, em 3 etapas: lento, médio e rápido, mantendo-se simplesmente apertado o botão de ajuste. Adicionalmente, a frase ‘off’ foi substituída por ‘des’ e ‘on’ por ‘lig’ (padronizado para português).

Poderá visualizar o arquivo ASM desta segunda versão clicando abaixo:
PIC_TERMOSTATO_V2_ASM

Poderá visualizar o arquivo HEX da segunda versão clicando abaixo:
PIC_TERMOSTATO_V2_HEX

Poderá baixar os arquivos da versão 2, com terminação ‘.asm’ e ‘.hex’, clicando na pasta abaixo:
PIC_TERMOSTATO_V2_FILES

Segue abaixo, pasta para baixar, com versão 3 de 13/03/2014, com aprimoramentos citados acima, acrescentando mais estabilidade na leitura:
PIC_TERMOSTATO_V3

Segue a placa para circuito impresso, sendo gentileza do Agnaldo ‘Foxcom’ (dúvidas: agnaldofraga@hotmail.com):
TERMOMETRO 676 LCD PCB FOXCON

Em 21/03/2021 foi postado a versão 4, reescrita em linguagem “C” para CCS C Compiler:

PIC_TERMOSTATO_V4_ZIP

Manuais:
datasheet Pic16f676
LM35

Curiosidades:
A ventilação do cupinzeiro
A longa soneca dos ursos
Cuidado com alimentos
Fim do mundo – Do que as pessoas tem mais medo?

Outros assuntos:
Ensine seus filhos bons principios com atividades de colorir
Como posso ter ânimo para exercitar
Entrevista com um bioquímico
Como posso controlar meu peso?
Como reagir a um assédio sexual?
Como lidar com os sogros?
Converse com seus filhos sobre sexo
Desempenhem bem seu papel de pais
Como lidar com dívidas
Como parar de discutir com seu conjuge
Como sobreviver ao primeiro ano de casamento

Até o próximo artigo!!!

112 comments on “FAÇA UM SIMPLES TERMOSTATO ELETRÔNICO COM UM PIC 16F676 (SENSOR LM35)

  1. Olá Claudio!
    É possível ter uma saída PWM? por exemplo,numa temperatura de 38 a 38,5 ,graus, a saída “sofrer” uma variação de 0v a 5v ou seja, 38,5 = 0v 38= 5v. Seria de muita utilidade no acerto de temperatura em uma incubadora,chocadeira.

    Att.
    Costa Eusébio.

  2. OLA CLAUDIO TUDO BEM COM VOCE? EU GOSTARIA DE SABER SE TEM JEITOS DE SUBSTITUIR OS BOTÕES DE INCREMENTO E DECREMENTO POR UM POTENCIÔMETRO, SENDO QUE EU QUERO FAZER UNS TESTES SEM O DISPLAY,USANDO UM OUTRO TERMÔMETRO EXTERNO.(TESTES EM REFRIGERAÇÃO) CONTO COM SUA AJUDA OBRIGADO.

    1. Olá Yuiri!
      Esta versão abrange de 0 a 150 graus centígrados. Não serve para refrigeração. Qual seria a faixa de trabalho que pretende Usar?
      Cláudio

  3. Olá Claudio!
    Esse projeto veio de encontro com minha necessidade. Confeccionei a placa do Agnaldo, porém os componentes estampados na mesma são diferentes do esquema do seu blog, como tinha feito a placa comprei os componentes da mesma mas ao ligar não aparece nada, apenas quadriculado na linha de baixo, usei resistores de 10k no lugar dos indicados por xx na placa, fiz os 5 jumpers e nada, fiz apenas os dois que aparece no 3D do arq. LYT e nada, nem o LED acende… O que fiz errado, devo abandonar a placa e seguir o esquema???

    1. Olá Márcio!
      Antes de mais nada, você carregou o arquivo hex no pic? Pois ele vem virgem ao adquirir em uma loja. Se não for esse o caso, talvez o Aguinaldo tenha alguma dica sobre essas diferenças que você encontrou.
      Cláudio

      1. Sim Claudio!
        Gravei o PIC sim, já entrei em contato com o Agnaldo ele já respondeu agora mandei outro e estou no aguardo. Obrigado

        1. Olá Claudio!
          Este projeto está me deixando louco kkk
          Eu examinei a placa disponibilizada pelo Agnaldo e a pinagem dos pinos do lcd não batem em nada com o seu esquema, os pinos do pic não chegam nos pinos do lcd que deveriam.
          Fiz um conector acertando essas ligações ms mesmo assim não mostra nada no display.
          Tem idéa do que poderia ser? Mandei e-mail para o Agnaldo porém sem resposta…
          No aguardo

          1. Olá Marcio!
            Entende-se que as ligações do pcb deveriam corresponder ao esquema para poder funcionar. Eu não montei esta placa, mas acredito que o Agnaldo deva ter feito funcionar a contento.
            Se tiver uma placa de montagens experimentais do tipo ‘ protoboard’, experimente montar o circuito original e faze-lo funcionar. Depois confira a placa pcb com as ligações reais necessárias e se for o caso, corrija as ligações ou mesmo faça uma nova placa.
            Cláudio

  4. então ….eu estou em um projeto de escola que existe uma placa q controla o cuveiro (placa dimmer), e nela tem um potenciometro de 100k,queria q a temperatura de entrada,quanto mais ela esquenta, mais diminui a potencia do chuveiro…tendeu? (procura essa plaquinha no google imagens)

    1. Olá Yagomm!
      Obrigado por compartilhar seu objetivo. Na realidade, o que você quer é um ‘feed-back’ da temperatura da água, para controlar exatamente no valor desejado (ou próximo). Com eletrônica analógica poderia usar talvez um amplificador operacional, onde em uma entrada (+) colocaria o potenciômetro da temperatura e na outra entrada (-) o sinal do LM35. A saída seria a somatória da tensão do potenciômetro + feed-back do LM35. Esta tensão seria então usada para comparar com o sinal da rede de 60 hz (isolado e obtido talvez através de fotoacopladores) para determinar o momento do disparo do triac.
      De forma digital, com pic, terá que implementar um dimmer + leitor de temperatura em um único programa, e usar a informação obtida do LM35 para alterar o momento do disparo do triac.
      Ambos os processos são complicados para iniciantes, e exigirá bastante pesquisa.
      Sucesso no seu trabalho!

      Cláudio

      1. teria como vc me falar um amplificador operacional ideal para o LM35 ou q trabalhe com 15 MiliVoltis…pra cima…e tambem um foto acoplador …pesquisei datasheet e não achei um ideal…

        1. Ola Yagomm!
          Poderá ver muitos esquemas usando o LM35 digitando no Google: ‘imagens de circuitos com lm35‘ e dando ‘enter’. Geralmente, para aplicações experimentais poderá usar operacionais do tipo LM324, LM358, LM741, etc. O mesmo pode ser feito com o fotoacoplador digitando: ‘imagens de fotoacoplador‘.
          Veja também os ‘Note Applications’ do produto pois o fabricante sempre dá sugestões de como usar.
          Espero que tenha ajudado.

          Cláudio

  5. como eu poderia fazer a saida do pic para o bc548…ao invez de ligar e desligar…queira q ele aumenta-se e diminui-se a voltagem de saida dessa porta do pic…com forme a temperatura lida…tendeu?

    1. Olá Yagomn!
      Teria que ter um conversor digital para analógico, não disponível neste modelo de pic. Você já pensou em usar direto a tensão que sai do LM35 para isto? Na sua saída tem uma tensão analógica proporcional a temperatura, variando 10 milivolts por grau centigrados (veja datasheet).
      Podemos saber qual seria a sua intenção de usar deste modo?
      Cláudio

Comments are closed.

Back To Top