lunes, 18 de diciembre de 2017

Sensor de efecto Hall Aduino



Un sensor de efecto Hall es un dispositivo capaz de medir la densidad de flujo magnético que le atraviesa perpendicularmente. El sensor realiza esta medición detectando los cambios que se producen en una pequeña corriente que circula en su interior, estos cambios se producen debido al efecto Hall cuando una densidad de flujo magnético atraviesa el sensor, produciendo una separación de los portadores de carga, generando pequeña una tensión interna en el mismo conductor.

El sensor puede obtenerse solo o puede obtenerse montado en una placa Flying Fish, la cual provee la facilidad de darnos una salida digital por medio de un amplificador operacional LM393 en modo comparador, el cual realiza la comparación con respecto a una referencia dada por el nivel del potenciómetro incluido en el módulo, esta función es usada con el fin de detectar  un cambio repentino en el flujo magnético. El módulo también provee una salida analógica que puede ser usada para proveer una medida numérica de la densidad de flujo magnético que atraviesa el sensor. Debe mencionarse que, con el fin de obtener una medida numérica del campo magnético, debemos realizar primero una calibración del módulo.

La salida digital de este conjunto es utilizada usualmente como un encoder magnético, para medir rpm, colocando pequeños imanes en el elemento que gira. Por otro lado, la salida analógica es muy utilizada, como ya se dijo, para medir la densidad de flujo magnético. A continuación describimos los pines del módulo:

+ = Referencia positiva de 3.3 a 5V
G = Referencia negativa
D0 = Salida digital
A0 = Salida analógica

A continuación mostramos un ejemplo donde utilizamos el módulo con el fin de que nos de detectar la presencia de  una campo magnético superior a la referencia.

Esquema de conexión con Arduino UNO




Código Arduino

int pin_analogico = A1; // definimos los pines por los que
int pin_digital = A0;   // conectamos las salidas del módulo

void setup() {
Serial.begin(9600); //iniciamos la comunicación serial
pinMode(pin_digital,INPUT_PULLUP); //definimos como entrada
}

void loop() {

Serial.print("lectura analoga = ");
Serial.println(analogRead(A1));

// si la salida digital está en cero, es porque se ha superado el valor de referencia
// entonces se desplegará el mensaje: "salida digital activa"
if (digitalRead(pin_digital) == LOW)
{
  Serial.println("salida digital activa");
}
else
{
  Serial.println("salida digital inactiva"); // de otra forma de deplegará "salida digital inactiva"
}

}



Una vez subido el código y al abrir el monitor serial, podremos  observar el  valor medido en la salida analógica del módulo y  el estado de  la salida digital.



FIN DEL POST

0 comentarios:

Publicar un comentario

Display matricial 8x8 con Arduino SPI y MAX7219

La matrices led de 8x8 son elementos extremadamente útiles para desplegar mensajes que puedan ser visibles desde la distancia. ...