Site icon AranaCorp

Usando um sensor de efeito Hall com Arduino

5
(3)

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

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

Fontes

How useful was this post?

Click on a star to rate it!

Average rating 5 / 5. Vote count: 3

No votes so far! Be the first to rate this post.

Exit mobile version