A partir dos passos abaixo você vai aprender fazer a…
Como usar com Arduino – Sensor Hall de Campo Magnético KY-024
– Descrição:
O Sensor Hall de Campo Magnético KY-024 é um módulo eletrônico desenvolvido com a finalidade de detectar a aproximação de um campo magnético. Este sensor pode detectar posições ou velocidade de um motor, por exemplo. Ao detectar um campo magnético, o sensor sofre uma variação em sua saída (analógica ou digital).
– Especificações e características:
– Modelo: KY-024
– Sensor Hall: 49E
– Controlador: LM393
– Tensão de operação: 5VDC
– Saída digital e analógica
– LED indicador para presença de tensão
– LED indicador para saída digital
OBS: o sensor possui um trimpot para ajuste da sensibilidade de detecção do campo magnético.
– Datasheet:
– Aplicações:
Projetos com Arduino ou outras plataformas microcontroladas em que seja necessário fazer a detecção de um campo magnético, medir a intensidade do mesmo ou contagem de RPM de um motor.
– Proposta da prática:
Utilizar o Sensor Hall de Campo Magnético KY-024 em conjunto com o Arduino e um imã, para verificar a intensidade do campo magnético e detectar a presença do mesmo. A intensidade do campo magnético será representada por um valor de tensão lido no pino analógico A0. Quanto menor a tensão lida no pino, maior a intensidade do campo magnético. A detecção do campo magnético será feita através do pino digital 8. Ambas as informações serão mostradas no monitor serial do ambiente de programação do Arduino.
– Lista dos itens necessários:
01 – Arduino com Cabo USB
01 – Sensor Hall de Campo Magnético – KY-024
04 – Cabos Jumper macho-fêmea
01 – Imã
– Esquema de ligação da prática
– Tutorial de instalação e configuração do ambiente de programação do Arduino:
Arduino – Instalação e Configuração da IDE no Windows
– Código:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
int pinoAnalogico = A0; //PINO ANALÓGICO (MEDE A INTENSIDADE DO CAMPO MAGNÉTICO) int pinoDigital = 8; //PINO DIGITAL (DETECTA A PRESENÇA DO CAMPO MAGNÉTICO) void setup (){ pinMode(pinoAnalogico, INPUT); //DEFINE O PINO COMO ENTRADA pinMode(pinoDigital, INPUT); //DEFINE O PINO COMO ENTRADA Serial.begin(9600); //INICIALIZA A SERIAL } void loop (){ Serial.print("Intesidade do campo magnético(Pino A0): "); //IMPRIME O TEXTO NO MONITOR SERIAL Serial.print(analogRead(pinoAnalogico) * (5.0 / 1023.0)); //IMPRIME NO MONITOR SERIAL UM VALOR //DE TENSÃO QUE REPRESENTA A INTENSIDADE DO CAMPO MAGNÉTICO Serial.println("V"); //IMPRIME O TEXTO NO MONITOR SERIAL Serial.print("Detecção do campo magnético(Pino D8): "); //IMPRIME O TEXTO NO MONITOR SERIAL if(digitalRead(pinoDigital) == HIGH){ //SE LEITURA DO PINO FOR IGUAL A HIGH, FAZ Serial.println("Detectado"); //IMPRIME O TEXTO NO MONITOR SERIAL }else{ //SENÃO Serial.println("Não detectado"); //IMPRIME O TEXTO NO MONITOR SERIAL } Serial.println("----------------------------------------------------------------"); //IMPRIME O TEXTO NO MONITOR SERIAL delay(500); //INTERVALO DE 500 MILISSEGUNDOS } |
– Resultado final:
Gostou desta prática? Então deixa seu comentário, dúvida ou sugestão aí embaixo!
Loja online: https://www.masterwalkershop.com.br
Fan page no Facebook: https://www.facebook.com/masterwalkershop
Nos ajude a espalhar conhecimento clicando no botão de compartilhar (f Like) que está mais abaixo.
Obrigado e até a próxima!
Seu feedback é muito importante! Que tal dar uma nota para esta postagem?! Faça sua avaliação aqui embaixo.
Postagem anterior: Como usar com Arduino – Módulo Led RGB KY-016
Boa tarde. Como posso obter um código com sensor hall para calcular rpm de um motor?
Gostaria e saber se daria para substituir um potenciômetro usando o sensor Hall no controle de velocidade de motor DC?
Olá Euler, gostaria de saber se tem como medir a intensidade do campo magnético e mostrar esse valor no monitor serial? Obrigado
Olá Igor.
Agradeço pelo comentário!
Através do pino analógico é possível sim.
Ola, não sei se ainda tem duvidas diante desse problema, mas apos a transformação feita para volts :
analogRead(A0) * (5/1023);
você multiplica esse valor pela razão encontrada na data sheet (graficamente), que, varia de sensor para sensor, mas costuma ser de 1,5 milivolts (0,0015 volts) para cada unidade de Gauss.
Olá Euler.
Este sensor detecta um campo magnético gerado por um fio energizado também, mesmo sem precisão, apenas se há uma corrente ali ou não?
Olá Hudson.
Agradeço pelo comentário!
A detecção do sensor parte da intensidade magnética. Se for baixa ele não irá detectar.
Boa noite, Euler
Que forma você recomendaria para detectar uma intensidade magnética da ordem de nano Tesla?
Teria que utilizar outro sensor? Se sim, qual?
Grato desde já, Gabriel
Olá Gabriel.
Agradeço pelo comentário!
Infelizmente desconheço outro sensor para te indicar.
Recomendo que pesquise por sensores industriais com esta finalidade.
Gostaria de saber se consigo adicionar buzzer após detecção do metal ! Se sim teria como vc me mandar diagrama das ligações. Obrigado
Olá Marcio.
Agradeço pelo comentário!
Consegue sim.
Acesse a postagem abaixo e veja o código. Você pode mesclar ambos os códigos para chegar ao resultado que precisa:
https://blogmasterwalkershop.com.br/arduino/como-usar-com-arduino-buzzer-5v-ativo
O campo magnético de um fio condutor retilíneo no ar é muito baixo, praticamente nulo se ele estiver com o par negativo, mas é proporcional a corrente. Por essa razão é necessário utilizar um núcleo e enrolamento para aumentar o campo magnético, você pode usar um indutor do tipo solenoide e colocar o sensor na ponta. Indutor toroidal não funcionaria, pois o campo é em maior parte interno ao núcleo.
Olá, muito interessante este trabalho. Estou tentando replica-lo, porém com a unidade de tesla metro^2. Gostaria de saber que cálculo que tu estas fazendo no código ali? Serial.print(analogRead(pinoAnalogico) * (5.0 / 1023.0)). O que seria essa divisão, 5/1023?? Obrigado
Olá Victor.
Agradeço pelo comentário!
O pino analógico gera um valor entre 0 e 1023 bits de acordo com a saída do sensor. Entenda 0 bits = 0V e 1023 bits = 5V.
A fórmula em questão apenas converte a leitura em bits para um valor em volts. Supondo que a leitura no pino analógico em que o sensor está conectado seja de 512 bits:
512 * (5.0 / 1023.0) => 512 * 0.00488758553 => 2,50V
Portanto, a leitura do pino analógico (em bits) equivale a 2,50 volts.