Home › Tag Archives › sensores

Sensor de efeito hall S49e, 49e

hall_sensor_49e_automalabs.com.brEste sensor tem uma saída analógica que varia linearmente de acordo com a intensidade do campo magnético nas proximidades do sensor.

A tensão de saída do sensor “em repouso” (termo técnico: “tensão quiescente”) é metade da tensão de alimentação e varia para mais ou para menos de acordo com a intensidade e polaridade do campo. Ou seja: aproxime o pólo de um ímã e a tensão muda numa direção. Inverta a polaridade e a tensão mudará na direção inversa.

Suporta tensões de alimentação de 2.9 a 9V. Testado apenas com 3.3 e 5V.

O sensor satura com +-90mT (militesla) de fluxo.

A tensão máxima na saída do sensor quando saturado é um pouco menor que a tensão de alimentação. Por exemplo, com alimentação de 5V a saída será de no máximo 4.2V.

Sensibilidade de 14 a 18 mV por mT.

Usos:

  • Detecção de proximidade sem contato;
  • Medição de velocidade em máquinas rotativas;
  • etc.

Limitações

  • Não espere detectar campos magnéticos fracos com este tipo de sensor. Por exemplo, um ímã comum só é percebido por esse sensor quando está a alguns milímetros de distância;
  • Embora um dos usos do efeito hall seja detectar corrente elétrica, não espere encostar esse sensor em um fio e conseguir detectar algo. Quando aplicados a detecção de corrente os sensores hall são parte de um dispositivo maior que geralmente faz uso de um núcleo magnético para concentrar o campo produzido pelo fio (em outras palavras: você precisa de bem mais que o sensor para detectar algo).

Encapsulamento TO-92UA (minúsculo – menor que um transistor comum)

Para testar, basta alimentar e ligar a saída à entrada analógica A0 do Arduino e usar o exemplo padrão AnalogInOutSerial. Em repouso você verá na porta serial um valor próximo de 528. Qualquer valor muito diferente disso significa que há algum problema na ligação. Encoste um magneto no sensor e você deverá perceber variação nos valores para mais ou para menos dependendo do pólo que você encostar.

Você também pode, é claro, usar um multímetro. Em repouso a saída do sensor deve ser igual à metade da tensão de alimentação.

Sensor de distância ultra-sônico à prova dágua

sensor_ultra-som_DYP-ME007Y_IMG_1863_640_automalabs.com.br

sensor_ultra-som_DYP-ME007Y_IMG_1862_640_automalabs.com.br

Este sensor opera da mesma forma que o HC-SR04, usando os mesmos sketches e tem a mesma pinagem (encaixa no mesmo conector). Mas é preciso ficar atento para as seguintes diferenças:

  • Distância mínima de 30cm. Não consegue discernir nada mais próximo (o HC-SR04 vê tão perto quanto 2cm);
  • Distância máxima de 3m;
  • Requer mais energia. Essa é uma necessidade da blindagem. Com o arduino ligado apenas pela porta USB o sensor não funciona (dá sempre a mesma leitura), mas basta ligar uma fonte de 1A extra para resolver;
  • Altamente direcional. Durante os testes use um objeto do tamanho de uma prancheta, porque se usar apenas sua mão você vai ter grande dificuldade para posicioná-la na frente do sensor.

Sensor de distância ultra-sônico (ultra-som) HC-SR04

sensor_ultra-som_HC-SR04_IMG_1849_640_automalabs.com.br

sensor_ultra-som_HC-SR04_IMG_1864_640_automalabs.com.br

Este sensor não funciona se o shield Wiznet estiver plugado, mesmo que nenhuma biblioteca seja ativada.

sketch de teste

Requer Shield com keypad e display 1602

Exemplo testado com Arduino 1.05


// Jefferson Ryan - Automalabs.com.br
// Baseado em script de: luckylarry.co.uk
// Este sketech também demonstra o uso de Running Average.

#include <LiquidCrystal.h>
//Esta linha é específica para o display do shield com keypad
//se seu display for diferente você pode precisar mudar
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// variables to take x number of readings and then average them
// to remove the jitter/noise from the SRF05 sonar readings
const int qtdeLeituras = 10;                   // number of readings to take/ items in the array
int leituras[qtdeLeituras];                    // stores the distance readings in an array
int indice = 0;                             // arrayIndex of the current item in the array
int total = 0;                                  // stores the cumlative total
int distanciaMedia = 0;                        // stores the average value

// setup pins and variables for SRF05 sonar device

int echoPin = 2;                                // SRF05 echo pin (digital 2)
int triggerPin = 3;                                // SRF05 trigger pin (digital 3)
unsigned long tempoPulso = 0;                    // stores the pulse in Micro Seconds
unsigned long distancia = 0;                     // variable for storing the distance (cm)

void setup() {
lcd.begin(16, 2);

lcd.clear();
pinMode(triggerPin, OUTPUT);                     // set init pin 3 as output
pinMode(echoPin, INPUT);                      // set echo pin 2 as input

// create array loop to iterate over every item in the array

for (int estaLeitura = 0; estaLeitura < qtdeLeituras; estaLeitura++) {
leituras[estaLeitura] = 0;
}

}

void loop() {

digitalWrite(triggerPin, HIGH);                    // send 10 microsecond pulse
delayMicroseconds(10);                  // wait 10 microseconds before turning off
digitalWrite(triggerPin, LOW);                     // stop sending the pulse
tempoPulso = pulseIn(echoPin, HIGH);             // Look for a return pulse, it should be high as the pulse goes low-high-low
distancia = tempoPulso/58;                        // Distance = pulse time / 58 to convert to cm.

total= total - leituras[indice];           // subtract the last distance
leituras[indice] = distancia;                // add distance reading to array
total= total + leituras[indice];            // add the reading to the total
indice = indice + 1;                    // go to the next item in the array

// Ao chegar ao fim da matriz, voltamos a preencher do inicio
if (indice >= qtdeLeituras)  {
indice = 0;
}

distanciaMedia = total / qtdeLeituras;      // calculate the average distance

String myString = String(distanciaMedia, DEC);
myString +=" cm";
char charBuf[10];
//apago o conteúdo do array. Sem isso as leituras ficam completamente malucas,
//porque "toCharArray" não faz isso.
memset(charBuf, 0, sizeof(charBuf));
myString.toCharArray(charBuf, 10);

lcd.clear();
lcd.setCursor(1, 0);
lcd.print(charBuf);

// Serial.println(averageDistance, DEC);
/*Se o delay for muito baixo (10, por exemplo), alguns exemplares
sensores irão apresentar alta instabilidade a curtas distâncias
*/
delay(50);

}

Sensores de temperatura LM35 e DS18B20

LM35_DS18B20_IMG_1801_automalabs.com.br

  • LM35: saída analógica.
  • DS18B20: saída digital.

DS18B20

Para tirar o máximo proveito dos sensores com o mínimo esforço, você precisa desta biblioteca instalada:

  • OneWire 2 (Paul Stoffregen) – Clique em “Download ZIP”

E rode os exemplos da biblioteca. Mas se quiser simplificar ainda mais, instale também esta biblioteca:

E rode seus exemplos.

Daniel Quadros, da DQSOFT, tem posts sobre o uso deste sensor com o Arduino começando aqui e prosseguindo aqui.

LM35

Daniel Quadros também fala sobre esse sensor aqui.

 

 

 

Sensor óptico reflexivo TCRT5000

Sensor_TCRT5000_pinout_automalabs.com.br

Usado em diversas aplicações que envolvem detectar reflexão a uma curta distância (menos de 1cm) como, por exemplo, seguidores de linha.

