Tabla de contenido:

Sensor de efecto Hall Arduino con interrupciones: 4 pasos
Sensor de efecto Hall Arduino con interrupciones: 4 pasos

Video: Sensor de efecto Hall Arduino con interrupciones: 4 pasos

Video: Sensor de efecto Hall Arduino con interrupciones: 4 pasos
Video: Contador de REVOLUCIONES POR MINUTO o TACOMETRO con ARDUINO y sensor de EFECTO HALL 2024, Mes de julio
Anonim
Image
Image
¿Qué es un sensor de efecto Hall?
¿Qué es un sensor de efecto Hall?

Hola a todos, Hoy te mostraré cómo puedes conectar un sensor de efecto Hall a un Arduino y usarlo con una interrupción.

Herramientas y materiales utilizados en el video (enlaces de afiliados): Arduino Uno:

Sensores de efecto Hall:

Resistencias surtidas:

Paso 1: ¿Qué es un sensor de efecto Hall?

¿Qué es un sensor de efecto Hall?
¿Qué es un sensor de efecto Hall?
¿Qué es un sensor de efecto Hall?
¿Qué es un sensor de efecto Hall?
¿Qué es un sensor de efecto Hall?
¿Qué es un sensor de efecto Hall?

Un sensor de efecto Hall es un dispositivo que se utiliza para medir la magnitud de un campo magnético. Su voltaje de salida es directamente proporcional a la fuerza del campo magnético que lo atraviesa.

Los sensores de efecto Hall se utilizan para aplicaciones de detección de proximidad, posicionamiento, detección de velocidad y detección de corriente.

Con el que trabajaré hoy está etiquetado como 3144, que es un interruptor de efecto Hall que se usa principalmente para aplicaciones de alta temperatura y automotrices. Su salida es alta por defecto y baja una vez en presencia de un campo magnético.

El sensor tiene 3 pines, VCC, tierra y salida. Puede identificarlos en ese orden si sostiene el sensor con las etiquetas hacia usted. VCC está a la izquierda y la salida está a la derecha. Para evitar cualquier desviación de voltaje, se está utilizando una resistencia de 10k entre VCC y la salida en una configuración pull-up.

Paso 2: ¿Qué es una interrupción?

¿Qué es una interrupción?
¿Qué es una interrupción?
¿Qué es una interrupción?
¿Qué es una interrupción?

Para conectar el sensor en el Arduino, usaremos una función simple pero muy poderosa llamada Interrupción. Un trabajo de interrupción es para asegurarse de que el procesador responda rápidamente a eventos importantes. Cuando se detecta una determinada señal, una interrupción (como su nombre indica) interrumpe lo que esté haciendo el procesador y ejecuta un código diseñado para reaccionar a cualquier estímulo externo que se esté alimentando al Arduino. Una vez que el código se ha completado, el procesador vuelve a lo que estaba haciendo originalmente como si no hubiera pasado nada.

Lo asombroso de esto es que estructura su sistema para reaccionar rápida y eficientemente a eventos importantes que no son fáciles de anticipar en el software. Lo mejor de todo es que libera su procesador para hacer otras cosas mientras espera que aparezca un evento.

El Arduino Uno tiene dos pines que podemos usar como interrupciones, pin 2 y 3. La función que usamos para registrar el pin como una interrupción se llama attachInterrupt donde como primer parámetro enviamos el pin a usar, el segundo parámetro es el nombre de la función que queremos llamar una vez que se detecta una interrupción y como tercer parámetro enviamos en el modo en el que queremos que funcione la interrupción. Hay un enlace en la descripción del video a la referencia completa de esta función.

Paso 3: Conexiones y código

Conexiones y código
Conexiones y código
Conexiones y código
Conexiones y código
Conexiones y código
Conexiones y código

En nuestro ejemplo, conectamos el sensor de efectos Hall al pin 2 del Arduino. Al comienzo del boceto, definimos las variables para el número de pin del LED incorporado, el pin de interrupción y una variable de byte que usaremos para modificar a través de la interrupción. Es crucial que marquemos este como volátil para que el compilador pueda saber que se está modificando fuera del flujo del programa principal a través de la interrupción.

En la función de configuración, primero especificamos los modos en los pines utilizados y luego adjuntamos la interrupción como se explicó anteriormente. Otra función que usamos aquí es digitalPinToInterrupt que, como su nombre lo indica, traduce el número de pin al número de interrupción.

En el método principal, simplemente escribimos la variable de estado en el pin del LED y agregamos un retraso muy pequeño para que el procesador tenga tiempo de funcionar correctamente.

Donde adjuntamos la interrupción, especificamos blink como el segundo parámetro y este es el nombre de la función a llamar. En el interior, simplemente invertimos el valor del estado.

El tercer parámetro de la función attachIntertupt es el modo en el que opera. Cuando lo tengamos como CAMBIO, la función de parpadeo se ejecutará cada vez que cambie el estado de interrupción, por lo que se llamará una vez una vez que acerquemos el imán al sensor y se vuelva a disparar una vez que lo retiremos. De esta forma, el LED se enciende mientras mantenemos el imán cerca del sensor.

Si ahora cambiamos el modo a RISING, la función de parpadeo solo se activará una vez que se vea un flanco ascendente de la señal en el pin de interrupción. Ahora, cada vez que acercamos el imán al sensor, el LED se apaga o se enciende, por lo que básicamente hicimos un interruptor magnético.

El modo final que vamos a probar es LOW. Con él, cuando el imán está cerca, la función de parpadeo se activará constantemente y el LED parpadeará, teniendo su estado invertido todo el tiempo. Cuando retiramos el imán, es realmente impredecible cómo terminará el estado, ya que esto depende del momento. Sin embargo, este modo es realmente útil si necesitamos saber durante cuánto tiempo se presionó un botón, ya que podemos usar funciones de temporización para determinarlo.

Paso 4: Acciones adicionales

Otras acciones
Otras acciones

Las interrupciones son una forma sencilla de hacer que su sistema responda mejor a las tareas urgentes. También tienen el beneficio adicional de liberar su `bucle ()` principal para enfocarse en alguna tarea principal en el sistema. (Encuentro que esto tiende a hacer que mi código esté un poco más organizado cuando los uso; es más fácil ver para qué se diseñó la parte principal del código, mientras que las interrupciones manejan eventos periódicos). El ejemplo que se muestra aquí es casi el más Caso básico para usar una interrupción: puede usarlos para leer un dispositivo I2C, enviar o recibir datos inalámbricos, o incluso arrancar o detener un motor.

Si tiene un uso interesante de una interrupción o un sensor de efectos de sala, asegúrese de hacérmelo saber en los comentarios, haga clic en Me gusta y comparta este Instructable, y no olvide suscribirse a mi canal de YouTube para obtener más tutoriales y proyectos increíbles en el futuro.

¡Saludos y gracias por vernos!

Recomendado: