Hola chicos, bienvenidos al tutorial de hoy. Hoy vamos a ver cómo utilizar un sensor de efecto Hall con Arduino.
Un sensor de efecto Hall es un sensor que varía su salida en función de la presencia o ausencia de un campo magnético. Esto significa que la señal de salida producida por un sensor de efecto Hall es una función de la densidad de campo magnético a su alrededor. Cuando la densidad de flujo magnético a su alrededor supera un determinado valor de umbral preestablecido, el sensor lo detecta y genera una tensión de salida que a veces se denomina tensión Hall para indicar la presencia del campo magnético.
Los sensores Hall se están haciendo muy populares debido a su versatilidad y se utilizan en muchas aplicaciones diferentes. Una de las aplicaciones populares de los sensores de efecto Hall es en los sistemas de automoción, donde se utilizan para detectar la posición, medir la distancia y la velocidad. También se utilizan en dispositivos modernos como teléfonos inteligentes y ordenadores, así como en diferentes tipos de interruptores en los que la presencia de un campo magnético se utiliza para activar o desactivar un circuito.
Los sensores Hall producen una salida analógica o digital dependiendo del sensor concreto. Sea cual sea el tipo, suelen venir en un paquete de tres pines con un pin para representar la señal y los otros dos para proporcionar energía al sensor. Esto facilita la conexión a cualquier microcontrolador.
Para el tutorial de hoy, demostraremos cómo funciona el sensor de efecto hall conectándolo junto a un LED a un Arduino. El Arduino se programará de forma que cuando se acerque un imán al sensor de efecto hall, el LED se encienda y cuando se retire el imán, se apague.
Componentes necesarios
Para construir este proyecto se necesitan los siguientes componentes.
- Sensor de efecto Hall
- Arduino Uno
- Breadboard mini
- LED
- Cables
- Imanes
Como siempre, los componentes exactos utilizados para este tutorial se pueden comprar a través de los enlaces adjuntos a cada uno de los componentes listados anteriormente.
Esquemas
El esquema de este proyecto es sencillo, ya que lo único que tenemos que hacer es conectar los tres pines del sensor hall y un LED al Arduino. Conecta los componentes como se muestra en el esquema de abajo.
A continuación se describe la conexión para que sea fácil de seguir.
Sensor de pared – Arduino
VCC - 5VGND - GNDSIG - D2
El LED se puede conectar directamente al Arduino con la pata positiva en el pin 13 del Arduino y la otra pata conectada al pin de tierra sin una resistencia porque el arduino tiene una resistencia interna conectada al pin 13.
Con los esquemas hechos, podemos proceder al código para este proyecto.
Código
El código para este proyecto es realmente simple, todo lo que queremos hacer como se mencionó anteriormente es comprobar si se detecta un campo magnético y si sí, encender el LED si no, apagamos el LED.
Para hacer una breve explicación del código de este proyecto, lo primero que hacemos es declarar los pines del Arduino a los que se conecta nuestro sensor hall y el LED, tras lo cual creamos una variable «state» que almacenará el valor del sensor hall.
////////////////////////////////////////////// // HALL EFFECT SENSOR DEMO // // Author: Nick Koumaris //// http://www.educ8s.tv ///////////////////////////////////////////////int hallSensorPin = 2; int ledPin = 13; int state = 0;
A continuación, pasamos a la función void setup donde declaramos el modo de los pines del Arduino a los que se conectan el LED y el sensor Hall.
void setup() { pinMode(ledPin, OUTPUT); pinMode(hallSensorPin, INPUT); }
A continuación está la función void loop, la tarea aquí es la misma que si queremos utilizar un pulsador para controlar un LED con un Arduino de por medio. Leemos la salida del sensor hall y la almacenamos en una variable llamada estado. Cuando el valor es BAJO, encendemos el LED, ALTO y cuando el valor es alto, encendemos el LED Bajo. La configuración de tu sensor hall puede ser diferente, ya que el sensor puede ponerse en Alto cuando se detecta un campo magnético. Esto debe ser confirmado en la hoja de datos del sensor.
void loop(){ state = digitalRead(hallSensorPin); if (state == LOW) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); }}
El código completo para este proyecto se muestra a continuación y también está disponible para su descarga en la sección de descargas al final de este tutorial.
////////////////////////////////////////////// // HALL EFFECT SENSOR DEMO // // //// http://www.educ8s.tv ///////////////////////////////////////////////int hallSensorPin = 2; int ledPin = 13; int state = 0; void setup() { pinMode(ledPin, OUTPUT); pinMode(hallSensorPin, INPUT); }void loop(){ state = digitalRead(hallSensorPin); if (state == LOW) { digitalWrite(ledPin, HIGH); } else { digitalWrite(ledPin, LOW); }}
Demo
Copia el código y súbelo a tu placa Arduino. Deberías ver que el LED se enciende cuando se le acerca un imán como se muestra en la siguiente imagen.