Imagine esse sensor como uma chave. Mesmo a mais sensível chave mecânica ainda requer alguma força para ser acionada e pode eventualmente, após um grande número de acionamentos, começar a dar mau contato.  Esse tipo de sensor não tem nenhum desses problemas e por isso encontrou aplicação na detecção de fita em aparelhos de vídeo-cassete e em qualquer caso em que o espaço seja limitado.

Exemplo de uso no arduino:

http://www.bajdi.com/analogread-from-a-tcrt5000-sensor/

Datasheet sensor refletivo TCRT5000
305.9 KiB
1582 Downloads
Detalhes...

Sensor de fluxo – 5 litros por minuto

Sensor_fluxo_5litros_IMG_1782 _automalabs.com.br

Sensor_fluxo_5litros_IMG_1783 _automalabs.com.br

O princípio de funcionamento é o mesmo do sensor de 1-30 litros, mas esse sensor é para tarefas de maior precisão, como controle de fluxo de água em cafeteiras elétricas.

Não testei pessoalmente com água, mas encontrei em mais de uma fonte que o sensor dá 1560 pulsos por litro.

A fórmula fornecida é : litros por minuto = pulsos por segundo/26.

26 pulsos em 1 segundo  equivalem então a 1 litro por minuto.

26*60 segundos = 1560 pulsos/L

Isso dá uma resolução de 0,6mL por pulso.

Sensor seguidor de linha (line hunter / line hunting)

sensor_line_hunting_IMG_1787_640 _automalabs.com.br

sensor_line_hunting_IMG_1788 _automalabs.com.br

É equipado com um sensor óptico TCRT5000 ou equivalente e um comparador de voltagem LM393.  Usado em robôs para a detecção da linha pintada no chão. Você ajusta no trimpot até que a saída OUT indique se o sensor está sobre a linha ou não. Esse método é usado quando você precisa que o robô siga por um caminho pré-estabelecido, porque sem isso é difícil fazer até mesmo o robô andar em linha reta. Uma pequena diferença na rotação dos motores ou no diâmetro das rodas já provoca uma tendência de desvio de rota que essa técnica ajuda a corrigir.

Projetos mais elaborados podem precisar de mais de um sensor desses, porque uma vez que o sensor deixe de ver a linha você não tem certeza, apenas usando um, se o desvio foi para a esquerda ou para a direita. A correção é possível, mas envolve “chutar” uma direção e caso não encontre a linha em x milisegundos, ir para a outra direção. O movimento do robô fica tremido.

Usando pelo menos dois você já pode saber em que direção foi o desvio e corrigir de forma mais precisa.

Chaves ópticas (optical switches)

optical_switches_IMG_1790_automalabs.com.brDe um lado um LED e do outro um foto-transistor. O objetivo é detectar a presença de um objeto no intervalo entre os dois. Também é usada, juntamente com discos encoder, para detecção de movimento e medição de velocidade.

Sensor indutivo (metais).

Este sensor é apropriado quando o que você deseja detectar é metálico. Esse tipo de sensor é muito usado em esteiras, para contagem de peças.

Vantagens:

  • Ignora qualquer outra coisa;
  • Costuma ser mais barato que o sensor foto elétrico;
  • Você não precisa de um microcontrolador para usá-lo. O sensor é capaz de acionar cargas de até 300mA diretamente.

Desvantagens

  • Curto alcance, de uns 4mm. A peça precisa praticamente encostar no sensor para ser detectada. É claro que isso é vantajoso em certos casos.

IMG_0814_640_automalabs.com.br

  • Tipo: NPN (quando acionado, a saída é 0V);
  • Alcance: 4mm (depende do material);
  • Tensão de operação: 6 a 36V;
  • Corrente máxima: 300mA;

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

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 diretamente motores, relês ou contactores.

O modo seguro mais simples de usar esse sensor para acionar uma carga é ligá-lo à base de um transistor e usar esse transistor para acionar um relê.

 

Veja também o modelo com montagem horizontal.

sensor_nivel_boia_IMG_0921_automalabs.com.br