Ir ao conteúdo
  • Cadastre-se

C++ Preciso converter a resistência em temperatura do NTC no arduino uno


Almirêz
Ir à solução Resolvido por codigo rapido,

Posts recomendados

Olá. Desde já sou grato por aqueles que estiverem lendo.

 

Fiz um termômetro utilizando o " Waterproof NTC 10K 1% 3950 Thermistor Accuracy Temperature Sensor Cable Probe for W1209 W1401" (inclusive isso é quase tudo que sei sobre o termistor, já que o vendedor não tem o datasheet) em conjunto com o arduino uno, utilizando da formula de divisão de tensão e regra de três como verá a seguir, mas logo percebi que a temperatura não estava coincidindo com a de outros termômetros.

 

#define pinSensor A0; // pino analógico do sensor
int Vin = 5; //tensão de entrada
float Vout; // tensão de saída
int R2 = 220; //resistor da divisão de tensão
float R1; //resistência do sensor de temperatura
float valorTermistor; //leitura do sensor
float temperatura = 0;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(A0, INPUT);
}

void loop() {
  // put your main code here, to run repeatedly:

valorThermistor = analogRead(A0);

Vout = (valorTermistor*Vin)/1023;

R1 = (R2*(Vin-Vout))/Vout;

temperatura = 250000/R1;

Serial.print("Temperatura : ");
Serial.println(temperatura);

delay(500);
}

 

 

 

Revi o código e não encontrei nada, então continuei pesquisando, até que me lembrei que por se tratar de um NTC  tem sua curva característica (forma uma função exponencial). Depois disso fui em buscas de outras fórmulas que estabelecessem a relação que preciso, não consegui fazer a fórmula a partir de outra ou algum raciocínio em específico. Aliás, encontrei uma fórmula na internet que outras pessoas utilizaram (como a Steinhart-Hart equation  e a simplified B parameter equation. ), mas não consegui colocar no  meu projeto, na verdade, nem as entendi muito bem.

 

Observação: acredito que o parâmetro  B deste termistor seja 3950. 

 

 

E justamente por não ter conseguido resolver esta questão (relação entre a resistência do termistor e a temperatura) que vim a este fórum. Estou necessitando de uma solução com urgência, já tentei tudo que imaginei, mas não consegui chegar a nenhum resultado mais satisfatório do que o primeiro (este que coloquei acima).

 

Grato a todos que leram e se preocuparam. Se precisarem de mais alguma informação estarei aqui.

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

  • Solução

Sem a curva caracteristica do seu NTC não tem como fazer isso.

Uma solução... descobrir a curva caracteristica do seu NTC
você vai precisar saber a faixa de operação que você quer trabalhar.
Por exemplo...

Se quiser que funciona de 10 graus à 50 graus, a ideia é arrumar um termometro e medir a resistencia para alguns pontos entre 10% a menos do seu minimo e 10% a mais do seu máximo.

Então vai encontrar um secador de cabelo ou uma geladeira e medir a resistencia quando seu termometro marcar :
5°, 15°, 30°, 45° e 55°

Ai, junto com as resistencias, precisará fazer o ajuste de curvas. Quando eu tenho esse tipo de problema, eu uso o metodo dos quadrados minimos. Esse é um exemplo de como encontar a curva caracteristica de uma função exponencial. A formula é igual para qualuqer caso:
https://www.youtube.com/watch?v=CgBpe6h0pDw


Ai, com essas medições de resistencia, encontrar a formular que representente a curva caracteristica do seu NTC. Sempre que trocar o seu NTC e você não tiver a curva caracteristica, vai precisar refazer esses calculos usando o mesmo método.

O seu caso é mais de eletrônica do que de programação.

Acho que seu topico deveria ser movido para Eletrônica. Lá, certeza, que se você mostrar uma foto do seu NTC ou der as especificações os usuários lá saberão te informar melhor que os daqui que é de programação.
 

 

 

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

16 horas atrás, Flávio Pedroza disse:

Em complemento ao comentado por @codigo rápido , uma vez colhido os dados, você pode usar o excel para obter a curva. Procure por "regressão não linear excel".

 

Só pra provocar a mente dos estudiosos da matemática...
vejam isso...

o conceito de linha não é o mesmo que o de reta. Mas toda equação na forma polinomial descreve uma linha. A unica equação que descreve uma reta é a equação de primeiro grau. Ou seja, uma reta é um caso de linha, mas uma linha nem sempre é uma reta.

Portanto, quando se fala em regressão não linear está se falando na verdade de regressão não retilinea? Hehehe... pra vcs pensarem no conceito de linha e de reta na matemática...
 

As variações do y em funções que dependem de condicionais (fora da forma polinomial), formam bicos (ou pontas nas linhas, demonstram que não são polinomiais) é quem deveriam se chamar de "equações" não lineares. Assim como essas equações não são derivaveis pelo mesmo motivo nesses pontos formarem bicos (ou buracos ou pontas)...

Somente valores que obedecem funções polinomiais podem ter uma forma de regressão a sua função original.

Me digam... devemos ou não mudar o nome de regressão linear para regressão retilinea e regressão não linear para regressão não retilinea? Bem... normalmente quando vejo um conjunto de gráficos como os da bolsa de valores, por exemplo, que não seguem um padrão, costumo dizer que é uma função não linear (significa aleatório).

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!