Home › Tag Archives › Medição

Sensor de fluxo YF-S201 – 30 litros por minuto

Atenção: produto em estoque mas ainda não analisado por mim. O que segue é basicamente informação obtida na internet ou por observações rápidas, que não foram ainda cuidadosamente conferidas.

O esquema de funcionamento desse tipo de sensor é simples. Dentro existe uma pequena turbina que é movimentada pelo fluido que passa por ele. As pás dessa turbina acionam um sensor de efeito hall que gera pulsos na saída a uma velocidade proporcional à velocidade do fluxo.

A seta indica a direção do fluxo. Ou seja: nessa posição do sensor o fluido deve entrar à esquerda e sair à direita.

  • Diâmetro da rosca: 1/2″;
  • Tensão de operação: Segundo algumas fontes (o fabricante não tem site) é de 5 a 18V. Outras que é de 3.5 a 24V. A princípio só garanto a operação em 5V.
  • A saída requer um resistor de pull up. A corrente máxima é de 15mA em 5V.
  • Taxa de pulsos: 450 pulsos por litro ou  0,45 pulso por mililitro;
  • Frequência de pulsos (Hz) = 7.5*fluxo(L/min) – O que corresponde a um máximo de 7.5*30=225 pulsos por segundo;

 

Sensores diferenciais de pressão Freescale / NXP

 

Nota: Os modelos com que trabalho são todos diferenciais, com sufixo “DP” (Differential Pressure). Por exemplo: MPX5010DP, MPX5050DP, MPX5100DP e MPX5700DP. Isso quer dizer que o sensor mede o valor da diferença de pressão entre as duas entradas. Deixando a entrada de vácuo aberta, o valor da pressão medida é a diferença para a pressão atmosférica.  Algumas aplicações exigem sensores absolutos (que tem o sufixo “AP” nessa série). Esta nota técnica da Honeywell diz que geralmente só são necessários em altímetros ou barômetros. E este texto da SensorOne sugere que você precisa usar sensores absolutos se quiser ter uma medida precisa em sistemas “fechados”, que não sofrem influência da pressão atmosférica, como a pressão interna de um cilindro de ar para detectar vazamentos. Mas se você quiser medir a pressão de saída do ar, do mesmo cilindro, ou se precisão não for de suma importância, usar sensores diferenciais já seria adequado.

Explicando de outra forma: se você quer medir pressão em recipientes que não estejam hermeticamente fechados (e por isso sofrem influência da pressão atmosférica), como tanques e reservatórios, o sensor diferencial é o mais adequado. Se você usar um sensor absoluto para medir a pressão em uma cisterna, vai ver a pressão mudar o tempo todo porque a pressão atmosférica muda o tempo todo ao nosso redor.  Como o diferencial usa como referência a pressão atmosférica, a mesma leitura fica estável.

Você pode identificar os sensores AP facilmente por terem apenas uma entrada. Eu não trabalho com a linha absoluta.

Modelos com que trabalho (links direto para datasheets no site do fabricante):

  • MPX5010DP: 0 a 10 kPa (0 a 1,45 psi – 0 a 0,1 bar – 0 a 1m de coluna de agua) – EM FALTA
  • MPX5050DP: 0 a 50 kPa (0 a 7,25 psi – 0 a 0,5 bar – 0 a 5m de coluna de agua)
  • MPX5100DP: 0 a 100 kPa (0 a 14,5 psi – 0 a 1 bar – 0 a 10m de coluna de agua)
  • MPX5500DP: 0 a 500 kPa (0 a 72.5 psi – 0 a 5 bar – 0 a 50m de coluna de agua) – EM FALTA
  • MPX5700DP: 0 a 700 kPa (0 a 101.5 psi – 0 a 7 bar – 0 a 70m de coluna de agua)

Esses sensores medem a pressão de qualquer fluido (água, óleo, ar, etc). A principal aplicação é a medição de nível em caixas d’agua, cisternas, máquinas de lavar, etc.

Nota de Aplicação, explicando como se faz o monitoramento de água, usando como exemplo uma máquina de lavar: AN1950. Observe que esta nota se refere a outra série de sensores de pressão, mas ignorando os valores de tensão a informação também se aplica a esta série.

Esta outra nota de aplicação explica como evitar ruído na saída do sensor: AN1646

O que muda entre os modelos é a resolução do sensor, pois o sensor de 5m não perceberá variações que o de 1m perceberia. Para dar uma idéia grosseira, onde o MPX5010 perceber uma variação de 1 litro, o MPX5050 só perceberá de 5 em 5 litros.

