Usando o Sensor de Efeito Hall US1881
Introdução
O sensor de efeito Hall US1881 é capaz de emitir um sinal de acordo com a polaridade de um ímã. Ele pode ser usado como uma chave eletrônica que mantém sua saída digital em nível lógico baixo, e ao detectar a polaridade de um campo magnético, sua saída digital assume o nível lógico alto.
Sabendo disso, podemos criar diversos projetos, tais como: sensor de deslocamento, detector de metais magnéticos, entre outros. Neste tutorial iremos desenvolver uma simples conexão com o Arduino para exibir o pólo do ímã que foi detectado na porta serial, e posteriormente um acionamento de cargas.
Lista de Materiais
Lista completa de produtos
comprarBlackBoard UNO R3
Cabo USB AB 1.50m
Sensor de Efeito Hall
LED 5mm Vermelho (10 unidades)
LED 5mm Azul (10 unidades)
Resistor 10kΩ - Pacote com 10 unidades
Resistor 300Ω - Pacote com 10 unidades
Protoboard 400 Pontos
WorkPlate 400 - Preta
Jumpers Macho-Macho x40 Unidades
Conceitos Teóricos
Magnetismo
Magnetismo se refere a todo fenômeno, ou conjunto de fenômenos, de atração ou repulsão de corpos que se caracteriza como uma força dipolar, ou seja, que possui dois pólos. No caso de corpos magnéticos, como ímãs, a força magnética é originada no pólo Norte, em direção ao pólo Sul. Essa força resulta em uma atração de corpos caso os pólos sejam opostos, ou seja, o pólo Norte irá atrair o pólo Sul, e vice versa. Consequentemente, para pólos iguais, os corpos tendem a se repelir.
Alguns materiais metálicos, como o próprio ferro, não são capazes de gerar uma força magnética, porém são atraídos por elas. No entanto, existem já alguns métodos para imantar esses materiais, de modo que os mesmos passem a ter uma força magnética para atração ou repulsão. Além disso, graças à eletricidade, é possível criar um campo magnético através da passagem de corrente elétrica. Este fenômeno é denominado eletromagnetismo.
Sensor de Efeito Hall
O US1881 é um circuito integrado que é capaz de operar como um sensor de efeito Hall, detectando a polaridade de um campo magnético. Ele é capaz de identificar o pólo do ímã, entrando em nível lógico alto quando identificado um pólo Norte, e em nível lógico baixo para um pólo Sul, como na imagem abaixo.
Vale lembrar que este sensor mantém o último estado lido, mesmo na ausência de um campo magnético. Ele irá apenas alterar o seu estado caso haja uma alteração na polaridade do campo lido.
Projeto Identificando Pólos do Ímã
Circuito
Monte o circuito conforme a figura abaixo. Note que colocamos um resistor pull-up de 10 kΩ entre os pinos "VCC" e "OUT", responsável por definir a tensão de referência do sinal em 5 V.
Código
Copie o código abaixo e carregue-o para sua placa.
Entendendo o Código
No início do código, definimos o pino de conexão com o sensor (PINO_SENSOR
), e também criamos variável leitura_sensor
, responsável por armazenar o último estado do sensor.
Definimos o pino conectado ao sensor como uma entrada e, com o comando Serial.begin(9600)
, iniciamos a porta serial em 9600 bps.
No loop do programa, atribuímos à variável leitura_sensor
a leitura digital do pino do sensor. Em seguida, utilizamos a lógica if (leitura_sensor == HIGH)
para verificar se o estado lido do sensor está nível alto, e então, caso a condição seja verdadeira, imprimir na porta serial que foi identificado o pólo Norte do ímã. Caso contrário, com o comando else
, verificamos se o estado lido do sensor está em nível baixo, identificando, portanto, o pólo Sul do ímã.
O Que Deve Acontecer
Separe um imã e abra o serial monitor em 9600 bps. Ao aproximar o ímã do sensor, ele irá imprimir o pólo que ele está identificando, como na imagem a seguir.
Projeto Acionando Cargas com Ímã
Agora que aprendemos como funciona o sensor de efeito Hall, podemos incrementar nosso projeto acionando cargas. No nosso caso, iremos utilizar dois LEDs, um para cada pólo do ímã. Lembrando que você pode usar diversas cargas, sendo elas, relés, motores, entre outros.
Circuito
Para o projeto utilizando LEDs, monte o circuito conforme a figura abaixo.
Código
O código abaixo é igual ao do projeto anterior, porém adicionando comandos de controle dos LEDs, portanto copie-o e carregue-o para sua placa.
Entendendo o Código
Primeiramente, definimos os pinos para controle dos LEDs (PINO_LED_VERMELHO
e PINO_LED_AZUL
). Depois, na configuração do código, definimos ambos como saída do microcontrolador. E então, como boas práticas da programação, iniciamos a execução do código com os pinos dos LEDs em nível lógico baixo.
Assim como no código anterior, quando é identificado o nível alto na variável leitura_sensor
, o LED vermelho acende e o LED azul se mantém em nível baixo, identificando assim o pólo Norte do ímã. Caso contrário, o LED vermelho apaga e o LED azul vai para nível alto, indicando o pólo Sul do ímã.
O Que Deve Acontecer
Ao aproximar o ímã do sensor, caso seja detectado pólo Sul, o LED azul acende. Caso o sensor identifique o pólo Norte do ímã, o LED vermelho acende, como no GIF abaixo.
Indo Além
Neste tutorial vimos como realizar a leitura do sensor de efeito Hall US1881, e o seu funcionamento básico, porém são inúmeras suas aplicações. Alguns encoders de motores DC comuns utilizam um sensor de efeito Hall para ler a polaridade de um imã acoplado ao eixo do motor, conforme ele rotaciona. Essa rotação gera pulsos na saída do sensor, que podem ser usados para determinar a velocidade de rotação do motor.
Utilizando o mesmo princípio do encoder, o Sensor de Fluxo de Água também utiliza um imã acoplado a um eixo e um sensor de efeito de Hall, para determinar a velocidade de rotação de uma hélice. Essa velocidade de rotação pode ser utilizada para calcular o fluxo de água que está passando por ele, assim como calcular o volume total já passado. Caso você queira ver e entender melhor como funciona e como utilizar este sensor de fluxo, acesse o nosso tutorial Primeiros Passos com o Sensor de Fluxo.