O sensor magnético linear de efeito Hall KY-024 reage na presença de um campo magnético. Está equipado com um potenciómetro para ajustar a sensibilidade do sensor e fornece duas saídas analógicas e digitais.
Material
- Computador
- Arduino UNO
- Cabo USB A Macho/B Macho
- Módulo sensor Hall KY-024
Princípio funcional
O módulo KY-024 consiste num sensor de efeito Hall linear SS49E e um duplo comparador diferencial LM393, um potenciómetro BOCHEN 3296). O comparador acoplado ao potenciómetro permite comparar o valor do sensor com um valor limiar, a fim de utilizar o sensor como um sensor “tudo ou nada”. Dois leds estão presentes no módulo. O led1 indica que o sensor é fornecido com tensão e o led2 indica que é detectado um campo magnético.

Esquema
O sensor de corredor tem uma saída analógica e uma digital. A saída analógica retorna uma imagem da medição e a saída digital retorna um estado alto ou baixo, dependendo do limiar dado pelo potenciómetro. Pode utilizar um ou outro de acordo com a sua candidatura. O módulo pode ser alimentado pela saída de 5V do microcontrolador.

Código
Para testar o sensor, vamos ler a saída digital e mostrar a saída analógica. Assim, utilizamos as funções de leitura analógica e de leitura digital.
//initiation des pins
int ledPin = 13; //pin pour la LED
int digitalPin = 2; //pin pour le capteur
int analogPin = A0; //pin pour le capteur
int digitalVal;
int analogVal;
void setup()
{
Serial.begin(9600); // vitesse de transmission
pinMode(ledPin, OUTPUT); //la pin est en sortie
pinMode(digitalPin, INPUT); //la pin est en entrée
}
void loop()
{
digitalVal = digitalRead(digitalPin);
if (digitalVal == HIGH) //condition "si" : la valeur numérique est au niveau haut
{
digitalWrite(ledPin, HIGH); //alors la led s'allume
}
else
{
digitalWrite(ledPin, LOW); // sinon la led s'éteint ou reste éteinte
}
analogVal = analogRead(analogPin);
Serial.println(analogVal); //afficher la valeur analogique
delay(100); //délai 100ms
}
Para passar o valor analógico a um valor físico, pode usar a função de mapa()
//transforme la valeur de 0 à 1023 vers 0 à 5V int volt=map(analogVal, 0, 1023, 0, 5); //transforme la valeur lue en Gauss int gss = map(volt, 1, 4, -1000, 1000);
Resultado
Se mover um íman para e longe do sensor, deverá ver o LED acender e apagar e o valor do sensor mudar.
Aplicações
- Construir um medidor de Gauss para fazer medições do campo magnético.