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.