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.
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.
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.
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!