Moderadores: andre_luis, 51, guest2003, Renie
%%%% ENTRADA
ADRES = 0 : .1 : 1023 ;
sensor = 0 ;
%%%% CONFIGURACAO
a = 0.0011303;
b = 0.0002339;
c = 0.00000008863 ;
VCC = 5 ;
R1 = 10000 ;
%%%% CALCULO
sensor = ADRES;
sensor = sensor * 5 ;
sensor = sensor/1023;
rntc=33000./sensor; %//RNTC=(Vcc*R1/Vin)-R1
rntc=rntc-10000; %//
b1=log(rntc); %//LN(RNTC)
b1=b1*b; %//b*LN(RNTC)
c1=log(rntc); %//LN(RNTC)
c1=power(c1,3); %//LN(RNTC)^3
c1=c1*c; %//c*(LN(RNTC)^3)
temp=a+b1+c1; %//a+b*LN(RNTC)+c*(LN(RNTC)^3)
temp=1./temp; %//1/(a+b*LN(RNTC)+c*(LN(RNTC)^3))
temp=temp-273.15 ;
%%%% SAIDA
axis([ 0 1000 -100 300 ]) ;
title ( 'Equação de Steinhart & Hart' )
xlabel ( 'ADRES' )
ylabel ( 'temp' )
plot( ADRES , temp )
rntc=33000./sensor; %//RNTC=(Vcc*R1/Vin)-R1
andre_teprom escreveu:Juraci,
Quando trabalhei com NTC a bastante tempo atrás, como a minha aplicação não demandava tanta precisão, simplesmente mapeei em memória estática os pontos da curva ( o equivalente á decalrar como const no C ) e os valores intermediários eram obtidos por interpolação.
No seu caso, como você está fazendo o modelamento da curva para cálculo em tempo de execução do programa, eu sugiro fazer uma simulação primeiro, utilizando alguma ferramenta de cálculo numérico, como o MATLAB, que é uma mão-na-roda nesses casos, pois como utiliza uma linguagem meio que em "pseudo-C", para fazer a conversão depois é bem tranquilo.
+++
Maffeis escreveu:Eu tava estudando a um tempo atrás NTC
lembro que eu ia usar um circuito diferente desse
por conta que a corrente que passa por influenciava na leitura
eu tava vendo de usar uns amplificadores como seguidores de tensão
juracipereira escreveu:Pois é André, também achei estranho.
Não preciso me apegar a esse código nem a esse circuito.
Se tiver alguma idéia, estou aberto a dicas...rsrs
%%%% ENTRADA
ADRES = 0 : .1 : 675 ;
sensor = 0 ;
%%%% CONFIGURACAO
a = 0.0011303;
b = 0.0002339;
c = 0.00000008863 ;
VCC = 5 ;
R1 = 10000 ;
%%%% CALCULO
sensor = ADRES;
sensor = sensor * 5 ;
sensor = sensor/1023;
rntc=33000./sensor; %//RNTC=(Vcc*R1/Vin)-R1
rntc=rntc-10000; %//
b1=log(rntc); %//LN(RNTC)
b1=b1*b; %//b*LN(RNTC)
c1=log(rntc); %//LN(RNTC)
c1=power(c1,3); %//LN(RNTC)^3
c1=c1*c; %//c*(LN(RNTC)^3)
temp=a+b1+c1; %//a+b*LN(RNTC)+c*(LN(RNTC)^3)
temp=1./temp; %//1/(a+b*LN(RNTC)+c*(LN(RNTC)^3))
temp=temp-273.15 ;
%%%% SAIDA
plot( temp , ADRES )
axis([ -100 300 -5 679 ]) ;
title ( 'Equação de Steinhart & Hart' )
xlabel ( 'temp' )
ylabel ( 'ADRES' )
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante