Você está na página 1de 5

http://arduineando.matem.unam.

mx/proyectos/sensorHall

Un sensor Hall
- componentes - circuito - diagrama - imgenes - cdigo - variantes - referencias - otros -

En este proyecto utilizaremos un sensor de efecto Hall para encender


un led utilizando el campo magnetico de un imn para activar el sensor.
El sensor Hall que vamos a utilizar es el US1881. Este es un sensor
digital con "latch", esto quiere decir que cuando lo activamos con un
campo magntico, nos dar una salida equivalente al voltaje de
entrada en el sensor y permanecer en ese estado aunque retiremos
el imn. Para desactivarlo y que la salida del sensor vuelva a 0 Volts,
hay que aplicarle un campo magntico con la polaridad inversa. Si lo
activamos con el polo norte del imn, lo tenemos que desactivar con el
polo sur.
- al inicio

Componentes
arduino
protoboard
un led
un sensor hall US1881
1 resistencia de 220 oms (rojo, rojo, caf)
1 resistencia de 10 Koms (caf, negro, naranja)
un imn

- al inicio

Circuito
El sensor hall que vamos a usar es un circuito integrado de 3 patas. La
pata izquierda es la entrada de alimentacin, que pondremos a 5 Volts.
La pata central, es la conexin a tierra. Y la pata de la derecha, es la
salida del sensor, que tendr entonces un valor de 5 o 0 volts. Es esta
ltima pata la que conectaremos a un pin digital de Arduino para
conocer el estado del sensor.
Este es un sensor de "colector abierto", por lo que tambin tenemos
que poner una resistencia de pull up entre la pata de alimentacin y la
pata de salida del sensor. Usaremos una resistencia de 10 KOms.
Por otra parte, como actuador usaremos el mismo circuito que hemos
venido usando con los otros sensores digitales, un led con su
resistencia.
- al inicio

Diagrama
- al inicio

Cdigo
El sketch que usaremos en este proyecto es muy similar al que usamos
para el botn con el led. Sensaremos el estado del sensor Hall y cada
que haya un cambio, cambiaremos el estado del led.
/*

Un sensor Hall con un led

Cambia el estado del led


cuando cambia el estado del sensor

*/

// constantes para definir los pines del sensor y del led


const int pinSensor = 12; // el numero del pin con el sensor
const int pinLed = 9; // el numero del pin para el led

// variables para guardar los valores de los sensores


int estadoSensor = 0; // variable para leer y guardar el
estado del sensor
int estadoAnterior = 0; // variable para guardar el valor
anterior del sensor
int estadoLed = 0; // variable para guardar el estado
del led

void setup() {
// Inicializa el pin del led como salida
pinMode(pinLed, OUTPUT);
// Incializa el pin del sensor como entrada
pinMode(pinSensor, INPUT);
}

void loop(){
// lee el estado del sensor en pinSensor
estadoSensor = digitalRead(pinSensor);
// checa si hubo un cambio en el sensor
if (estadoSensor != estadoAnterior){
estadoLed = 1 - estadoLed;
}

// actualiza el valor de estadoAnterior


estadoAnterior = estadoSensor;

if (estadoLed == 1) { // se checa el estado del


led
digitalWrite(pinLed, HIGH); // si es 1 prende el led
} else {
digitalWrite(pinLedV, LOW); // si no, apaga el led
}
}

- al inicio

Variantes
Podras usar otros de los programas que usan un botn. Que pasa?
- al inicio

Referencias:
Arduino Reference: digitalRead()
Referencia Arduino: digitalRead()
Funcin para leer el estado de un pin digital.

Arduino Reference: if()


Arduino Reference: if()/else
Referencia Arduino: if()
Referencia Arduino: if()/else
Estructura de control para checar el valor de una condicin; verdadero o falso.

Você também pode gostar