Sensor de campo magnético hall é um sensor que usa o efeito hall para detectar a aproximação de um campo magnético do sensor, gerando em sua saída um valor analógico ou digital, dependendo do tipo de construção do módulo. Aqui vamos mostrar como usar o módulo Sensor Hall KY-003 com Arduino.

Sensor Hall KY-003

Existem diversos tipos de sensor hall para utilização com Arduino. Alguns deles detectam a variação e intensidade do campo magnético e transferem essas informações ao pino de sinal de forma analógica, permitindo medir essa variação de forma confiável e precisa.

O sensor de campo magnético KY-003

Outros trabalham apenas com a saída de forma digital, que é o caso do Sensor Hall KY-003 que eu testei. Aproxime um ímã do sensor e você terá o valor 0 no pino de saída. Na ausência de campo magnético, o valor se manterá estável em 1.

Desta forma, o funcionamento é o mesmo de qualquer outro sensor ou botão que utilizamos com o Arduino: ligamos o pino de sinal do módulo sensor hall à uma porta digital, e tomamos uma ação de acordo com o estado 0 ou 1 dessa porta.

Esse tipo de sensor é ideal para configurações onde não há possibilidade ou necessidade de contato, como em um medidor de RPM de um motor ou um sistema de alarmes.

Esse módulo pode ser alimentado (pino central) com os próprios 5v do Arduino (tensão máxima suportada pelo módulo é de 24v DC). Conecte o pino da esquerda (-) ao GND e o pino da direita (S) à porta digital do seu Arduino.

Sensor Hall - Pinagem

Um led no lado esquerdo da placa indica a presença de sinal no pino de saída.

Circuito sensor hall KY-003 com Arduino

A conexão do sensor hall KY-003 com o Arduino é feita por meio da porta digital 4 (você pode usar outras portas digitais, se preferir). Na porta 6 conectamos o led que queremos controlar.

Circuito Arduino e sensor hall KY-003

O programa que utilizei para testar esse circuito é o mesmo que já usei no artigo Ligando uma lâmpada com relé e push-button, com pequenas alterações quanto às portas. A cada acionamento do sensor hall, o estado do led é invertido e permanece assim até que o sensor seja novamente acionado:

// Programa : Teste de acionamento Sensor Hall KY-003
// Autor : Arduino e Cia

// define a porta para o acionamento do led
int pinoled = 6;      
// Porta ligada ao pino SINAL do sensor
int pinosinal = 4;    
// Armazena informações sobre a leitura do sensor
int leitura;          
// Armazena o estado do led (ligado/desligado)
int estadoled = 0;   

void setup()
{
  //Define o pino do led como saida
  pinMode(pinoled, OUTPUT); 

  //Define o pino do sensor hall como entrada
  pinMode(pinosinal, INPUT);      

}

void loop()
{
  leitura = digitalRead(pinosinal);
  if (leitura != 1)
  {
    while(digitalRead(pinosinal) != 1)
    {
      delay(100);
    }
    // Inverte o estado
    estadoled = !estadoled;
    digitalWrite(pinoled , estadoled);  
  } 
}

Quer ver mais projetos usando sensores? Confira a categoria SENSORES do blog!

Avalie este post!