Tabla de contenido:
- Paso 1: ¿Qué es un sensor de efecto Hall?
- Paso 2: ¿Qué es una interrupción?
- Paso 3: Conexiones y código
- Paso 4: Acciones adicionales
Video: Sensor de efecto Hall Arduino con interrupciones: 4 pasos
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
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?
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?
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
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
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:
Conversión del sensor de efecto Hall Logitech 3D Extreme Pro: 9 pasos
Conversión del sensor de efecto Hall Logitech 3D Extreme Pro: el control del timón de mi joystick se estaba apagando. Intenté desarmar las ollas y limpiarlas, pero no sirvió de nada. Así que comencé a buscar macetas de reemplazo y me encontré con algunos sitios web diferentes de hace varios años que hacen referencia
Raspberry Pi A1332 Precision Hall - Tutorial Java del sensor de ángulo de efecto: 4 pasos
Raspberry Pi A1332 Sensor de ángulo de efecto Hall de precisión Tutorial Java: A1332 es un sensor de posición de ángulo magnético programable de alta resolución sin contacto de 360 °. Está diseñado para sistemas digitales que utilizan una interfaz I2C. Está construido con tecnología Circular Vertical Hall (CVH) y una señal programable basada en microprocesador
Cómo construir su propio anemómetro usando interruptores de lengüeta, sensor de efecto Hall y algunos desechos en Nodemcu - Parte 2 - Software: 5 pasos (con imágenes)
Cómo construir su propio anemómetro usando interruptores de lengüeta, sensor de efecto Hall y algunos fragmentos en Nodemcu - Parte 2 - Software: Introducción Esta es la secuela de la primera publicación " Cómo construir su propio anemómetro usando interruptores de lengüeta, sensor de efecto Hall y algunos fragmentos en Nodemcu - Parte 1 - Hardware " - donde muestro cómo ensamblar la velocidad del viento y el indicador de dirección
Cómo construir su propio anemómetro usando interruptores de lengüeta, sensor de efecto Hall y algunos restos en Nodemcu. - Parte 1 - Hardware: 8 pasos (con imágenes)
Cómo construir su propio anemómetro usando interruptores de lengüeta, sensor de efecto Hall y algunos restos en Nodemcu. - Parte 1 - Hardware: Introducción Desde que comencé con los estudios de Arduino y la Cultura Maker me ha gustado construir dispositivos útiles utilizando chatarra y piezas de desecho como tapas de botellas, trozos de PVC, latas de bebidas, etc. Me encanta dar un segundo vida a cualquier pieza o cualquier compañero
Sensor de efecto Hall en Arduino usando Fidget Spinner: 3 pasos (con imágenes)
Sensor de efecto Hall en Arduino usando Fidget Spinner: Resumen En este proyecto, estoy explicando cómo funciona el sensor de efecto Hall midiendo la velocidad del fidget spinner con la placa arduino. funcionamiento: -Un sensor de efecto Hall es un transductor que varía su voltaje de salida en respuesta a un campo magnético. Efecto Hall