Sensor Sharp 2Y0A21 - 2Y0A02Y con Arduino

Introducción.

Los Sensores Sharp 2Y0A21 y Sharp 2Y0A02Y son una interesante alternativa a los sensores de ultrasonido, el punto fuerte de estos pequeños sensores son su precisión ya que como veremos en otro apartado tienen un alcance muy corto en especial el sensor Sharp 2Y0A21 , estos sensores trabajan mediante señales infrarrojas y tiene un costo bajo.

 

Características del Sensor Sharp 2Y0A21 y Sharp 2Y0A02Y

Si necesitas mas datos del sensor puedes consultar su datasheet en este enlace.

  • Rango Mínimo 10 cm para el sensor 2Y0A21 , 20 cm para el sensor 2Y0A02Y.
  • Rango Máximo 80 cm para el sensor 2Y0A21 , 150 cm para el sensor 2Y0A02Y.
  • Tensión en la Salida de 0.3 v a 3.1 v dependiendo de la distancia medida.
  • Alimentación de 4.5 a 5.5 v
  • Tres Pines (Alimentación, Tierra, Salida)

Requisitos.

  • Arduino
  • Sensor Sharp 2Y0A21 o Sharp 2Y0A02Y.
  • Cables de Conexión o Jumpers
  • Protoboard

 

Repositorio del Proyecto.

Tenemos todos los Archivos Necesarios del Proyecto en nuestro Repositorio en Github

Diagrama de Conexiones.

La conexión se la hizo directamente aunque podrías agregar un protoboard para agregar otras funcionalidades.

 

Código Arduino.

Haciendo varias pruebas con el sensor nos dimos cuenta de que lanzaba varias mediciones incoherentes es por eso que nos vimos de la necesidad de contar con una librería que nos solucione el problema.

La librería que utilizamos para controlar el sensor se llama SharpIr que nos simplifica el trabajo de conversiones en los diferentes sistemas de unidades, puedes descargar la librería y su documentación en el siguiente enlace:

Importante: No olvides cambiar el tipo de sensor Sharp que tienes en la variable model.

#define ir A0
#define model 1080
 
SharpIR sharp(ir, 25, 93, model);
 
// ir: Pin Analogico donde se conecta el sensor
// 25: El numero de lecturas que la libreria hara antes de hacer el calculo de distancias
// 93: la diferencia entre dos medias consecutivas tomadas como validas
// model: Determina el Modelo de tu sensor :  1080 for GP2Y0A21Y
//                                            20150 for GP2Y0A02Y
 
 
 
void setup(){
 
  Serial.begin(9600);
  pinMode (ir, INPUT);
 
}
 
void loop(){
 
  delay(2000);    // Retardo entre cada medicion
  unsigned long pepe1=millis();  // toma el tiempo de cada loop
 
  int dis=sharp.distance();  // retorna la distancia
 
 
  Serial.print("Distancia: "); 
  Serial.println(dis);
 
  unsigned long pepe2=millis()-pepe1;  // retornal el tiempo de cada medicion
  Serial.print("Tiempo (ms): ");
  Serial.println(pepe2); 
}

Resultados.

Como podemos apreciar en la Imagen las distancias obtenidas están expresadas en centímetros y tienen una exactitud muy apreciable dado el movimiento del objetivo de medición.

 

Tanto el Diagrama de conexiones como el código sirven para las dos clases de sensores lo que nos facilita el trabajo a la hora de probar entre los sensores.

Related Articles

Este espacio lo he creado pensando en los entusiastas como tú, para compartir y centralizar documentación sobre temas que me apasionan: Arduino, impresoras 3D, Raspberry Pi, y mucho más.

Además, he querido fusionarlo con mi canal de YouTube, donde exploramos retro-informática, Raspberry Pi, consolas retro, electrónica y otras maravillas del mundo tecnológico. Este es tu sitio si disfrutas aprendiendo, creando y reviviendo lo mejor de la tecnología de ayer y hoy.

¡Bienvenido!