Olá estou tendo dificuldade com um sensor de pressão MPX5999D, leio ele com a função analogRead e obtenho o valor de 40 mas depois disso não sei mais o que fazer, como transformar em Kpa ou bar, seria muito grato se conseguirem me ajudar

Exibições: 4051

Responder esta

Respostas a este tópico

De acordo com o datasheet, a tensão de saída do MPX5999D é Vout = Vs*(0.000901*P+0.04) (ignorando o erro), sendo Vs a alimentação (5V) e P a pressão em kPa.

A entrada analogica do arduino é capaz de ler tensões entre 0 e 5V em um range de 0 a 1023. Podemos então dizer que a leitura será Vin*1023/5

Unindo as duas equações teremos que a leitura será 0.921723*P+40.92, portanto podemos concluir que P=(leitura-40.92)/0.921723 (ignorando o erro)

Porem, analisando o valor que você obteve como leitura, a equação do sensor e os dados do datasheet, eu diria que é muito importante verificar o erro de leitura pois sua leitura não bate com o resultado quando se usa essa equação (daria -1kPa o que não faz sentido pra esse sensor). A leitura mínima deveria ser 40.92 (0kPa).

Utilize algum mecanismo para calibrar sua leitura. Como por exemplo utilizando a equação (leitura-40.92+erro)/0.921723 e defina o valor da variavel erro comparando a leitura do seu sensor com algum sensor pronto.

o valor que sai do analgoRead() vairia entre 40,41

Você esta medindo a pressão atmosférica do seu local. Qual cidade mora? Qual a pressão atmosférica média da sua região ? A pressão muda de acordo com o clima...

Calculando :

Meça a tensão no Pino VCC do  sensor. Esta medindo 5V ? Esta medição deve ser precisa. 

Supondo VCC = 5V 

  5 V / 1024 = 0,0048828125  ( conversor de 10 bits = 2 elevado a 10 = 1024) 

Se a medição do analogRead esta dando 40 => 40 x 0,0048828125 = 0,1953125 Volts. 

Vendo as informações do DataSheet (abaixo) - você esta medindo Zero de pressão. 

Minha dúvida - esse sensor mede pressão diferencial ? Se for diferencial a leitura esta correta ! 

Pois não tem nenhum tubo conectado nele, não é ?? 

No datasheet  do sensor: 

Faixa de Pressão = 0 a 1000 K Pa 

Sensitividade = 4,5 mV / K Pa

Zero pressão Offset ( tipico ) = 0,2 V 

Fundo de escala( típico )  = 4,7V 

Variação total - fundo de escala = 4,5V 

1.0 kPa (kiloPascal) equals 0.145 psi.

Sim ele é diferencial, e não estou conectando nenhum tubo. E minha duvida o calculo para transformar o 40 em 0 de pressão

Caro Lucas, no post acima eu expliquei como consegue o valor de 0,195 volts a partir da leitura de 40 no pino analogíco do Arduino...

No datasheet informa que o sensor deve ser calibrado. 

Portanto para o seu sensor =>  0 KPa = 0,195 V 

Para efeito de compreensão, vamos aproximar o valor para 0,2 V ou 200 mV ( 0 KPa) , ok ?: 

Variação total do fundo de escala é 4,5V e a variação máxima de pressão é de 0 a 1000 KPa. 

( essas informações estão no datasheet) 

 

    4,5 V / 1000 KPa  =  4,5 mV para cada 1 KPa ( concorda ?) 

Exemplo de leituras no Arduino  ( 0 a 1023)  para VCC = 5,0 V (importante isso ! ) 

5 V / 1024 = 0,0048828125  ( conversor de 10 bits = 2 elevado a 10 = 1024) 

Leitura 100 =  100 x 4,88 mV = 488 mV  ( cada bit LSB corresponde à 4,88 mV) 

                  488 mV - 200 mV = 288 mV  ( descontando o valor de 0 KPa) 

                  288 mV / 4,5 mV =  64 Kpa    (4,5 mV para cada 1 KPa)

Pressão = ( ( Leitura x 4,88mV ) - 200 mV ) / 4.5 mV 

( universitários me ajudem por favor na conferência da fórmula - acho que é isso)  

Se precisar converter para psi :

1.0 KPa (kiloPascal) é igual à  0.145 psi.

Alguma dúvida ?

Cara muito Obrigado, obrigado mesmo me ajudo muito, só mais uma coisa, meu sensor deve ser calibrado ? para dar o valor de 0,2V ou assim tbm funcionara corretamente?

Bom dia, Lucas. 

Na verdade o sensor não tem como ser calibrado. 

O seu Sketch que dever ser configurado para isso. 

Por exemplo 0 KPa = 0,195 V 

Faça bastante testes e se possível compare as suas medidas com um outro sensor de pressão (instrumento). 

Boa sorte. 

o que significa LSB? essa parte não entendi.

Eu fiz assim leitura saiu 40  40X0,004828125 =  0,193125 Volts

0,193125 X 1000 = 193,125mV

Pressão = (193,125 - 193,125)/4,5 = 0kpa

Exemplo com leitura de 100

100X0,004828125 = 0,4828125Volts

0,4828125 X 1000 = 482,8125mV

Pressão = (482,8125- 193,125)/4,5 = 64,375Kpa

Lucas boa tarde , 

Bit LSB é o bit menos signicativo ( least significant bit) . 

É o bit de menor valor em um Byte. 

https://en.wikipedia.org/wiki/Least_significant_bit

Como eu já falei , acho que o correto é 5 V / 1024 = 0,0048828125

O seu calculo é similar ao meu, só que multiplicou por 1000...

A diferença dos valores é por causa do bit que você desprezou ( 1023 ao invés de 1024). 

Boa sorte !

Olha o Sketch que fiz

int sensor= A0;
int Vsensor;
double pressao;


void setup() {
// put your setup code here, to run once:
Serial.begin(9600);

}

void loop() {
// put your main code here, to run repeatedly:
Vsensor = analogRead(sensor);

pressao = ((Vsensor*4.88)-195)/4.5;

Serial.print("Sensor = ");
Serial.println(Vsensor);
Serial.print("Kpa = ");
Serial.println(pressao,5);
delay(1000);
}

Bom dia Lucas, 

acho que é isso mesmo. Teste e depois nos informe se deu certo. 

( confira a pressão com um outro instrumento) 

pressao = ((Vsensor*4.88)-195)/4.5; 

O resultado será em K Pa.

Boa sorte !

Boa tarde JG, Como vai?

Estive olhando sua resposta, onde você cita:

"Se a medição do analogRead esta dando 40 => 40 x 0,0048828125 = 0,1953125 Volts."  

Tenho um sensor de pressão aqui comigo, mas não tem nada escrito nele, para ver o modelo.

Ai resolvi fazer o teste, e coloquei ele em uma porta analógica do arduino, para ver o que estava lendo.

Está lendo valor 45, o que pela sua formula, seria: 45 x 0,0048828125 = 0,2197265625.

Arredondei para 0,22V ou 220 mV, Certo?

Porém para tirar a prova, medi a saída com o multímetro e o resultado é surpreendente, a medida foi 180 mV.

Onde você acha que está o problema?

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço