lunes, 8 de agosto de 2011

Sensor Ultrasónico Maxbotix LM-EZ1 con Arduino

Hoy veremos cómo usar el sensor ultrasónico Maxbotix LV-EZ1 con Arduino. Primero debemos ver el datasheet, para ver que pin corresponde a cada cosa:

Usaremos unos cables hembra-machos para conectar nuestro sensor con nuestro Arduino. El sensor posee varias formas de enviar datos:
  • Salida Serial - 9600bps
  • Salida Analógica - ~9.6mV/inch
  • Salida PWM - 147uS/inch
La manera más sencilla es usando la salida analógica, ya que con sólo conectar el pin AN del sensor a un pin analógico del Arduino y usar la función analogRead() podemos tener una lectura rápida del sensor. El Arduino tiene una resolución analógica de 10 bits(2^10), que es igual a 1023 posibles valores, de manera que como el Arduino trabaja a 5V tendremos que 5V/1023 da a 0.0048V(4.8mV) por unidad.
La salida analógica del sensor tiene una resolución de 9.6mV, entonces si el arduino tiene una resolución de 4.8mV podemos fácilmente inferir que por cada 9.6mV tendremos dos unidades en la lectura analógica, dos unidades equivaldrán a una pulgada. Un ejemplo rápido, hagamos de cuenta que logramos una lectura de 209, para convertir esta lectura a una medida en pulgadas sólo tendremos que dividirla entre dos. El sensor tiene un rango mínimo de 6 pulgadas, estos quiere decir que no detectará nada a menos de 6 pulgadas y siempre el valor mínimo será de 6 pulgadas. Recordemos que una pulgada es igual a 2.54 cm.
No hay que olvidarnos de alimentar al sensor con 5V. Aquí está el código:

//Creado por Henry Serrano 9/8/2011
//Taller Arduino FIUADY

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

void loop(){
  //conectamos el pin AN del sensor
  //al pin A0 del Arduino
  int a = analogRead(0);
  //dividimos entre 2 y nos aseguramos
  //que siga siendo un valor entero
  a = (int)(a/2);
 
  //para imprimir en pulgadas
  Serial.println(a);
 
  //para imprimir en centímetros
  //Serial.println(a*2.54);
 
  delay(80);
}


No hay comentarios:

Publicar un comentario