Arduino: Sensor de Proximidad por Ultrasonidos

Siguiendo con la serie práctica sobre Arduino, veremos en este post como usar un Sensor de Proximidad por Ultrasonidos. En nuestro caso hemos usado el modelo LV-EZ3 de la marca Maxbotix. Hoja Técnica.

Éste sensor por ultrasonidos proporciona una forma muy cómoda y fácil de localizar obstáculos con una distancia de hasta 6,45 metros de distancia (y con un mínimo de 15 cm, por debajo de ese valor marca la distancia como 15 cm). Su interfaz es sencilla y posee distintas formas de recuperar los valores, por puerto série RS-232, Valor analógico o PWM.

En nuestro caso, con el fin de utilizar un montaje sencillo y con el menor número de Pins, lo montamos haciendo uso de los pines GND, +5v y Pw (este último conectado a un Pin digital de la placa arduino).

El Codigo para leer la distancia es el siguiente:

int pingPin = 7;

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  long duration, cm;

  pinMode(pingPin, OUTPUT);
  digitalWrite(pingPin, LOW);
  delayMicroseconds(2);
  digitalWrite(pingPin, HIGH);
  delayMicroseconds(5);
  digitalWrite(pingPin, LOW);

  pinMode(pingPin, INPUT);
  duration = pulseIn(pingPin, HIGH);

  // convert the time into a distance
  cm = microsecondsToCentimeters(duration);

  Serial.print(duration);
  Serial.print("seg, ");
  Serial.print(cm);
  Serial.print("cm");
  Serial.println();

  delay(500);
}

long microsecondsToCentimeters(long microseconds)
{
  return microseconds / 29 / 2;
}