Go Down

Topic: Sensor PT1000 e Sensor NTC10 (Read 7908 times) previous topic - next topic

tecnisol

Boas,

Coloquei um topico para o meu controlador solar: http://forum.arduino.cc/index.php?topic=224941.0 e de momento tou a deparar com outra dificuldade pois o meu sensor 0 é uma PT1000 e outro é uma NTC10.

Quando fiz tudo isto e pesquisei usei somente sensores NTC10 10K mas para utilizar o que ja tenho necessito de fazer esta alteração nos codigos como posso fazer essa mudança?

Cumprimentos
JM

tecnisol

#1
Mar 20, 2014, 10:39 pm Last Edit: Mar 20, 2014, 10:42 pm by tecnisol Reason: 1
Boas,

Consultei o segundo link:

http://en.wikipedia.org/wiki/Resistance_thermometer

E da criei o seguinte codigo:


int fTemp=0;


void setup() {
 
{
 
  Serial.begin(9600);
  pinMode (fTemp, INPUT);
}

}


float GetPt100Temperature(float r)
{
      float const Pt100[] = {80.31, 82.29, 84.27, 86.25, 88.22, 90.19, 92.16, 94.12, 96.09, 98.04,
                            100.0, 101.95, 103.9, 105.85, 107.79, 109.73, 111.67, 113.61, 115.54, 117.47,
                            119.4, 121.32, 123.24, 125.16, 127.07, 128.98, 130.89, 132.8, 134.7, 136.6,
                            138.5, 140.39, 142.29, 157.31, 175.84, 195.84};

      int t = -50, i = 0, dt = 0;

      if (r > Pt100[0])
         while (250 > t)
         {
               dt = (t < 110) ? 5 : (t > 110) ? 50 : 40;

               if (r < Pt100 [++i])
                  return t + ( r - Pt100[i-1])*dt/(Pt100-Pt100[i-1]);
               t += dt;
         };

      return t;

}

void loop() {
  delay(1000);
Serial.print("Temperatura no Sensor 0: ");
Serial.println(int(GetPt100Temperature(analogRead(0)))); 

}


Mas n ta a dar leitura...


bubulindo

Olhando ao teu código... isso compila?? Eu vejo ai chavetas que não estão ligadas.

Depois reparo que a tua função Pt1000 recebe um float, mas tu estás a dar-lhe um int.

Também reparei que definiste o valor de retorno da função como float, mas mesmo assim estás a dar-lhe um int... esperas milagres??

A função analogRead não te dá o valor de resistência... dá-te um valor entre 0 e 1023 equivalente à tensão no pino referente ao espaço 0-5V. A função que colocaste aqui basicamente calcula-te a temperatura duma sonda Pt100 ou 1000 com base na resistência medida... mas para isso tens de medir resistência. Como ligaste a sonda ao Arduino?

Nota que pegar em código da internet, sem ser especificado que funciona num Arduino ou AVR não é só copy/paste. Tens de perceber algo do que estás a fazer.

Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

tecnisol

#3
Mar 27, 2014, 12:14 am Last Edit: Mar 27, 2014, 12:39 am by tecnisol Reason: 1
Realmente foi um copy paste tenho feito algumas pesquisas acerca do assunto e ainda n descobri como resolver :(

A resistência da sonda é de 1 k 0ºC


bubulindo

Como ligaste a sonda ao Arduino?
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

HugoPT

Usas-te alguma ponte de wheatstone?
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

tecnisol

#6
Mar 29, 2014, 01:06 am Last Edit: Mar 29, 2014, 01:09 am by tecnisol Reason: 1
Estou a pensar ligar assim http://en.wikipedia.org/wiki/File:Twowire.gif

NOTA: eu sou muito verdinho por isso gostava de saber as melhores alternativas o que tenho foi meramente o que descobri

As resistências que tou a pensar usar sao todas iguais 1k cada

Hugo esse é outro problema q ainda n resolvi ou ainda n tenho a certeza do que fazer

Cumprimentos

HugoPT

Quote
Estou a pensar ligar assim http://en.wikipedia.org/wiki/File:Twowire.gif

Isso é uma ponte wheatstone  :smiley-mr-green:
Então agora só tens de montar o teu circuito e ver que gama de tensão a ponte cria na gama de temperatura que queres.Caso o desequilíbrio gerado na ponte seja muito pequeno tens de usar um amplificar de instrumentação para assim aproveitares o máximo da escala do ADC do arduino. Lendo esses valores tens a temperatura ...
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

tecnisol

Hugo,

Quais os valores das resistencias que devia utilizar na ponte wheatstone?

R1, R2 e R3?

HugoPT

Quote
Quais os valores das resistencias que devia utilizar na ponte wheatstone?

Visto ser uma PT1000 as outras resitencias devem ser todas de 1K
Debian,Mint,Ubuntu
Arduino Mega 2560
Arduino Nano
Arduino Duemilanove
MAC OS Montain Lion
Raspberry PI Model B

tecnisol

Foi o que tinha referido anteriormente :) vou ter de adquirir umas q de momento n tenho depois irei verificar obrigado

tecnisol

Penso q não tou a ligar bem a sonda no arduino utilizando a ponte onde logo a entrada analogica? no GND? e por sua vez a ponte e a sonda? recorrendo ao seguinte esquema: http://en.wikipedia.org/wiki/File:Twowire.gif


Sera como o seguinte desenho que fiz?

tecnisol

Será que é assim que fica?

bubulindo

Eu se calhar não iria por aí...

Qual a precisão que pretendes?

Já viste esta possibilidade?
http://openenergymonitor.org/emon/node/75

Isso tem aí um multiplexer que só necessitarias se tivesses mais de uma sonda. Logo pode ser tirado.

O andar de amplificação tem de ser calibrado para fazer um offset da tensão para a gama que pretendes.

Mas, já montaste o esquema que tinhas aqui?
Eu não sou o teu criado. Se respondo no fórum é para ajudar todos mediante a minha disponibilidade e disposição. Responder por mensagem pessoal iria contra o propósito do fórum e por isso evito-o.
Se realmente pretendes que eu te ajude por mensagem pessoal, então podemos chegar a um acordo e contrato onde me pagas pela ajuda que eu fornecer e poderás então definir os termos de confidencialidade do meu serviço. De forma contrária toda e qualquer ajuda que eu der tem de ser visível a todos os participantes do fórum (será boa ideia, veres o significado da palavra fórum).
Nota também que eu não me responsabilizo por parvoíces escritas neste espaço pelo que se vais seguir algo dito por mim, entende que o farás por tua conta e risco.

Dito isto, mensagens pessoais só se forem pessoais, ou seja, se já interagimos de alguma forma no passado ou se me pretendes convidar para uma churrascada com cerveja (paga por ti, obviamente).

tecnisol

boas bubulindo,

De facto se existir um erro de 1 a 2 graus n será significativo ate porque o que uso actualmente noto um diferença de leitura de 1ºC da PT 1000 para a NTC 10 penso q a soluçao que apresentaste sera melhor opção a anterior n experimentei ate porque n tenho o amplificador.

Go Up