Não deixe a quantidade de pinos intimidar você. Apenas três são usados nesse modelo: VCC, GND e OUT. E para evitar confusão é assim que eu despacho o sensor:

A saída é analógica, de 0V a Vcc, proporcional à pressão aplicada. No Arduino, basta alimentar, conectar à entrada A0 (mas pode ser qualquer uma das entradas analógicas) e rodar o exemplo 03.Analog->AnalogInOutSerial do Arduino. Para traduzir o valor lido em litros é preciso que você calcule como a faixa de leitura do sensor (0-1024) mapeia para o volume do seu reservatório. Se você souber calcular volume e usar uma regra de três, já sabe quase tudo o que é necessário.

Também é possível medir vácuo, usando a outra entrada do sensor (mas é complicado e não recomendo). Inclusive é possível medir velocidade de fluxo do fluido, usando-se as duas entradas.

Este sensor é caro e delicado por isso merece atenção

Muito cuidado ao aplicar pressão no sensor. Com a seringa e o tubo que forneço, teoricamente você não vai conseguir aplicar mais pressão que a suportada pelo sensor. Mas basta reduzir o tamanho do tubo ou trocar a seringa por uma maior para pôr o sensor em risco. Sempre faça os testes de olho nos valores lidos, para evitar sobrecarga. O sensor parece ter uma certa proteção contra isso, mas eu não arriscaria algo desse valor só para ver até onde ele vai.

Lembre-se de que o ar é compressível e os líquidos não são. Se você encher a seringa de líquido o sensor vai reagir com um movimento muito menor.

Devido à sensibilidade do sensor, apertar o tubo com os dedos provocará uma variação grande na leitura. O mero movimento do tubo pode ser registrado no modelo MPX5010DP.

Segundo o datasheet, as entradas são protegidas com um gel, o que permite que eventualmente haja entrada de líquido no sensor sem dano imediato. Porém o “meio” recomendado pela Freescale para contato com o sensor é ar seco, por isso você deve deixar uma coluna de ar (quanto menor, melhor) entre o fluido que você quer medir e o sensor. Mesmo água pura pode danificar o sensor se houver contato prolongado. Estude a AN3728 (Media Compatibility for IPS PRT Pressure Sensors) para maiores informações.

Dos seis terminais, que são padrão nesse encapsulamento, apenas três são usados. Eu tomei a liberdade de isolar os terminais inúteis para reduzir as chances de engano na hora de ligar.

Os terminais de pressão e vácuo são idênticos e você não deve aplicar pressão no terminal de vácuo e vice-versa. Para evitar que você se confunda, eu etiquetei claramente o terminal de pressão.

Este sensor parece ter proteção contra inversão de polaridade. Se você ligar ao contrário, a alimentação fica em curto, o que de qualquer forma não é aconselhável. Tomei o cuidado de identificar os três terminais com cores.

Teste/exemplo

Ligue a saída do sensor no pino A0 do Arduino e rode o sketch Examples->Analog->AnalogInOutSerial. Observe a leitura pelo Monitor Serial.

O primeiro valor para um MPX5010DP deve começar por volta de 33 (não exatamente, mas sempre será um valor baixo). Esse é o valor na pressão ambiente. Esse valor deveria ser zero se o sensor fosse perfeito, mas não é. Procure no datasheet do modelo escolhido o valor Voff para ter uma idéia de qual o valor mínimo na saída do sensor.  Você pode mudar a faixa de valores reportados usando o comando “map”, conforme o exemplo.

Conecte uma seringa na entrada de pressão do sensor. Se você estiver usando um modelo sensível como o MPX5010 o simples fato de conectar a seringa já causará uma mudança no valor medido. Pressione o êmbolo e os valores devem subir proporcionalmente.

Eu não posso dar um exemplo com saída em litros, porque isso depende do volume do seu reservatório. 1cm de água em um copo ou numa piscina olímpica dão exatamente a mesma pressão e o mesmo valor de saída do sensor. Você precisa fazer os cálculos para determinar quantos litros correspondem a cada mm de coluna d’água no seu reservatório e depois mapear isso para os valores de saída do sensor.

Exemplo com calibração simplificada

