Fork me on GitHub

31/01/13

Arduino: Termometro com NTC

Arduino: Termômetro com NTC


Este é um simples termômetro que utiliza um Termistor NTC (Negative temperature coefficient). O NTC varia sua resistência inversamente  a temperatura ambiente, ou seja, quando a temperatura aumenta, a resistência diminui. A variação da resistência não é linear e foi necessário varias fórmulas para calcular.





Referência: http://en.wikipedia.org/wiki/Thermistor 

CÓDIGO-FONTE






26 comentários:

  1. float T0=293.15; // [K] (25ºC)
    não seria 298.15 a temp de 25 graus Celsius em Kelvin?!

    ResponderExcluir
  2. "TempK=(beta/log(Rout/Rinf))"

    Segundo a equação de Steinhart-Hart, o parâmetro TempK utilizaria logaritmo neperiano e não apenas log: "TempK=(beta/ln(Rout/Rinf))"

    ResponderExcluir
    Respostas
    1. Em C o log() é base "e" e log10() seria base 10. Então está correto usar log().

      Excluir
  3. Na verdade para o Arduino, Log é o logaritmo neperiano; Log10 e o logaritimo na base 10.

    ResponderExcluir
  4. Como coloca o arduino em português ? E eu n estou conseguindo colocar a programação no arduino o que posso fazer ?

    ResponderExcluir
    Respostas
    1. você tem que ir em arquivo > preferência, ai e so selecionar o idioma portugues.

      Tenta selecionar a placa que voce esta utilizando e a porta serial. va la em ferramentas.

      ve se tambem esta instalado os drivers.

      Excluir
  5. Ja estou a alguns dias tentando achar/formular um codigo que me dê a temperatura exata em celsius, mas nao estou conseguindo. utilizo um arduino uno, resistencia de 10k e um sensor de temperatura NTC10D-G. a temperatura só aparece: 273.15

    ResponderExcluir
    Respostas
    1. Esse codigo que eu postei, mostra a temperatura em celsius e kelvin.
      E outra coisa, se mesmo assim so aparecer 273.15, verifique as ligações.

      Excluir
  6. Olá amigos,

    Não funcionou comigo o que será que fiz de errado, apenas troquei os pinos do LCD para os seguintes "LiquidCrystal lcd(12,11,5,4,3,2);"
    Será que só isso é o meu erro???
    Não está faltando coisa neste código?
    Preciso de ajuda!
    Obrigado
    Primers

    ResponderExcluir
    Respostas
    1. OLá!

      O código está certo, reveja as conexões!!

      Excluir
    2. Olá Tiago,
      Obrigado pela rápida resposta, mas estive verificando e concordo que o código esteja correto, porem acho ainda acho que faltou alguma coisa, como por exemplo a inclusão da biblioteca Math.h.
      Mesmo que esta tenha sido a minha falha (não inclusão da biblioteca) o pior esta sendo inserir esta biblioteca que não é padrão do Arduino.
      Estou com muita dificuldade para encontrar a biblioteca math.h pronta, poderia me ajudar neste ponto?

      Obrigado pela paciência mais uma vez.

      Primers

      Excluir
    3. Fiz o teste aqui em casa, e deu erro mesmo, não sei se é por causa da versao do Arduino.
      Aí, eu troquei as variaveis declaradas com const int por float, e deu certo.

      Excluir
  7. Tiago,

    Muito obrigado pela rápida resposta!
    voce é o cara!!!!!
    Obrigado!

    Primers

    ResponderExcluir
    Respostas
    1. Boa Tarde Tiago,

      mais uma vez venho me aproveitar do teu conhecimento.
      Até o momento todas as sugestões funcionaram muito bem, porem a temperatura está variando para baixo, ou seja, com a elevação da temperatura no sensor o valor apresentado no display decai, por exemplo com 70°C (real) estava mostrando -8°C no display.
      Pode me ajudar desta vez??

      Primers

      Excluir
    2. o erro está na ligação, se você ver no esquema lá em cima, o positivo vai no resistor e o GND vai no NTC, se fizer ao contrario, vai acontecer isso q vc falou!!!

      Excluir
  8. Como usar ntc para medir até uns 200 graus??

    ResponderExcluir
  9. O meu deu certo porem a temperatura esta inversa, quando aqueço o sensor ele baixa a temperatura quando esfrio e sobe....

    ResponderExcluir
    Respostas
    1. verifique se você não inverteu a ligação do resistor e do NTC.

      Excluir
    2. Não já verifiquei todas as ligações, estou verificando o código, deve ter alguma coisa errada...

      Excluir
    3. descobrir é só inverter os valores de T1 e T2

      //Ver Datasheet ou usar um multimetro e medir a resistencia do NTC nas duas temperaturas
      float T1=373; // [K] Temperatura de calibração 1
      float T2=273; // [K] Temperatura de calibração 2

      Excluir
  10. Parabéns. Funcionou legal. Não uso Arduíno, converti seu código para usar direto no avr pelo Atmel Studio 6 e funcionou bem.

    ResponderExcluir
  11. Galera alguém aí tem a formula para ser usada no MikroC para usar em PIC junto com o NTC10k, pois estou tentando fazer um termômetro com o PIC12F675 e o NTC e não estou conseguindo. Fico grato se alguém consegui. e Se possível me enviar no email dhiego.mendes@gmail.com

    Fico Grato ao Blog e a todos que já me ajudaram muito.

    ResponderExcluir

Postagens Relacionadas!!