Saltar al contenido
Empezando con Arduino - 3B: Sensores infrarrojos (Sharp y QRD1114)

Empezando con Arduino - 3B: Sensores infrarrojos (Sharp y QRD1114)

Proyecto 3: Sensores

Circuito 3B: Sensores infrarrojos (Sharp y QRD1114)

En esta práctica aprenderemos a utilizar los sensores Sharp y QRD1114 para realizar mediciones de obstáculos y controlar el encendido de LEDs cuando se detectan objetos a ciertas distancias.

Para la serie de proyectos Empezando con Arduino, estamos utilizando este kit. Podrás contar con todos los componentes necesarios para todas las prácticas de esta serie si adquieres el kit. De lo contrario, podrás realizar las prácticas con la lista de materiales a continuación: 

Materiales: 

Los sensores infrarrojos son dispositivos detectores de obstáculos, los cuales detectan la presencia de un objeto mediante la reflexión que produce en la luz. 

Figura 1: Funcionamiento de sensores infrarrojos.
Figura 1: Funcionamiento de sensores infrarrojos.

 

Como se puede ver en la Figura 1, este tipo de sensores se constituyen de un LED emisor de luz infrraroja y de un fotodiodo que recibe la luz reflejada por algún obstáculo.

Paso 1: Usando el sensor Sharp GP2Y0A02YK0F

El Sharp GP2Y0A02YK0F está compuesto por un LED infrarrojo junto con dispositivo detector de posición (PSD) y un procesador integrado encargado de realizar el cálculo de la distancia. 

El sensor escanea de forma continua los objetos ubicados en frente suyo y proporciona la salida mediante una referencia de voltaje analógico. 

NOTA: El rango de medición del Sharp es de 20 a 150 cm, manteniendo un grado de precisión elevado en todo el intervalo. El voltaje de alimentación es de 4.5 a 5.5V y el consumo de corriente de 33mA.

Figura 2: Esquema de entradas y salidas del sensor Sharp GP2Y0A02YK0F.
Figura 2: Esquema de entradas y salidas del sensor Sharp GP2Y0A02YK0F

 

Con la información que ahora conocemos, hacer las conexiones indicadas en el diagrama de conexión mostrado en la Figura 3.

Figura 3: Esquemático de conexiones.
Figura 3: Esquemático de conexiones

 

Paso 2:

Antes de empezar a programar es necesario saber cómo funciona este sensor:

  1. El LED emisor infrarrojo emite un haz de luz infrarroja a una cierta longitud de onda.
  2. El detector de posición recibe la luz reflejada en el objeto de la trayectoria. 
  3. Y por último el sensor emplea triangulación para calcular la distancia del sensor al objeto ubicado frente al rayo. Como se muestra en la Figura 4. 
Figura 4: Manera en la que funciona el sensor Sharp.
Figura 4: Manera en la que funciona el sensor Sharp

 

NOTA: Es importante la posición en la que ponemos nuestro sensor, ya que el objeto a medición debe estar en el rango estable visible para el sensor. En este caso, el objeto se debe encontrar a más de 20 cm pero menos de 150 cm.

Ahora con esta información podemos realizar el código mostrado en la Figura 5, el cual nos permite medir la distancia en la que se encuentra un obstáculo y así controlar el encendido de un LED. Si se detecta un objeto el LED se enciende. 

Figura 5: Código para controlar LEDs usando sensor Sharp para detección de objetos.
Figura 5: Código para controlar LEDs usando sensor Sharp para detección de objetos

 

Paso 3: 

Cargar el programa a nuestra tarjeta Arduino y ver los resultados.

Figura 6: LED apagado si no se detecta obstáculo.
Figura 6: LED apagado si no se detecta obstáculo

  

Figura 7: LED apagado si no se detecta obstáculo.
Figura 7: LED apagado si no se detecta obstáculo

 

Figura 8: LED encendido si se detecta obstáculo.
Figura 8: LED encendido si se detecta obstáculo


 

NOTA: El sensor puede ser afectado por la luz ambiental si se recibe luminosidad directa, al mismo tiempo puede realizar mediciones incorrectas al detectar objetos transparentes o muy brillantes (vidrios, espejos, etc).

Paso 4: Usando QRD1114

El sensor QRD1114 es un sensor infrarrojo de corto alcance. A diferencia del Sharp, este posee un diseño compacto donde la fuente de emisión de luz y el detector están en la misma dirección. 

Este tipo de sensores son usualmente utilizados en robótica para realizar seguidores de línea, ya que el diodo IR emite un haz de luz infrarroja que al rebotar sobre una superficie reflectante (color blanco) es detectado por el fototransistor y este permite el paso de corriente.

NOTA: Su rango de ideal es de 6 milímetros y el voltaje de funcionamiento de 5V.

Figura 9: Diagrama de conexiones del sensor QRD1114.
Figura 9: Diagrama de conexiones del sensor QRD1114 

 

Ahora, ya podemos hacer las conexiones indicadas en el diagrama de conexión mostrado en la Figura 10. 

Figura 10: Esquemático de conexiones.
Figura 10: Esquemático de conexiones

 

Paso 5:

Para poder programar el sensor hay que saber cómo funciona. En este caso, cuando no hay rayo el transistor está cerrado. Cuando un objeto se acerca, el valor depende del color, es decir si es negro, el transistor queda abierto por lo que el valor queda en HIGH. Por otra parte, si acercamos un color blanco, el voltaje cae y tendremos un valor de LOW. 

Figura 11: Código para medir las distancias entre objetos para detectar obstáculos y controlar un LED según la distancia a la que se encuentre el obstáculo.
Figura 11: Código para medir las distancias entre objetos para detectar obstáculos y controlar un LED según la distancia a la que se encuentre el obstáculo

 

Realizar el código mostrado en la Figura 11, el cual nos muestra cómo detectar obstáculos con el Sensor QRD1114. Si detecta un objeto se enciende el LED. 

NOTA: En el caso de que queramos conocer la distancia en cm, multiplicamos el valor que obtenemos del sensor y el resultado lo dividimos entre 1023. 

Paso 6:

Cargar el programa a nuestra tarjeta Arduino y ver los resultados.

Figura 12: LED apagado si no detecta obstáculo el sensor.
Figura 12: LED apagado si no detecta obstáculo el sensor.

 

Figura 13: LED encendido cuando se detecta obstáculo por el sensor.
Figura 13: LED encendido cuando se detecta obstáculo por el sensor

 

Artículo previo Empezando con Arduino - 3C: Sensor Ultrasónico HC-SR04
Siguiente artículo Empezando con Arduino - 3A: Sensor de Temperatura (en monitor del Arduino IDE)