Skip to Content

Cómo usar un sensor de distancia IR SHARP GP2Y0A710K0F con Arduino

Cómo usar un sensor de distancia IR SHARP GP2Y0A710K0F con Arduino

El  SHARP GP2Y0A710K0F  es un sensor de distancia IR fácil de usar con un rango extra largo de 100 a 500 cm. Este rango extra largo lo convierte en una buena alternativa a los sensores de distancia ultrasónicos.

En este tutorial, aprenderás cómo funciona el sensor y cómo usarlo con Arduino. He incluido un diagrama de conexiones y un código de ejemplo para que puedas empezar a experimentar con tu sensor.

Si buscas un sensor de distancia más económico o impermeable, echa un vistazo al HC-SR04 o JSN-SR04T. En los artículos siguientes explico cómo funcionan estos sensores de distancia/proximidad y cómo usarlos con Arduino.

Otros sensores de distancia/proximidad:

Componentes necesarios

Sensor de distancia GP2Y0A710K0F

Arduino

Arduino Uno

USB Data Sync cable Arduino

Cable USB para Arduino UNO

Dupont wire set

Juego de cables Dupont

Half_breadboard56a

Protoboard

Condensador( 10 µF)

Makerguides is a participant in affiliate advertising programs designed to provide a means for sites to earn advertising fees by linking to Amazon, AliExpress, Elecrow, and other sites. As an Affiliate we may earn from qualifying purchases.

¿Cómo funciona un sensor de distancia IR?

Un sensor de distancia IR usa un haz de luz infrarroja que se refleja en un objeto para medir su distancia. La distancia se calcula mediante triangulación del haz de luz. El sensor consta de un LED IR y un detector de luz o PSD (Dispositivo de Detección de Posición).

Cuando el haz de luz se refleja en un objeto, el haz reflejado llega al detector de luz y se forma un ‘punto óptico’ en el PSD.

How an IR distance sensor works light emitter and detector PSD 710
Sensor IR

Cuando la posición del objeto cambia, también cambia el ángulo del haz reflejado y la posición del punto en el PSD. Observa el punto A y el punto B en la imagen siguiente.

How an IR distance sensor works
Fíjate en el cambio del ángulo del haz reflejado y la posición del ‘punto óptico’ en el PSD.

El sensor tiene un circuito de procesamiento de señal incorporado. Este circuito procesa la posición del punto óptico en el PSD para determinar la posición (distancia) del objeto reflectante. Emite una señal analógica que depende de la posición del objeto frente al sensor.

¿Cómo leer un sensor de distancia IR?

Los sensores de distancia IR emiten una señal analógica que varía según la distancia entre el sensor y un objeto. Según la hoja de datos, el voltaje de salida del SHARP GP2Y0A710K0F varía de 2.5 V cuando un objeto está a 100 cm, a 1.4 V cuando está a 500 cm. El gráfico también muestra por qué el rango útil de detección comienza en 100 cm.

Observa que el voltaje de salida para un objeto a 30 cm es igual al voltaje para un objeto a 160 cm. Por lo tanto, el rango útil de detección comienza después del pico, aproximadamente a 100 cm o 2.5 V.

GP2Y0A710K0F Output Characteristics
Características de medición de distancia (salida)

El gráfico también muestra la desventaja de estos sensores: la respuesta es no lineal. En otras palabras, un gran cambio en el voltaje de salida no siempre corresponde a un gran cambio en la distancia. Para determinar la distancia entre el sensor y un objeto, necesitas encontrar una función que convierta el voltaje de salida en un valor de distancia.

Si representas el voltaje de salida frente al inverso de la distancia, obtienes una relación mayormente lineal. Para distancias > 100 cm obtienes la siguiente curva.

GP2Y0A710K0F Output Characteristics Linear
Voltaje de salida vs número inverso de distancia 1/L (1/cm)

Cálculo de distancia

Basado en los datos de la hoja de datos de SHARP, puedes calcular la función lineal:

y = 137500x + 1125

Con y igual al voltaje de salida en mV y x igual a 1/distancia en cm.

Esto resulta en la siguiente fórmula para la distancia entre el sensor y un objeto:

distancia (cm) = 1 / ((voltaje_salida_mV – 1125) / 137500)

Esta es la función que se usa en la  librería SharpIR , que usaremos más adelante. Ten en cuenta que esta función se basa solo en datos de la hoja de datos de SHARP. Las características de salida del sensor pueden variar ligeramente entre sensores, por lo que podrías obtener lecturas inexactas.

Especificaciones del GP2Y0A710K0F

Voltaje de funcionamiento 4.5 a 5.5 V
Corriente de funcionamiento 30 mA
Rango de medición 100 a 550 cm
Tipo de salida Analógica
Dimensiones 58 x 17.6 x 22.5 mm
Orificio de montaje 4.2 mm
Precio Check price