O sensor não precisa ser calibrado, mas o equipamento que vai usá-lo precisa. De modo grosseiro o equipamento pode ser calibrado da seguinte forma:

  • Deixe as entradas desconectadas, para que o o sensor só sinta a pressão atmosférica. Leia o valor que a saída produz e registre esse valor como a constante “valorZero”;
  • Conecte o sensor ao sistema a medir e simule a máxima pressão. Se for uma caixa de água, encha-a. Leia o valor que a saída produz e registre esse valor como a constante “alturaMaxima”.

Digamos que você tenha instalado o sensor rente ao fundo do reservatório e que cheio esse reservatório tenha 800mm de água. Para saber quantos mm de água tem o reservatório num dado instante você pode usar a função map como a seguir:

mmDeAgua = map(saidaDoSensor, valorZero, alturaMaxima, 0, 800);

Essa função vai mapear todos os valores medidos entre os valores da calibração pra os valores “reais”.

Lembre-se: este é um exemplo simplificado. Sua aplicação pode exigir calibração e mapeamentos mais complexos.

Informação acrescentada por um visitante:

Para medir a vazão e/ou velocidade, consulte este texto.  A vazão (e, obviamente, a velocidade) podem ser expressadas a partir da raiz quadrada da pressão diferencial, uma vez que os outros parâmetros são fixos e deverão ser determinados experimentalmente…

Datasheet Freescale MPX5010
456.7 KiB
3536 Downloads
Detalhes...
Datasheet Freescale MPX5050
386.9 KiB
2640 Downloads
Detalhes...

Acelerômetro analógico MMA7361

O produto em estoque pode ser diferente do exibido abaixo (principalmente posição dos pinos), mas o funcionamento é o mesmo.

 

 

Teste básico

Você precisa conectar o acelerômetro como indicado abaixo.

Nota: A ligação de 3.3V a AREF só é necessária para o último exemplo, porque a biblioteca define AREF como EXTERNAL.

O seguinte sketch mostrará se o acelerômetro está funcionando:


void setup()
{
Serial.begin(9600);
 }

void loop()
{
for (int analogPin = 0; analogPin < 3; analogPin++) {
int sensor = analogRead(analogPin);
Serial.print(" ");
Serial.print(sensor);
   }

Serial.println(" ");
delay(100);
}

Usando uma biblioteca

Como você pode ver pelo sketch acima, não é realmente necessário usar uma biblioteca para usar o acelerômetro. Se tudo o que você precisa saber é a orientação, sem precisar saber valores precisos de ângulos e aceleração, basta uma interpretação simples dos valores das entradas analógicas. Mas se você precisar de algo um pouco mais compicado, uma biblioteca pode ajudar a manter o código organizado.

A melhor biblioteca que encontrei até agora foi a  AcceleroMMA7361.

Em anexo, um software escrito por mim que facilita o teste do acelerômetro. Para usá-lo, o arduino precisa estar rodando o seguiuinte sketch, que é uma ligeira modificação do exemplo RawData da biblioteca:


#include <AcceleroMMA7361.h>

AcceleroMMA7361 accelero;
int x;
int y;
int z;

void setup()
{
Serial.begin(9600);
accelero.begin(13, 12, 11, 10, A0, A1, A2);
accelero.setARefVoltage(3.3);      //sets the AREF voltage to 3.3V
accelero.setSensitivity(LOW);      //sets the sensitivity to +/-6G
accelero.calibrate();
}

void loop()
{
x = accelero.getXRaw();
y = accelero.getYRaw();
z = accelero.getZRaw();
Serial.print("\nx: ");
Serial.print(x);
Serial.print("\ty: ");
Serial.print(y);
Serial.print("\tz: ");
Serial.print(z);
delay(100);
}

Sensor de corrente ACS712

  • Mede corrente alternada ou contínua;
  • Opera por efeito hall – baixíssima resistência interna – Não interfere com o circuito a ser medido;
  • Eletricamente isolado até 2.1kV – Você pode medir corrente em um circuito vivo de 127, 220V ou 380V sem medo de levar choque na placa de medição;
  • Por medir CA, a saída é VCC/2 quando a corrente é zero. Para corrente negativa, a saída se aproxima de 0V. Para corrente positiva, a saída se aproxima de VCC;
  • É possível medir o valor RMS de uma corrente alternada desde que seja feita a amostragem de forma correta;
  • Disponível em modelos de 5A, 20A e 30A (mesmo preço);
  • Pode ser usado em qualquer projeto eletrônico (não é necessário haver um microcontrolador envolvido) e qualquer microcontrolador com entradas analógicas, mas só ofereço exemplos de uso e programas para o Arduino;

Datasheet do CI ACS712