sábado, 3 de octubre de 2015

[Arduino 11] Sensor magnético (Efecto Hall)

En el tutorial de esta semana aprenderemos a utilizar el sensor de efecto hall. este es un sensor que me gusta bastante ya que se le puede dar múltiples aplicaciones de gran utilidad. Dentro de las mas comunes se puede usar como sensor de seguridad o alarma en puertas y ventanas, también puede ser utilizado como velocímetro en una bicicleta o en lo que te puedas imaginar. La idea es mas adelante ir armando circuitos mas complejos y mas interesantes, por ahora nos dedicaremos a conocer el sensor.

Objetivos

  1. Aprender a programar el modulo sensor de efecto hall
  2. Conocer el funcionamiento del sensor de efecto hall
  3. Aprender a programar una alarma en base al sensor magnético
Materiales
  • Arduino UNO, Arduino Pícaro o similar
  • Cable USB para arduino
  • Modulo sensor de efecto hall
  • Protoboard
  • Conectores
  • Imán (es importante el imán para poder activar y desactivar el sensor)
  • Buzzer (Alternativo como alarma sonora)
Una alternativa al sensor de efecto hall que estoy usando es un sensor magnético que se usa en sistema de alarmas que son bastante económicos y de igual manera sirven para estos circuitos.

Fotos del circuito


Funcionamiento sensor de efecto hall

Para usar un sensor hall, por este debe circular una corriente de tal manera que al acercarse un campo magnético vertical al sensor, este crea un voltaje saliente proporcional al producto entre la fuerza del campo magnético y la corriente, entonces de esta manera se puede calcular la fuerza de un campo magnético o se puede medir la corriente que circula por una bobina ya que estas producen un campo magnético en su funcionamiento. 
También podemos suponer para muchos casos que cuando tengamos un sensor de efecto hall y se le aproxime un campo magnético este proporcionara un 1 digital o 5 volts como se puede ver en la imagen siguiente.

Circuito

El circuito es bastante simple y lo he ilustrado de la siguiente manera ya que no pude usar el modulo sensor de efecto hall en fritzing. Se debe conectar el Vcc a los 5V de la placa arduino, GND a la tierra de la placa y el pin analógico y digital como se ve en la figura siguiente.

Sketch para usar el sensor de efecto hall


Con este primer programa solo veremos por la pantalla serie lo que nos entrega el sensor de efecto hall, para ello conectaremos el circuito como se muestra en la imagen anterior y usaremos el siguiente programa. Una vez cargado el programa solo basta con tener conectado el USB al arduino para luego abrir el puerto serie (CTRL+SHIFT+M)



Código para sensor de efecto hall
int analogSensor=0;
int digitalSensor=0;

void setup() {
        Serial.begin(9600);
        pinMode(7,INPUT);
}

void loop() {
        analogSensor=analogRead(2);
        digitalSensor=digitalRead(7);
        puertoSerie();
        delay(100);
}

void puertoSerie(){
        Serial.print("valor analogico: ");
        Serial.print(analogSensor);
        Serial.print(" valor digital: ");
        Serial.println(digitalSensor);
        return;
        }

Sketch para sensor de efecto hall y alarma sonora


Como yo no tenía un Buzzer para poner al circuito y con esto agregar una alarma sonora solo opte por poner una alarma luminosa (lo cual no es nada efectivo si alguien quiere entrar a robarnos u.u), o sea un led, este led se encenderá cuando no este en contacto el sensor de efecto hall al campo magnético del iman. Obviamente ustedes pueden optar por algo mas efectivo como un Buzzer.

Para lograr este objetivo debemos hacer un sketch que al detectar que el sensor esta en digital=0 active la alarma y es lo que veremos a continuación. De acuerdo al sketch debemos poner la alarma sonora en el pin 4 digital y el sensor hall lo mantendremos intacto a como esta en el ejemplo anterior.


Código para la alarma sonora
int analogSensor=0;
int digitalSensor=0;

void setup() {
        Serial.begin(9600);
        pinMode(7,INPUT);
        pinMode(4,OUTPUT);
}

void loop() {
        analogSensor=analogRead(2);
        digitalSensor=digitalRead(7);
        ALARMA();
        puertoSerie();
        delay(100);
}

void ALARMA(){
        if(digitalSensor==0){
                digitalWrite(4,HIGH);
                return;
                }
        else
                digitalWrite(4,LOW);
                return;
        }

void puertoSerie(){
        Serial.print("valor analogico: ");
        Serial.print(analogSensor);
        Serial.print(" valor digital: ");
        Serial.println(digitalSensor);
        return;
        }


Finalmente podemos decir que el sensor de efecto hall es muy útil para muchos proyectos que deseemos realizar, pero debemos usar la imaginación para crearlos. También se puede agregar que el ultimo circuito en el que se pone una alarma sonora se le puede agregar un botón de encendido y apagado junto a unas baterías e implementarlo de forma real en nuestra casa o usar un transformador para el arduino y alimentarlo de esta manera, pero el interruptor es importante para cuando se quiera apagar la alarma en días calurosos

Para mas adelante haré un tutorial con un velocímetro para bicicleta, utilizando un sensor igual a este, un imán y una pantalla LCD 2x16.



No olvides visitar la pestaña Tutoriales arduino y Lenguaje arduino, donde podrás encontrar la lista de tutoriales que he hecho hasta el momento. Como siempre muchas gracias por visitar mi blog y si tienen alguna consulta o consejo puede comentarlo por medio de este mismo blog.


4 comentarios:

  1. Muchas gracias, me ayudo mucho y era justo lo que tanto estaba buscando con el sensor especifico que contaba, creo que es el unico :D seria de mas ayuda hacerlo en youtube, todos tus tutoriales son buenísimos para cualquier arduino (Estudiante de Ing electrónica)

    ResponderBorrar
  2. muy interesante, agradezco mucho tu ayuda y me gustaria saber como poder conectar el LCD en este proyecto y poder contar cuantas veces registro el campo magnetico

    ResponderBorrar
  3. Exelente aporte. Muchas gracias

    ResponderBorrar
  4. Hola, buenos días.
    Estoy muy interesado en el tema, pero quisiera que no solo detectara la proximidad del campo magnético, sino su posición. Imaginemos un imán girando y el sensor estático al lado. Quiero averiguar los sucesivos valores para saber en todo momento en qué posición se encuentra el imán.
    Muchas gracias.

    ResponderBorrar