Detectando campos magnéticos com o Sensor Hall KY-003
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!
Parabéns pelo post. Você ja usou um sensor com saída analógica ? J Godoi [email protected]
Obrigado !
Já vi esse tipo de sensor com saída analógica mas ainda não arrumei um para testar, mas é uma boa sugestão de post. 🙂
Abraço !
Pode ser usado para informar se uma porta (porta de casa ) está aberta ou fechda? Instalando o sensor no batente e um imã na porta, quando fechada o sensor identifica o campo do imã e manda informacao pro arduino? qual a distancia maxima entre o arduino e o sensor? obrigado.
Boa noite Rafael,
Funciona exatamente como você descreveu. Para melhores resultados, recomendo um ímâ de neodímio. Quanto à distância máxima, não sei te informar, só testando mesmo.
Abraço!
Qual a distância que esse sensor pode ter dele até o arduino pois como o sinal e digital pode ser longa essa distância. ?
Boa noite Rafael,
Não tenho a distância exata, mas não pode ser muito longe, senão você vai ter alguma perda de sinal, interrupções intermitentes, etc.
Abraço!
A que distância o sensor detecta o campo magnético?
Oi Danilo,
O alcance do sensor, pelo menos esse que eu testei, é bem limitado, mas se você usar por exemplo um ímã de neodímio, vai conseguir bons resultados.
Abraço!
estou com uma duvida quanto a distância de acionamento poderia chutar: 3cm 5cm utilizando um imã? e quanto ao angulo do imã para acionar? vlw
Tem como ele captar as ondas magnéticas do Celular???
Boa tarde, estou fazendo um projeto que utilizo os três componentes. É uma lixeira que separa metais e não-metais. O sensor vou para detectar a entrada e quero colocar um imã do outro lado da entrada para induzir o campo no material, porém estou com dúvida de como vou desconsiderar o campo magnético gerado pelo imã na programação, você saberia? O servo motor seria para abrir uma porta quando detectasse o metal.
você conseguiu fazer seu projeto?
Boa tarde, estou querendo utilizá-lo com um imã de hd para substituir o sensor indutivo, porém não estou conseguindo fazer a código, você pode me ajudar?
estou tentando montar a empilhadeira EP-3 que utiliza esse tipo de sensor com com imã. Como posso ligar na placa de arduino?