Go Down

Topic: manômetro diferencial com MPX2050DP (Read 311 times) previous topic - next topic

wesleyvm

Olá,
estou precisando criar um manômetro para ler pressão diferencial no inicio e final de uma tubulação de PVC e vi que o MPX2050DP fornece um bom range de pressão. Porem vi em alguns post que é necessário usar um amplificador para aumentar o nível de saída para melhor leitura do arduino e não tenho experiencia com amplificadores. É realmente necessário o uso de um amplificador? (visto que preciso de trabalhar com quase todo o range de pressão que o sensor fornece). Se sim qual seria o modelo mais prático de trabalhar?
Datasheet do MPX2050: https://br.mouser.com/datasheet/2/302/MPX2050-1152068.pdf

bubulindo

Sim, precisarias dum amplificador.

Uma coisa que o datasheet não é muito claro é se podes alimentar o sensor com 5V e se sim qual o efeito na saída dele. O datasheet refere 10V de alimentação.

Como podes ver, a gama de saída são 40mV no máximo... o que dificilmente registará no AD do Arduino.

This... is a hobby.

wesleyvm

bubulindo, poderia me indicar qual amplificador usar?
Então a alimentação do sensor teria de ser feita com alimentação externa de 10V?

bubulindo

Não sei acerca da alimentação poder ser feita com menos de 10V. Para isso terias de testar mesmo com 5V.

Quanto ao amplificador, diria que um LM358 funcionaria.

https://www.onsemi.com/products/amplifiers-comparators/operational-amplifiers-op-amps/lm358

Para funcionar, podes usar a montagem 3 do site em baixo:

https://www.arrow.com/en/research-and-events/articles/fundamentals-of-op-amp-circuits

Quanto às resistências, a tensão de saída é 40mV ou seja 0.04V, para fazer o interface com o Arduino queres que a tensão chegue a 5V. Isso vai ser impossível porque alimentando o amplificador, vais sempre perder cerca de um Volt, então o melhor é apontares à tua saída estar algures nos 1.1V.

1.1V é o valor da referência interna do Arduino. Como podes ver aqui.
https://www.arduino.cc/en/Reference.AnalogReference

Ok, então fazendo as contas, Vo = Vi *(1 + R1/R2)

1.1 = 0.04 (1+ R1/R2)
Resolvendo, fica:
R1/R2 = (1.1 - 0.04)/0.04 = 26.5

Então R1 = 26.5 * R2

Se escolheres uma resistência de 1k para R1, R2 terá de ser 26.5k. Convém que R2 seja maior que 26.5k para garantir que o teu sinal fica sempre dentro de 1.1V. Não sei que lojas tens perto para arranjar resistências, então deixo isso ao teu cargo.

Podes também reverter o cálculo para descobrir qual vai ser o máximo que o ganho que escolheres dá para depois ser mais simples de calcular a pressão no Arduino.

É estranho porque eu lembro-me de ter um sensor parecido a estes, mas não me lembro de usar um amplificador... mas eu estava a medir pressão atmosférica, logo pode ser por isso.
This... is a hobby.

wesleyvm

Não sei acerca da alimentação poder ser feita com menos de 10V. Para isso terias de testar mesmo com 5V.

Quanto ao amplificador, diria que um LM358 funcionaria.

https://www.onsemi.com/products/amplifiers-comparators/operational-amplifiers-op-amps/lm358

Para funcionar, podes usar a montagem 3 do site em baixo:

https://www.arrow.com/en/research-and-events/articles/fundamentals-of-op-amp-circuits

Quanto às resistências, a tensão de saída é 40mV ou seja 0.04V, para fazer o interface com o Arduino queres que a tensão chegue a 5V. Isso vai ser impossível porque alimentando o amplificador, vais sempre perder cerca de um Volt, então o melhor é apontares à tua saída estar algures nos 1.1V.

1.1V é o valor da referência interna do Arduino. Como podes ver aqui.
https://www.arduino.cc/en/Reference.AnalogReference

Ok, então fazendo as contas, Vo = Vi *(1 + R1/R2)

