Oie gente, estou utilizando um sensor de pressão mpx2050dp junto com um hx711 para pode amplificar o sinal, estou enfrentando um problema que não consegui resolver ainda que é o fato da calibração, já que o hx manda para o ESP32 valores digitais, e não valores de tensão que seriam necessário para fazer a conversão, como manda o datasheet do mpx. se alguém souber como converter sinais do hx para valores de tensão e poder me ajudar fico agradecido. Esse é o codigo que eu utilizo para obter a pressão em Kpascal, porem não tenho certeza se esta bem calibrado. 


// --- Mapeamento de Hardware --- dados do Hx711, sensor de pressão
#define ADDO 18 //Data Out o dado sai daqui e vai para o esp32
#define ADSK 17 //SCK


// --- Protótipo das Funções Auxiliares ---
unsigned long ReadCount(); //conversão AD do HX711


// --- Variáveis Globais ---
unsigned long convert;
int i;
int sensor = 36; // pino do anemometro
float voltagem = 0;

// --- Configurações Iniciais ---
void setup()
{

Serial.begin(115200);
pinMode(ADDO, INPUT_PULLUP); //entrada para receber os dados
pinMode(ADSK, OUTPUT); //saída para SCK
//pinMode(sensor, INPUT); //inicia a leitura de dados do anemometro


} //end setup


// --- Loop Infinito ---
void loop()
{
//leitura = analogRead(sensor); //anemometro
convert = ReadCount(); //variavel que recebe os valores dos pinos digitais do sensor de pressao
Serial.println((convert - 11509916.68138190)/105486.6009331360);
//Serial.println("Velocidade do ar: "); // dados analogicos apenas mas sao os dados da velocidade
//Serial.print(leitura);

} //end loop

// --- Funções --- função do HX711
unsigned long ReadCount()
{
unsigned long Count = 0;
unsigned char i;

digitalWrite(ADSK, LOW);

while(digitalRead(ADDO));

for(i=0;i<24;i++)
{
digitalWrite(ADSK, HIGH);
Count = Count 1;
digitalWrite(ADSK, LOW);
if(digitalRead(ADDO)) Count++;

} //end for

digitalWrite(ADSK, HIGH);
Count = Count^0x800000;
digitalWrite(ADSK, LOW);

return(Count);


} //end ReadCount

Exibições: 64

Responder esta

Respostas a este tópico

Olá, Yuri!

Em primeiro lugar, siga as orientações de como postar. Isto nos ajuda muito e, por conseguinte, ajuda a você também.

O Rui Viana ( minerim ) tem batido muito nesta tecla.

Não conheço o MPX2050DP mas, pelo que você disse, imagino que estejas querendo fazer uma calibração "analógica".

Se não for isto, por favor, descarte esta resposta!

Caso contrário, o HX711 é um conversor analógico para digital. Encare da seguinte forma: o valor digital apresentado pelo conversor A/D é uma representação ( quase ) tão boa da grandeza medida quanto a tensão analógica na saída do sensor.

( quase porque acrescenta os erros do conversor A/D )

O que quero dizer? Que você não precisa reconverter o valor digital para uma tensão para fazer a calibração analógica, pois ela pode ser feita pelo software ao invés de fisicamente no componente. É assim que se faz em balanças, por exemplo. Não mais se usam os famigerados "trimpots" para ajuste de ganho e offset nos amplificadores de instrumentação, como se fazia antigamente.

Sugiro que você procure por métodos de calibração de células de carga em balanças. O método é simples e pode ser aplicado "seamless" ao seu caso.

Abração!

A verdade o que eu estou tentando fazer é evitar a calibração, e usar a equação de V(P), tensão por pressão, que o datasheet me dá, e não tenho como utilizar essas equações já que o HX711 só me retorna uma séries de números digitais e não valores de tensão

Olá, Yuri!

Se a datasheet a qual você está se referindo é https://www.nxp.com/docs/en/data-sheet/MPX2050.pdf, então a única equação que eu vi lá é ( me corrija se eu estiver errado ):

Vout = Voff + sensitivity x P ( pág. 4, tópico LINEARITY )

Bem, em perimeiro lugar, devo te dizer que, dependendo da precisão que você requer, não haverá como fugir da calibração, uma vez que, qualquer elemento fabricado apresenta dispersão em suas características, razão pela qual os fabricantes apresentam valores "típicos" ou "máximos e mínimos" destas.

Mas, se teus requisitos de precisão forem "elásticos", então é possível usar uma simples equação, sem calibração, para determinar a pressão em função da tensão de saída do MPX.

A parte legal da história, é que o HX711 te dá a tensão de saída do MPX, já na forma digital, para que tu possas utilizar no software!

Assim, se a equação que vistes na datasheet é esta mesmo, uma simples alteração algébrica permite que tenhas o valor da pressão P em kPa, em função da tensão Vout, em mV.

Chamando a sensibilidade de S, para simplificar, e usando notação mais afeita ao software, temos:

          Vout = Voff + ( S * P )

Isolando para P:

          P = ( Vout - Voff ) / S

Da folha de dados

          -1.0 mV ≤ Voff ≤ 1.0 mV ( pode-se assumir Voff = 0, valor médio )
          Sensitivity( typ ) = 0.8 mV/kPa

O que faz :

          P( kPa ) = ( Vout( mV ) - 0 ) / 0.8

O problema é, então, determinar a relação entre o valor digital que o HX711 fornece em relação à tensão de saída do MPX.

Digamos que esta relação seja Vout = K * HX711_D, onde HX711_D é o valor digital que o HX711 fornece, Vout está em mV e K é o fator de conversão que deve ser determinado, ou lendo a datasheet do HX711 ( que não conheço ) ou medindo diretamente Vout em mV e vendo qual o valor de HX711_D e fazendo a divisão ( K = Vout / HX711_D ).

Levando na equação para P, temos :

          P( kPa ) = ( K * HX711_D ) / 0.8

Espero ter ajudado.

Boa tarde,

Manômetro diferencial com MPX2050DP

https://labdegaragem.com/forum/topics/man-metro-diferencial-com-mpx...

RSS

© 2021   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço