Sensor Infrarrojo Básico
Introducción
Con esta guía usted aprenderá como construir un sensor infrarrojo básico y cómo configurarlo con Arduino.
El sensor infrarrojo es uno de los mas utilizados en el mundo Maker, los podemos encontrar en diversos proyectos desempeñando variedad de funciones:
- Barrera
- Interrupción
- Aproximación
- Etc
Tipos de sensores infrarrojos
Los sensores infrarrojos IR pueden ser pasivos o activos:
- Los sensores de infrarrojos pasivos son, básicamente, detectores de infrarrojos. Los sensores de infrarrojos pasivos no utilizan ninguna fuente de infrarrojos y detecta la energía emitida por los obstáculos en su campo de visión.
- Los sensores de infrarrojos activos consisten en dos elementos: las fuentes infrarrojas (LED infrarrojo) y los detectores de infrarrojos (fototransistor). Estos ultimos son los explicados en esta guia.
¿Cómo funcionan?
Los sensores infrarrojos activos prensentan el LED infrarrojo y el fototransistor colocados uno al lado del otro, de forma que el LED actúa como emisor y el fototransistor como receptor.
Algunos emisores los encontramos transparentes o con un ligero color en púrpura y los receptores en trasparentes o negros, estos últimos por un filtro UV que les permite trabajar mejor incluso expuesto a la luz solar.
El LED infrarrojo emite luz infrarroja, o sea, de mayor longitud de onda (o menor frecuencia) que la podemos ver los humanos, así que para nosotros es invisible.
- Si esta luz choca contra una superficie blanca se reflejará y llegará al fototransistor.
- Si por el contrario golpea en una superficie negra, el material absorberá la mayoría de la luz y no llegará al fotoreceptor.
Conexiones
Su configuración consiste básicamente en mantener el LED Infrarrojo encendido y estarlo monitoreando a través del fototransistor, el cual trabaja a manera de compuerta cerrada cuando esta en reposo y abierta cuando es excitado por la luz infrarroja.
Existen dos tipos de configuración según el propósito y la información que se quiera mandar al microcontrolador:
- La opción A es un clásico Pull Up que en la salida al Pin proporciona un estado alto (HIGH) cuando el fototransistor se encuentra en reposo (cerrado) y un estado bajo (LOW) cuando esta excitado (abierto).
- La opción B funciona de manera inversa.
Para el ejemplo usaremos la opción A.
Al ser un sensor de luz infrarroja su valor puede variar dependiendo de la intensidad del LED, la distancia entre ambos componentes e incluso por la luz natural, así que el fototransistor (receptor) tendrá que ser conectado a un Pin analógico para poder leer su variación.
Código
El código es simple, solo leemos la variación de la lectura y la comparamos con un valor definido.
Dependiendo de para que se este usando podemos hacer una cosa cuando la lectura esta por debajo de nuestro valor definido u otra cuando esta sobre el, para el ejemplo solo encenderemos/apagaremos un LED.
const int analogInPin = A1; //Pin analogico 1 para la lectura del fototransistor
const int OutPin = 13; //Pin para el led indicador
int sensorValue = 0; //Inicializamos el valor del sensor
void setup() {
Serial.begin(9600); //Inicializamos la comunicación serial a 9600 bps
pinMode(OutPin, OUTPUT);
}
void loop() {
sensorValue = analogRead(analogInPin); //Leemos el pin
//y asignamos el valor a la variable
if(sensorValue > 900) { //Si el valor obtenido es >900
digitalWrite(OutPin, HIGH); //se activa el LED
}
else {
digitalWrite(OutPin, LOW);
}
Serial.print("sensor = " ); //Imprimimos el valor en el monitor
Serial.println(sensorValue);
delay(100);
}