Para más información puedes consultar la hoja de datos aquí.

Conexión del sensor IR GP2Y0A710K0F a Arduino

El diagrama de conexiones a continuación muestra cómo conectar el sensor de distancia IR GP2Y0A710K0F a un Arduino.  Ten en cuenta: ¡los colores de los cables no son intuitivos!

GP2Y0A710K0F-IR-Distance-Sensor-Arduino-Wiring-Diagram-Schematic
Diagrama de conexiones del sensor de distancia IR GP2Y0A710K0F con Arduino

Este tipo de sensores de distancia tienden a ser un poco ruidosos, por lo que se recomienda añadir un condensador entre Vcc y GND. La hoja de datos sugiere un condensador de 10 µF o más. Conecta la pata positiva del condensador al cable Vcc y la pata negativa al cable GND (ver imagen). Los condensadores suelen tener una franja que indica la pata negativa. La pata positiva suele ser más larga que la negativa.

Conexiones del GP2Y0A710K0F

GP2Y0A710K0F Arduino
1 (Rojo) GND
2 (Negro) 5V
3 (Amarillo) 5V
4 (Verde) A0
5 (Azul) GND

Si tu sensor tiene cables de colores diferentes, asegúrate de revisar el pinout a continuación. El pin Vo está conectado a la entrada analógica del Arduino (A0).

GP2Y0A710K0F Pinout
Pinout del sensor de distancia IR GP2Y0A710K0F

El conector del sensor no está marcado, el orden de los pines corresponde al sensor con el logo hacia arriba.

Ahora que has conectado el sensor, es momento de ver un código de ejemplo.

Instalación de la librería SharpIR para Arduino

La librería SharpIR escrita por Guillaume Rico y Thibaut Mauon facilita mucho el trabajo con sensores IR SHARP. Incluye las fórmulas necesarias para convertir el voltaje de salida medido en una distancia en centímetros. Actualmente, la librería soporta los siguientes sensores: GP2Y0A02YK0F, GP2Y0A21YK0F, GP2Y0A710K0F y GP2YA41SK0F. La última versión de la librería se puede descargar aquí en GitHub o haz clic en el botón de abajo.

Puedes instalar la librería yendo a Sketch > Include Library > Add .ZIP Library en el IDE de Arduino.

Installing an Arduino library ZIP
Instalación de una librería Arduino en formato .ZIP.

El autor de la librería notó que las lecturas del sensor pueden fluctuar bastante. La librería soluciona este problema tomando múltiples lecturas seguidas, descartando valores atípicos y calculando la media para obtener una lectura de distancia más estable. Actualmente, la librería toma la media de 25 lecturas, lo que tarda aproximadamente 53 ms.

Código de ejemplo para el sensor de distancia IR SHARP GP2Y0A710K0F con Arduino

El código de ejemplo a continuación puede usarse con el sensor GP2Y0A710K0F y muestra la distancia medida en centímetros en el monitor serie.

Puedes copiar el código haciendo clic en el botón en la esquina superior derecha del campo de código.

/*SHARP GP2Y0A710K0F IR distance sensor with 
  Arduino and SharpIR library example code. 
  More info: https://www.makerguides.com */

// Include the library:
#include "SharpIR.h"

// Define model and input pin:
#define IRPin A0
#define model 100500

// Variable to store the distance
int distance_cm;

/* Model :
  GP2Y0A02YK0F --> 20150
  GP2Y0A21YK0F --> 1080
  GP2Y0A710K0F --> 100500
  GP2YA41SK0F  --> 430
*/

// Create a new instance of the SharpIR class
SharpIR mySensor = SharpIR(IRPin, model);

void setup() {
  // Serial communication at a baud rate of 9600
  Serial.begin(9600);
}

void loop() {
  // Get a distance measurement and store it as distance_cm
  distance_cm = mySensor.distance();

  // Print the measured distance to the serial monitor
  Serial.print("Mean distance: ");
  Serial.print(distance_cm);
  Serial.println(" cm");

  delay(1000);
}

Ten en cuenta que hemos llamado al sensor mySensor en este ejemplo. Si quieres usar varios sensores de distancia IR, puedes crear otro objeto sensor con un nombre diferente:  SharpIR mySensor2 = SharpIR(IRPin2, model);  Ten en cuenta que en ese caso también debes usar un pin de entrada diferente para el segundo sensor.

Cuando el voltaje de salida esté por debajo de 1.4 V o por encima de 3.3 V, verás “Mean distance: 0 cm” en el monitor serie.

Conclusión

En este artículo te he mostrado cómo funciona el sensor de distancia IR SHARP GP2Y0A710K0F y cómo usarlo con Arduino. Espero que te haya resultado útil e informativo. Si es así, ¡compártelo con un amigo que también le guste la electrónica!

No dudes en dejar cualquier pregunta en la sección de comentarios.