Tag Archives: sensores

Sensor de nível, tipo bóia. Montagem horizontal.

O princípio de funcionamento desses sensores é muito simples. Uma bóia com um magneto se movimenta livremente ao redor de um eixo que tem um reed switch em uma das pontas. Quando o nível da água sobe, a bóia sobe levando o magneto até o reed switch. Eletricamente é como uma chave se fechando.

Atenção: Esse é um produto para automação eletrônica e não deve ser usado para acionar diretamente nenhum tipo de carga nem é recomendável o uso de tensões superiores a 24VDC. Não use para acionar motores, nem contactores. O mau uso danificará o contato e um dos sintomas possiveis é que o contato não abrirá ou demorará a abrir.

Veja também o modelo com montagem vertical.

Postado em Produtos | Tags: , | 2 Comments

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;

 

Postado em Produtos | Tags: , , | 2 Comments

Módulo sensor de chuva / umidade com saídas digital e analógica

O sensor consiste de uma placa de 5x4cm com um desenho em forma de labirinto que forma o “sensor” ou “sonda” e um módulo eletrônico baseado no integrado comparador LM393 que é ajustado para a quantidade de água sobre o sensor que você deseja detectar.

Não é preciso usar microcontrolador (o Arduino) para usar este sensor. Ele pode ser conectado diretamente a um módulo de relê, um buzzer, etc., desde que não exceda a capacidade de corrente do LM393.

O módulo tem duas saídas:

  • Digital: Normalmente igual a VCC, mas quando o sensor é acionado, cai para 0V;
  • Analógica: Tem uma tenão de 0 a VCC proporcional à resistência da sonda. Com esta saída você pode detectar quantas gotas caíram na sonda (não exatamente) ou diferenciar entre uma gota e total imersão.

Note que a saída digital usa lógica inversa. Para acionar diretamente um buzzer, por exemplo, este tem que ser ligado entre o positivo e a saída digital. Este módulo é diretamente compatível com meus módulos de relês. A saída analógica também opera inversamente e sua tensão vai caindo à medida que aumenta a umidade.

O módulo tem dois LEDs:

  • Azul: indica que o módulo está alimentado;
  • Vermelho: indica que a saída digital está acionada.

Você não é obrigado a usar o sensor fornecido. Você pode construir o seu próprio, até com dois pedaços de fio com as pontas desencapadas. Quando as duas pontas tocarem o líquido, o LM393 detectará. A princípio essas pontas precisam estar bem próximas.

Como testar

Alimente o módulo e gire o potenciômetro no sentido horário até que o LED vermelho acenda. Volte um pouco até que apague. Encoste o dedo molhado no sensor e o LED vermelho acenderá.

Se quiser menos sensível, basta colocar sobre o sensor a quantidade de água que você quer que ele ignore e mover o potenciômetro até que o LED apague.

Aplicação prática

Com o temporal que se abateu em Recife em 17/05/2013, um problema de drenagem no nosso quintal fez com que a água subisse pelos ralos dos banheiros e acordamos com a casa já alagando.  Com a chegada desse produto, instalei um kit com buzzer e bateria de li-ion no chão do banheiro e outro no ralo do quintal para dar um alarme sonoro caso isso aconteça novamente. Pode nos dar tempo de reagir, com um aspirador de pó e água (essas coisas realmente funcionam) antes da casa estar alagada.  É claro que a solução mesmo é resolver o problema de drenagem, mas isso envolve escavar todo o quintal, que é todo cimentado, e não sabemos quando poderá ser feito.

Postado em Produtos | Tags: , | 2 Comments

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
2957 Downloads
Detalhes...
Datasheet Freescale MPX5050
386.9 KiB
1886 Downloads
Detalhes...
Postado em Produtos | Tags: , | 72 Comments

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);
}

Postado em Produtos | Tags: , | Deixe um comentário

Sensor infravermelho refletivo

  • Alimentação 5V;
  • Corrente 100mA (especificado pelo fabricante);
  • Lógica negativa – Saída 0V quando o sensor está atuado (a indústria chama de “sensor NPN”);
  • LED indicador de atuação;
  • Alcance ajustável de 3 a 50cm por trimpot;
  • Razoavelmente direcional. Colocado sobre uma mesa, não detecta a mesa mesmo com o ajuste  para cerca de 30cm. Para distâncias maiores ele começa a “ver” a mesa. 

Este sensor não requer arduino ou outro microcontrolador para ser usado. Por exemplo, ele pode ser conectado diretamente a qualquer uma das entradas dos módulos de relês que ofereço. Mas é claro que se algum condicionamento do sinal for necessário (um retardo, por exemplo), o arduino torna-se util.

Postado em Produtos | Tags: , | Deixe um comentário

Sensor de gases MQ-2 – Modelo com saídas analógica e digital

 

 

Este sensor usa o mesmo elemento de detecção, MQ-2, do modelo analógico, mas opera de maneira diferente. Neste modelo o trimpot é multivoltas e se destina a ajustar o ponto de gatilho da saída digital, não tendo qualquer interferência sobre a saída analógica.

Atenção: Eu não me responsabilizo pela eficiência deste sensor nem pelo resultado de quaisquer testes malucos que alguém venha a fazer para comprová-la. Não brinque com gases inflamáveis sem a assistência de um especialista. Se você não entende 100% do que está escrito nos datasheets (eu não entendo) então você precisa de orientação profissional para colocar esse sensor em uma aplicação séria. Considere tudo o que eu escrevo aqui como dicas amadoras apenas.

