Repetibilidade de medição de temperatura com módulo HX-711 e termopar tipo K

Boa tarde pessoal!

Tenho tentado montar um circuito para medição de temperatura com termopar tipo K utilizando um módulo HX-711 e um Arduíno, como mostra a imagem. Porém apesar do módulo ler os valores de entrada esses valores não dão repetibilidade, como mostra o gráfico anexado, pra uma mesma temperatura ele lê valores diferentes em instantes distintos, e normalmente o valor lido em sequencia é menor que valor anterior, fica mais claro olhando o gráfico. 

Sei que o módulo HX, a priori, é utilizado para leitura de célula de carga, porém ele nada mais é do que um conversor ADC com um amplificador diferencial na entrada. Então não vejo problema nesse sentido, porem não tenho mais nenhuma ideia do que possa causar esse tipo de problema.

Caso alguém alguém tenha alguma ideia a respeito eu ficaria muito agradecido.

Valeu!

Imagens do circuito e do gráfico:


Exibições: 3279

Responder esta

Respostas a este tópico

Boa tarde José!

Você chegou a a testar a repetibilidade, se pra mesma temperatura o circuito sempre dá o mesmo valor?

 Boa noite, 

Sim, em  outro sketch que eu testei para medir a tensão (mili Volts) no termopar tipo K com a Biblioteca HX711_ADC. 

O chato é que nessa biblioteca eu tinha que calibrar o circuito ( tara para balança) antes de fazer as medições, senão os valores ficavam errados. 

Eu ligava um fio entre as entradas do canal A. Pressionava T para Tara ( zero da balança) e depois fazia as medições. Isso que eu achei muito incômodo. 

#include    <HX711_ADC.h>                         // Biblioteca HX711_ADC
HX711_ADC LoadCell(6, 7);                         // HX711 constructor  dout pin = D06 , sck pin = D07

long t;                                                            // variável para tempo

void setup()
{
 Serial.begin(38400);                                     // monitor serial a 38400 Bps
 Serial.println("Aguarde 1 segundo ...");        // imprime mensagem
 LoadCell.begin();                                          // inicializa a balança
 long stabilisingtime = 1000;                          // tempo para estabilização do ADC 1 segundo
 LoadCell.start(stabilisingtime);                     // iniciando o ADC
 LoadCell.setCalFactor(128.0);                     // fator de calibração = 128 (ganho do canal A)
 Serial.println("Inicializacao realizada");
}

void loop()
{
 LoadCell.update();                                       // atualiza a balança

 if (millis() > t + 250)                                      // contagem de tempo 250  milisegundos
 {
   float i = LoadCell.getData();                      // faz a leitura da tensão
   float v = LoadCell.getCalFactor();             // faz a leitura do  fator de calibração
   Serial.print("Tensão no Termopar: ");        // imprime mensagem
   Serial.print((i / 4250), 3);                           // divide o valor por 4250 com 3 casas decimais
   Serial.print("      Fator de ganho ");           // imprime mensagem
   Serial.println(v);
   t = millis();                                                 // atualiza o tempo
 }

 if (Serial.available() > 0)                             // se a serial estiver disponível
 {
   float i;                                                        // variável i
   char inByte = Serial.read();                      // lendo a tecla digitada
   if (inByte == 'l') i = -1.0;                            // l para diminuir 1
   else if (inByte == 'L') i = -10.0;                 // L para dimunir 10
   else if (inByte == 'h') i = 1.0;                    // h para aumentar 1
   else if (inByte == 'H') i = 10.0;                 // H para aumentar 10
   else if (inByte == 't') LoadCell.tareNoDelay();// t para atualizar tara
   if (i != 't')                                                  // se for diferente de t
   {
     float v = LoadCell.getCalFactor() + i;     // incrementa o fator de calibração    
     LoadCell.setCalFactor(v);                     // carrega o fato de calibração
   }
 }
 if (LoadCell.getTareStatus() == true)         // se tara realizada com sucesso
 {
   Serial.println("Tara completa");               // imprime mensagem
 }
}

Opa, o diagrama ficou sem a identificação de alguns  pinos do módulo HX711.

Corrigindo :

Opa!

Vou tentar montar dessa forma na segunda. 

Boa noite José!

Já.

O MAX6675 não mede temperatura negativa. Preciso medir temperatura negativa.

MAX31855 não encontrei pra comprar. Mas serviria.

O que eu encontrei no mercado pra comprar é esse: https://produto.mercadolivre.com.br/MLB-1023342249-modulo-para-term...

Porém, não estou querendo/podendo gastar dinheiro. 

Abraço!

Boa noite Heitor, 

Bem observado - o MAX6675 não mede temperatura negativa. 

O jeito é agarrar o boi pelo chifre com o HX711. 

Mais uma sugestão importante:

- como sempre informo para os colegas do Lab , a precisão das medidas de um conversor ADC depende da tensão de referência. Se a tensão não for estável e precisa, o conversor pode medir tudo errado.

Sugiro que use um chip de tensão de referência  entre os Pontos de alimentação da Ponte de Wheatstone. Não use o pino E+ do HX711, mas conecte o E- no terra da ponte, entendeu ?

Chips de tensão de referência (informe se vai usar algum, que depois eu explico como usá-lo) :

  • TL431 ( barato e fácil de encontrar) 
  • LM336 - 2.5V 
  • LM385
  • MCP1525
  • AD580 ( o melhor, mas caro) 

Senhores!

No fim das contas acabei pedindo o professor pra comprar a placa específica para termopar.

Mas depois cheguei a testar os dois módulos HX que eu tinha mãos com a célula de carga e aparentemente

o problema persiste mesmo com a célula de carga. Ou seja o defeito estava no módulo HX711.

Então fica a alerta pra quem for comprar esse módulo. TOMEM CUIDADO COM O FORNECEDOR.

Gostaria de agradecer todos que me ajudaram com esse problema.

Bom dia, 

Eu ainda acho que o seu módulo HX711 deve  estar bom...

Eu diria que é muito improvável, que dois módulos tenham o mesmo sintoma de erro.

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço