TERMOSTATO P/ AQUÁRIO – C/ PIC 12F675 E DS18B20 (REF275)

2

Mais uma opção para controlar a temperatura de seu aquário…

Esta montagem permite o controle da temperatura de um aquário através da utilização de uma resistência aquecedora própria para aquários. Veja o esquema abaixo:

tiny_termo_aquario_ds18b20

Como sensor foi usado o componente DS18B20 fabricado pela Maxim. Este usa apenas um pino do PIC para enviar a temperatura, usando o protocolo 1-wire.
Para ajustar a temperatura desejada, usamos um interruptor (pino 4 do PIC). Ao apertar irá começar a decrementar, mas se soltarmos este interruptor por mais de 1 segundo, apertando de novo começará a incrementar, sendo mostrado na segunda linha do LCD.
Na primeira linha teremos o valor da temperatura da água, obtida pela leitura do sensor colocado dentro do aquário.
O sensor é o DS18B20, encapsulado em uma proveta de vidro pequena, com vedação feita com silicone próprio para aquários. Poderá adquirir este sensor pronto em vendas pela internet.
A resistência de aquecimento também deverá ser adquirida em lojas de materiais para aquários e deverá ser para a tensão de trabalho da rede local. Existem vários modelos conforme o tamanho do aquário.
A faixa de regulagem foi limitada de 14,5 a 40,0°C, pois a maioria dos peixes vivem em temperaturas entre 28 a 30 graus centígrados.
Caso a montagem seja usado apenas como termômetro,não haverá marcação de temperaturas negativas, pois a temperatura mínima está limitada a 0°C e a máxima em 99,9°C. Isto foi feito no programa C, para economizar espaço de memória e permitir que todo o programa seja colocado em apenas 1Kbyte de flash do PIC 12F675.
A alimentação poderá ser obtida de uma fonte CC de 9 a 12 volts, ou usar estas usadas em carregadores de celular de 5 volts ou fonte convencional com transformador + diodos + capacitores.
Para os testes desta montagem, foi usada a montagem “SIMULANDO UM SENSOR DE TEMPERATURA DS18B20 PARA FINS DE DESENVOLVIMENTO E TESTES (REF144)”, pegando os arquivos da pasta mais recente, de 20/03/2017.
Obs. Esta montagem é experimental, sendo de caráter didático, montada apenas em placa experimental (do tipo “Breadboard”), sujeita a “bugs” ainda não detectados. Está sendo fornecido os arquivos para que cada hobista possa alterar o programa segundo suas necessidades.

Segue pasta zipada com os arquivos desta montagem:

Tiny_Termo_Aquario

Manuais:
PIC 12F675
DS18B20 datasheet

Curiosidades:
A arte de preparar um expresso
A impressionante audição da traça-da-cera
Quem projetou primeiro?
Como ter uma saúde melhor
Quase dá para comer!
“Sua ligação foi completada” — Como?

Outros assuntos:
O casamento é apenas um compromisso formal?
Faz diferença ter boas maneiras?
Os desafios de uma família com enteados
Recuperar a confiança no casamento

Vídeos:
O que é o Reino de Deus?
Como enfrentar o bullying sem partir para a briga
Quem é o Autor da Bíblia?
Será que é amor ou paixão?
Tenha mais paciência
Fale a verdade
Eu me cansei das religiões

Até o próximo artigo!

2

10 comments

  1. 0

    Ola Claudio!
    Gravei o novo arquivo que você me enviou e funcionou perfeitamente, como montei o termostato juntamente com o projeto do simulador de ds18b20 consegui varrer toda a faixa de temperatura ,fico muito agradecido pela sua ajuda , estou aprendendo muito com seus projetos e aproveitando para aprender um pouco mais de programação em c.
    Fico muito agradeço pela sua atenção e poder compartilhar seus conhecimentos!
    Atenciosamente
    Marcos

  2. 0

    Olá , Claudio !
    Vou verificar o arquivo sim obrigado, e aproveitando oportunidade gostaria de tirar uma dúvida na parte do código de comparação de temperaturas , porque você soma o valor 95
    na variável de temperatura ,não consegui entender esta parte ?

    Atenciosamente

    Marcos

    1. 0

      Olá Marcos!
      O valor 95 é um centro entre o valor positivo e o negativo ( podemos chama-lo de talvez ‘zero virtual’). Poderia ser outro valor mas na hora escolhi este valor , que resulta: 95 + 150 °C = 245 e 95 – 55°C= 40. Ambos resultados ficam confortavelmente dentro de 0 a 255. Poderia ser de 55 a 105.
      Acredito que deva existir lógica de comparação mais simples, mas na ocasião que fiz o programa não me veio a mente outras soluções.
      Eu até tentei montar uma explicação nos comentários mais fácil, mas sinceramente não consegui traduzir em palavras o funcionamento destas comparações. Para mim já foi um quebra-cabeça fazer funcionar! Mas fico feliz que tenha conseguido fazer funcionar sua montagem. Parabéns pela sua persistência!

      Cláudio

      1. 0

        Ola Claudio !
        Obrigado pela explicação agora consegui entender o código completo só falando com o pai da criança mesmo !!
        Aprendi muito com o estudo deste código aumentou meus conhecimentos em programação em c.
        Desde ja te agradeço pela sua atenção e por ser tao prestativo.
        Atenciosamente
        Marcos

  3. 0

    Claudio Larios,
    Primeiramente gostaria de parabenizá-lo pelo excelente Blog, onde você tem compartilhado seu conhecimento com todos que apreciam estas tecnologias .
    Gostaria de poder obter uma ajuda ,se (possível) em relação a um projeto que foi postado a um certo tempo (termostato digital com pic16f628a com ds 18b20), onde montei o mesmo juntamente com o simulador ds18b20 e funcionou corretamente ,mas ao programar na faixa entre (-1°C a -11°C) o rele aciona na faixa positiva de temperatura sendo que nas demais faixas ele opera normalmente.
    Agradeceria muito se pode-se me ajudar na solução do problema
    Atenciosamente,
    Marcos Antonio

    1. 0

      Olá Marcos!
      Poderia, por favor, indicar qual é o artigo específico, se possível, o número referencial ou a data do artigo? Existem vários artigos parecidos, mas com versão com lcd e também com 7 seguimentos, e isto dificulta saber qual é o que você está utilizando.
      Fico no aguardo.

      Cláudio

          1. 0

            Olá Marcos!
            Postei uma nova pasta com os arquivos atualizados do artigo ref143 (Termostato). Por favor, verifique se está tudo ok agora.
            Cláudio

Leave a Reply