Index
1. Introducción
2. Requisitos
3. Descripción
4. Características
5. Cómo funciona
6. Conexiones
7. Software
Introducción
El Sharp GP2Y0A02YK0F es un sensor de distancia óptica. Consiste en un LED infrarrojo junto con un dispositivo detector de posición (PSD) y un procesador integrado responsable de calcular la distancia.
El sensor escanea continuamente los objetos situados delante de él y proporciona la salida a través de una referencia de voltaje analógica, para que podamos utilizar las entradas analógicas Arduino para leer el valor de la distancia.
El rango de medición es de 20 a 150 cm, manteniendo un alto grado de precisión durante todo el intervalo. La tensión de alimentación es de 4.5 a 5.5V y el consumo de corriente es de 33mA. El intervalo de actualización entre las mediciones es de unos 80 ms.
El GP2Y0A02YK0F es un dispositivo sencillo de conectar y usar. Sin embargo, debe tenerse en cuenta que incorpora un JST (Terminal Sin Soldadura Japonesa) conector para su conexión, por lo que tendremos que utilizar un conector de este tipo o soldar directamente los terminales de la placa.
Requisitos
Ethernet PLC or 20 I/Os PLC:
Sensor óptico de distancia GP2Y0A02YK0F: Ficha técnica del GP2Y0A02YK0F >>>
Placas Industrial Shields:
Utiliza los pines de mapeo de las placas IS >>>
Descripción
GP2Y0A02YK0F sensor de distancia óptica:
- Dimensiones del contorno: (unidad de medida: mm)

Características | |||||||||||
Tensión de alimentación (Vcc) | (-0.3 to 7) V | ||||||||||
Tensión del terminal de salida (Vo) | (-0.3 to Vcc+ 0.3) V | ||||||||||
Temperatura de funcionamiento (Topr) | (-10 to +60) ºC | ||||||||||
Temperatura de almacenamiento (Tstg) | (-40 to +70) ºC | ||||||||||
Corriente media de suministro (Icc) | typ. 30mA, max. 50mA | ||||||||||
Rango de distancia de medición (ΔL) | (20 to150) cm | ||||||||||
Voltaje de salida (V0) | (mín. 0.25 ; typ. 0,4 ; max. 0,55) V |
Cómo funciona
El emisor de LEDs infrarrojos emite un haz de luz pulsada infrarroja con una longitud de onda de 850nm +/- 70nm. La luz pulsada se envía para minimizar la influencia de la luz ambiental y el color del objeto en la medición.
El detector de posición PSD (position sensitive detection) es en realidad un pequeño sensor CCD lineal que recibe la luz reflejada en cualquier objeto en la trayectoria del haz. El sensor utiliza la triangulación para determinar la distancia del sensor a los objetos situados delante del haz.
El sensor Sharp es más preciso que los sensores de ultrasonido como el HC-SR04, especialmente en distancias medias y largas,
donde los sensores de ultrasonido se ven afectados por los rebotes y ecos producidos por las geometrías del entorno.
Conexiones
Pin 1 (Data) --> I0_12
Pin2 (Gnd) --> Gnd
Pin3 (5V) --> 5V
Conexión final:

Software
Este sencillo sketch nos permite realizar lecturas analógicas del GP2Y0A02YK cada segundo. Para ello, hemos utilizado la entrada I0.12 de nuestro M-Duino. Puedes utilizar cualquiera de las entradas analógicas disponibles en tu PLC basado en Arduino.
Como prueba comprobaremos el resultado monitoreado por el serial port comprobando el valor analógico leído, la tensión recibida y finalmente la distancia entre el sensor y el objeto.
const long referenceMv = 5000;
void setup() {
Serial.begin(9600);
}
void loop() {
//lectura de la tensión
int val = analogRead(I0_12);
int mV = (val * referenceMv) / 1023;
int cm = getDistance(mV);
//mostrar valores por pantalla
Serial.print(mV);
Serial.print(",");
Serial.println(cm);
delay(1000);
}
//interpolación de la distancia a intervalos de 250mV
const int TABLE_ENTRIES = 12;
const int INTERVAL = 250;
static int distance[TABLE_ENTRIES] = {150,140,130,100,60,50,40,35,30,25,20,15};
int getDistance(int mV) {
if (mV > INTERVAL * TABLE_ENTRIES - 1) return distance[TABLE_ENTRIES - 1];
else {
int index = mV / INTERVAL;
float frac = (mV % 250) / (float)INTERVAL;
return distance[index] - ((distance[index] - distance[index + 1]) * frac);
}
}