http://arduineando.matem.unam.
mx/proyectos/optoInterruptorInfrarrojo
Un optointerruptor infrarrojo
- componentes - circuito - cdigo - variantes - referencias - otros -
En este proyecto usaremos un optointerruptor infrarrojo como sensor.
Este optointerruptor infrarrojo esta formado por dos componentes. Un
led emisor de luz infrarroja y un fototransitor sensible a esta luz. Los
dos estan montados en una pequea estructura plstica, que les da
soporte y permite el paso de la luz infrarroja entre ambos
componentes, protegiendolos de otras emisiones de luz.
Para hacer funcionar el sensor, introducimos un cartn o una tarjeta en
la ranura y de esta manera impedimos el paso de la luz infrarroja entre
ambos componentes. Con esto cambiamos el estado de la salida del
sensor. Cuando pasa la luz, el fototransitor se activa y cierra el circuito,
con lo que tendremos 5 Volts a la salida. Cuando interrumpimos el paso
de luz, se desactiva y se abre el circuito, quedando en 0 Volts la salida.
Componentes
arduino
protoboard
un led
un optointerruptor infrarrojo ITR8102
2 resistencias de 220 oms (rojo, rojo, caf)
1 resistencia de 10 Koms (caf, negro, naranja)
al inicio
Circuito
El sensor tiene dos componentes que tenemos que conectar. Un led
emisor de luz infrarroja y un fototransitor sensible a esta luz.
En la parte superior del sensor, cada lado esta marcado con una
letra: E para el emisor y D para el detector. Y en ambos lados, tiene
tambin un simbolo + que marca la pata del nodo, el positivo, de cada
componente.
El led emisor lo tenemos que conectar como hemos conectado los
otros leds. La pata del nodo, el positivo, a 5 Volts. La pata del ctodo,
el negativo, a tierra, a travs de una resistencia de 220 Oms.
Del fototransitor, tenemos que conectar el colector, el positivo, a 5 Volts
y el emisor, a travs de una resistencia pulldown de 10 KOms a tierra.
Es en este mismo punto, la salida del emisor, donde conectaremos el
pin de entrada del Arduino para sensar. Si el fototransitor est
recibiendo la luz infrarroja, estar cerrado y entonces este punto estar
a 5 Volts. Si el paso de la luz infrarroja est interrumpido, el
fototransistor estar abierto y entonces tendremos los 0 Volts de la
resistencia pulldown.
Como en el caso del botn, instalaremos tambin otro circuito con un
led, para prenderlo y apagarlo segn el estado del sensor.
al inicio
Cdigo
El funcionamiento de este circuito es practicamente el mismo que el de
un botn con un led. Por lo que usaremos el mismo skectch.
/*
Un optointerruptor infrarrojo como sensor
Enciende y apaga un led cuando se interrumpe el paso de
luz entre el emisor y el receptor del sensor
El funcionamiento es similar al de sensando un boton
*/
// constantes para definir los pines del sensor y del led
const int pinSensor = 12; // el numero de pin del sensor
const int pinLed = 9; // el numero de pin del led
// variables para guardar los valores de los sensores
int estadoSensor = 0; // para leer y guardar el estado
del sensor
void setup() {
// inicializa el pin del led como de salida
pinMode(pinLed, OUTPUT);
// inicializa el pin del sensor como de entrada
pinMode(pinSensor, INPUT);
}
void loop(){
// lee el valor del estado del sensor y lo guarda en la
variable estadoSensor
estadoSensor = digitalRead(pinSensor);
// checa el estado del sensor con un if
if (estadoSensor == HIGH) {
// si es HIGH, el sensor esta activado por el paso de la luz
y se prende el led
digitalWrite(pinLed, HIGH);
}
else {
// entonces es LOW, el sensor esta desactivado, cortado el
paso de luz y se apaga el led
digitalWrite(pinLed, LOW);
}
}
al inicio
Variantes
En lugar de un slo led, podemos usar un led bicolor, que se prenda
en verde cuando el sensor este libre y en rojo cuando interrumpamos
la seal con algun objeto.
Prueba tambin este circuito con los sketchs del proyecto un boton
como switch y ve como funcionan. Con este tipo de sensor,
necesitaras usar el debouncing?
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.