1.1 = 0.04 (1+ R1/R2)
Resolvendo, fica:
R1/R2 = (1.1 - 0.04)/0.04 = 26.5

Então R1 = 26.5 * R2

Se escolheres uma resistência de 1k para R1, R2 terá de ser 26.5k. Convém que R2 seja maior que 26.5k para garantir que o teu sinal fica sempre dentro de 1.1V. Não sei que lojas tens perto para arranjar resistências, então deixo isso ao teu cargo.

Podes também reverter o cálculo para descobrir qual vai ser o máximo que o ganho que escolheres dá para depois ser mais simples de calcular a pressão no Arduino.

É estranho porque eu lembro-me de ter um sensor parecido a estes, mas não me lembro de usar um amplificador... mas eu estava a medir pressão atmosférica, logo pode ser por isso.
Vi em outro post alguém explicando que talvez seria melhor usar um amplificador INA128 ou parecido pois a precisão seria maior e mai indicado pra essa aplicação. Tem algum conhecimento disso?

bubulindo

Sim, o INA128 é um amplificador de instrumentação. Ou seja tem uma montagem inteira dentro do chip que facilita bastante e tem melhor performance que uma simples montagem como a que fiz.

This... is a hobby.

wesleyvm

Sim, o INA128 é um amplificador de instrumentação. Ou seja tem uma montagem inteira dentro do chip que facilita bastante e tem melhor performance que uma simples montagem como a que fiz.


E teria de montar algum circuito como o que vc me disse acima?

bubulindo

Com o INA128, o circuito básico é mais simples do que o anterior.
This... is a hobby.

wesleyvm

Com o INA128, o circuito básico é mais simples do que o anterior.
Você poderia me mostrar um exemplo de circuito se possível?

Outra pergunta, poderia ao invés de usar um amplificador, usar um módulo de conversão AD tipo Ads1115 que é de 16 bits que me daria uma resolução maior?

bubulindo

Página 18 deste ficheiro:

http://www.ti.com/lit/ds/symlink/ina128.pdf

Eu não faria isso. 16 bits normalmente são bastante difíceis de atingir devido a ruídos, etc...

Depois 0.04V são cerca de 1% de 3.3V. Ou seja, irias ter o teu AD a converter apenas dentro de 1% da sua escala o que iria deteriorar a leitura ainda mais.



This... is a hobby.

wesleyvm

Estou testando o sensor sem amplificador com a leitura sem a conversão para pressão e P1 e P2 aberto a atmosfera e a tensão de alimentação do Arduíno de 5V, mas leitura não sai do 512.

Não sei se estou utilizando os pinos corretamente, o datasheet também não explica muito como os utilizar (https://br.mouser.com/datasheet/2/302/MPX2050-1152068.pdf - na pagina 8 primeiro diagrama).
Não entendi pra que serve o pino - OUTPUT. o +OUTPUT não seria a saida de dados do sensor que vai no analog do arduino?

bubulindo

- output vai ao GND
+ output ao pino do Arduino.
This... is a hobby.

wesleyvm

Encontrei um circuito usando AD620 (Desse código : https://github.com/BioelectronicaB/SENSOR-DE-PRESION-DIFERENCIAL-/blob/master/SENSOR_DE_PRESION.INO).
Esse amplificador serial equivalente ou melhor que o INA128?

bubulindo

Não é melhor... Esse é semelhante ao que propus no primeiro post.

Tens o circuito aí à mão?
This... is a hobby.

wesleyvm

Não é melhor... Esse é semelhante ao que propus no primeiro post.

Tens o circuito aí à mão?
Este é o esquema que estou utilizando:
https://drive.google.com/open?id=1GvIEGbaFYpJ1TYQ990kV1l_els7BTRV4

Este é o codigo que estou utilizando só para ver se funciona:

int sensor=0;
float valorSensor;

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

void loop()
{
valorSensor=analogRead(sensor);
Serial.print(valorSensor);

delay(200);

}

Porém não estou conseguindo fazer leitura, não sei o circuito está certo.
Alguém pode me ajudar? É para meu TCC.

Go Up