Para ter uma idéia da dificuldade envolvida, notar que os datasheets mostram gráficos de sensibilidade relativos a uma concentração de 1000ppm de hidrogênio, mas na nossa atmosfera a concentração não passa de 1ppm.

Postado em Produtos | Tags: | Deixe um comentário

Sensor de gases MQ-2 – Modelo com saída analógica apenas

 

Confira os datasheets do sensor MQ-2 aqui e aqui (são diferentes)

Segundo o datasheet, é capaz de detectar fumaça, GLP (gás de cozinha), butano, propano (são os dois gases presentes no GLP), metano,  hidrogênio e alcool.
Este sensor depende do aquecimento de um elemento interno para operar. Isso precisa ser levado em conta nos testes e, principalmente, na utilização. Por exemplo, é necessário que o seu programa conte um tempo desde o início da execução, quando uma leitura elevada do sensor deverá ser ignorada. Em caso de falta de energia o sensor irá esfriar e quando a energia voltar haverá um falso alarme se isso não for levado em conta.

Testes básicos de funcionamento

Você nem precisa do arduino para testar este sensor. Um multímetro na escala de tensão é perfeitamente capaz de exibir as variações na saída analógica.

Sketch de teste

const int analogInPin = A0; 

int sensorValue = 0;
int outputValue = 0; 

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

void loop() {
  sensorValue = analogRead(analogInPin);           
  Serial.print("sensor em A0 = " );                      
  Serial.println(sensorValue);     
 
  delay(500);                    
}

Alimente o sensor com +5V e a saída à entrada analógica A0. Monitore o valor usando o serial monitor.

Gire o trimpot inteiramente no sentido anti-horário para máxima sensibilidade.

Aguarde um minuto até que a leitura estabilize.

Você verá o valor presente na porta serial ir diminuindo.

Detecção de GLP

Coloque o sensor dentro de um copo.

Aponte um isqueiro para o fundo do copo e acione-o por uma fração de segundo (sem a chama – só queremos o gás). Você deverá ver a leitura dar um salto grande.Por exemplo, se estiver estabilizada em 300, a leitura vai saltar para mais de 700. Em seguida voltará ao normal vagarosamente.

Detecção de Alcool

Coloque a “cabeça” do sensor na boca de uma garrafa de alcool aberta. A leitura deverá saltar.

Postado em Produtos | Tags: | Deixe um comentário

Módulo sensor de movimento PIR

  • Alimentação: 4.5 a 20V (Informado pelo fabricante – eu só testei com 5V);
  • Saída: 3.2V (movimento detectado) ou 0V (sem movimento);
  • Proteção contra inversão de polaridade por diodo em série;
  • Funciona normalmente com o Arduino;
  • Ajustes de sensibilidade e tempo de atuação;
  • Controle de redisparo.

Este módulo é quase autônomo. Não é necessário um microcontrolador para fazer uso dele.

Com ajuste de sensibilidade e tempo que a saída fica ligada (de 3 segundos a 3 minutos – o tempo exato varia de módulo para módulo).

Como todo sensor PIR, é preciso esperar de 20 a 60s após energizar para que o sensor estabilize (warm-up). Isso sob condições normais de temperatura, porque em lugares muito frios, como uma câmara frigorífica, esse tempo pode chegar a vários minutos. Antes da estabilização o sensor não é confiável. Nos meus testes, percebi que todo movimento é ignorado nesse período. Este FAQ da empresa de produtos de segurança CROW tem mais informações interessantes sobre o comportamento de um sensor PIR.

Por meio de um jumper é possível configurar dois modos de redisparo:

  • Redisparável – Enquanto houver movimento o sensor continua com a saída ativa. O sensor “redispara” a cada movimento detectado e começa a contar o tempo para desligar, mas começa a contagem de novo se outro movimento for detectado antes.
  • Não redisparável – O sensor ignora qualquer movimento enquanto está contando o tempo para desligar

Alguns módulos não tem indicação de propósito dos trimpots. Olhando o módulo com os componente para cima o da esquerda é o de sensibilidade e o da direita o de tempo.

Postado em Produtos | Tags: | 2 Comments

Sensor de som

 

  • Alimentação 5V;
  • Saída analógica proporcional ao som;
  • Saída digital com limiar ajustado por trimpot multi-voltas.

Teste:

A placa tem dois LEDs:

  • L1 – Sempre ligado enquanto estiver energizado (power)
  • L2 – Sinaliza saída digital ligada.

O trimpot usado é do tipo multi-voltas infinito.

Vá girando o trimpot no sentido anti-horário até que L2 apague. Depois gire nos dois sentidos até que L2 fique em um limiar onde uma movimentação muito pequena no sentido horário acenda o L2. Bata com o dedo sobre o microfone ou com o módulo na mesa e L2 deve piscar acompanhando as batidas. O sensor estará funcionando.

Para ajustar à sua aplicação, vá fazendo testes movendo o trimpot mais no sentido anti-horário até que o sensor não dispare mais à toa mas ainda dispare com o som que você deseja. Por favor note que esse é um sensor muito simples, incapaz de diferenciar entre ruídos diferentes, por isso tem número limitado de aplicações.

Postado em Produtos | Tags: | Deixe um comentário