estou precisando ligar um pt100 no arduino mais ate agora não consegui fazer direito. imagino que devo usar um amplificador operacional para isso. Porem sou novato na areá e não sei ao certo que configuração devo usar e nem sei calcular os valores dos resistores.
Estarei usando um pt100 de 3 fios para medir de 0C a aprox 300C.
Você espera alimentar com que tensão 5V?
Para começar, acho que um resistor de 100R seria o ideal, mas o melhor é saber qual é a faixa de temperatura que você vai trabalhar? Pois pelo catalogo, a 0º ele tem resistência de 100R, o resistor que você deve escolher deve se basear na faixa que você pretende medir com mais precisão.
Coloca a PT100 num braço de uma ponte wheatstone com 3 resistencias de 100 ohms cada.Depois alimentas com 5V do arduino e o meio da ponte wheatstone ligas numa entrada analogica.Caso os valores sejam muito baixos amplificas com um ampop para elevares o sinal ligeiramente e adaptares a tua escala.
Le isto
Claro que isto é apenas uma forma de se poder fazer existem muitas mais...
Corta a ligaçao entre o Ponto A e o PontoB.Depois liga a entrada analogica no pontoA.Isto nao sera o correcto de se fazer mas devera dar para veres o valor a mexer.
O problema que iras infrentar é a referencia de ground.A ponte ira funcionar bem se leres a tensao entre o ponto A e ponto B.Podes comprovar isso com o multimetro.
A questao e que se usares a alimentaçao vinda do arduino nao vais poder fazer isso porque devias ligar o pontoB ao gnd e o Ponto A na entrada analogica.Desta forma com a alimentaçao comum nao consegues ver a diferença entre a malha A e a malha B.
Outra forma seria ligares o ponto B em outra entrada analogica e depois compara-la com a analogica do pino A.Desta forma consegues ver a diferença entre eles como se fosse uma massa virtual.
Faz o teste
o valou da entrada A nunca muda é sempre 490
e o valor da entrada B em geral é 0 muito de vez em quando oscila ate no máximo 3...
vou tentar montar de novo para ver se eu não fiz nada errado na hora de montar a ponte...
quanto ao pt100 ele não tem codigo nenhum
seus fios são verde, vermelho e azul (medindo a resistência entre o vermelho e o azul o valor é um curto e entre o fio verde e os demais a resistência fica variando pela casa de 1mega)
Usa este esquema super simples:
Essa leitura na casa de um Mega ohms axo muito pode estar aberta mas ...
Coloca a tua PT100 na posiçao do Rx
Corre o programa e posta o resultado.
Quando dizes que o ponto B esta a zero tal so pode significar que esta em pull-down, por outras palavras a RL1 ou esta incorretamente ligada ou mesmo desligada.
o ponto B tem de ter um valor fixo no teu esquema.
Ao usares o esquema que te indico teras de ler um valor fixo no ponto D e um a variar a medida da pt100 no ponto B
Testa a pt100 com o multimetro arrefece a no congelador e depois mede lhe a resistência
Ela é nova ?
A 0 graus ela tem de ter 100 ohms, claro que no congelador podes não conseguir isso mas a resistência terá de andar por lá perto
Desta forma comprovas a pt100 a ver se esta ok
Apos uma procura sobre os valores resistivos normais de uma PT100 encontrei isto:
If the reading is within tolerance then this process is repeated two more times to give three readings across the working range of the instrument. For CIP temperature instruments the resistances selected are normally 100.00, 119.40 and 138.50 Ohms. The temperature equivalent values are 0, 50 and 100oC respectively.
Significa que se a tua mede perto de 1Mega das duas uma ou esta mesmo avariada ou estas com ligaçoes erradas!!!
O valor em ohms a temperatura ambiente anda na casa dos cento e poucos ohms!!!!
Afinal sempre era a PT100 avariada
Em relaçao a esse ajuste de gamas agora teras de fazer o seguinte.
Tens de tentar arranjar uma forma de leres a temp a que a PT100 esta sugeita para que desta forma possas achar o racio que teras de usar para a ajustar.
Ex:
tens a sonda no gelo e um termometro ao lado dela mede 3ºC
Na Leitura obtens um valor de 20
De seguida sobes a temperatura e voltas a ler o valor na ponte
Depois ao fim de todos esses dados podes obter a diferença que teras de ajustar
Isto claro se essa variaçao for linear senao sera algo mais dificil
#define ponto1 A2//
#define ponto2 A3//
int amostra1;//
int amostra2;//
int diferenca;
int temperatura;//
void setup()
{
Serial.begin(9600);
}
void loop()
{
amostra1= analogRead(ponto1);
amostra2= analogRead(ponto2);
Serial.println("O valor das entradas sao:");
Serial.print(amostra1);
Serial.print("****");
Serial.println(amostra2);
diferenca= ponto1 - ponto2;
temperatura = map(diferenca, 20, 40, 0, 25); //Esta funcao pega nos valores aramzenados na var diferença e faz uma adaptaçao de escala ou seja casa o valor 20 com 0 e o seu maximo 40 com 25,
//Claro esta que e um exemplo tens de axar a relaçao que pretendes para converter os valores da diferença para a temperatura,
//Neste exemplo estou a dizer que tenho uma gama de 20 a 40 e que vai ser convertida numa outra gama de 0 a 25 graus por exemplo
Serial.println("O valor convertido e:");
Serial.print(temperatura);
delay(1000);
}
Quando escreveres o teu codigo aposta na identaçao do codigo e tenta torna-lo o mais simples possivel( nomes de variaveis, e comenta-o)
Quanto mais "human readable" ele for mais a ti proprio te ajudas