Cómo medir la distancia con el Arduino

  1. Ordenadores
  2. Arduino
  3. Cómo medir la distancia con el Arduino

Libro Relacionado

Por John Nussey

Dos sensores para medir la distancia con el Arduino son muy populares: el sensor de proximidad infrarrojo y el telémetro ultrasónico. Trabajan de manera similar y logran casi lo mismo, pero es importante elegir el sensor adecuado para el entorno en el que se encuentra.

Un sensor de proximidad infrarrojo tiene una fuente de luz y un sensor. La fuente de luz rebota la luz infrarroja en los objetos y la devuelve al sensor, y el tiempo que tarda la luz en regresar se mide para indicar la distancia a la que se encuentra un objeto.

Un telémetro ultrasónico emite ondas sonoras de alta frecuencia y escucha un eco cuando chocan contra una superficie sólida. Al medir el tiempo que tarda una señal en recuperarse, el telémetro ultrasónico puede determinar la distancia recorrida.

Los sensores de proximidad infrarrojos no son tan precisos y tienen un alcance mucho más corto que los detectores de alcance ultrasónico.

Considere lo siguiente durante la planificación:

  • Complejidad: Ambos sensores están diseñados para ser extremadamente fáciles de integrar con los proyectos de Arduino. En el mundo real, se utilizan para aplicaciones electrónicas similares, como los medidores de proximidad en la parte trasera de los automóviles, que emiten pitidos al acercarse a la acera. Los sensores de proximidad infrarrojos, como los fabricados por Shape, tienen orificios útiles en la parte exterior del cuerpo del sensor. Maxbotix fabrica telémetros ultrasónicos que no tienen estos soportes, pero su forma cilíndrica los hace fáciles de montar en una superficie perforando un agujero.
  • Costo: Los sensores de proximidad infrarrojos cuestan alrededor de $15 (£10) y tienen un alcance de hasta 59 pulgadas o menos. Los telémetros ultrasónicos tienen un alcance y una precisión mucho mayor, pero un precio igualmente excelente, que oscila entre $27 (£18) para un sensor que puede leer hasta 645 cm (254 pulgadas) y $100 (£65) para un modelo más resistente a la intemperie que puede leer hasta 765 cm (301 pulgadas).
  • Dónde: Una aplicación común para estos sensores es el monitoreo de la presencia de una persona u objeto en un espacio de piso en particular, especialmente cuando una almohadilla de presión sería demasiado obvia o fácil de evitar, o cuando un sensor PIR mediría demasiado ampliamente. El uso de un sensor de proximidad le permite saber dónde está alguien en línea recta desde ese sensor, lo que lo convierte en una herramienta muy útil.

Los sensores de proximidad IR están bien en ambientes oscuros, pero funcionan muy bien con luz solar directa. El telémetro ultrasónico MaxBotix es uno de los sensores más fiables. Cuando se utilizan los telémetros ultrasónicos, también se puede elegir el ancho o el estrecho de un haz que se desee. Un sensor grande en forma de lágrima es perfecto para detectar objetos grandes que se mueven en una dirección general, mientras que los haces estrechos son ideales para mediciones de precisión.

En este ejemplo, aprenderá a medir distancias precisas con un MaxBotix LV-EZ0. Las EZ0, EZ1, EZ2, EZ3 y EZ4 funcionan de la misma manera, pero cada una de ellas tiene un haz ligeramente más estrecho, así que elija la adecuada para su proyecto.

El telémetro necesita un montaje menor. Para usar el telémetro en tu circuito, necesitas soldar los pines de la cabecera para usarlo en una protoboard, o soldar las longitudes de los cables.

Dispone de tres maneras de conectar el telémetro: mediante comunicación analógica, de ancho de pulso o en serie. En este ejemplo, aprenderá a medir el ancho del pulso y a convertirlo en distancia. La salida analógica se puede leer directamente en los pines de entrada analógica, pero proporciona resultados menos precisos que el ancho de pulso. Este ejemplo no cubre la comunicación serie.

Necesitas:

  • Un Arduino Uno
  • Un telémetro ultrasónico LV-EZ0
  • Alambres de salto

Completar el circuito a partir de la disposición y los esquemas de conexiones. Las conexiones para el telémetro están claramente marcadas en la parte inferior de la placa de circuito impreso. Las conexiones 5V y GND proporcionan alimentación para el sensor y deben ser conectadas a las fuentes de 5V y GND de tu Arduino.

La conexión PW es la señal de ancho de pulso que leerá el pin 7 de tu Arduino. Asegúrese de que el sensor de distancia esté colocado en algún tipo de base apuntando en la dirección que desea medir.

Puedes encontrar el código MaxSonar de Bruce Allen en el parque Arduino, junto con algunas notas y funciones adicionales. Cree un nuevo sketch, copie o escriba el código en él y guárdelo con un nombre memorable, como myMaxSonar.

//Siéntete libre de usar este código. //Por favor sea respetuoso reconociendo al autor en el código si lo usa o modifica. //Autor: Bruce Allen //Fecha: 23/07/09 //Pin digital 7 para la lectura del ancho de pulso desde el dispositivo MaxSonar. //Esta variable es una constante porque el pin no cambiará a lo largo de la ejecución de este código.const int pwPin = 7; //variables necesarias para almacenar valores-pulso largo, pulgadas, cm;void setup() { //Esto abre una conexión serie para volver a disparar los resultados a la consola del PC Serial.begin(9600);}void loop() { pinMode(pwPin, INPUT); //Usado para leer el pulso que está enviando el dispositivo MaxSonar. //Representación del ancho de pulso con un factor de escala de 147 us por pulgada = pulseIn(pwPin, HIGH); //147uS por pulgada = pulse/147; // cambiar pulgadas a centímetros cm = pulgadas * 2.54; Serial.print(pulgadas); Serial.print("in, "); Serial.print(cm); Serial.print("cm"); Serial.print("cm"); Serial.println(); delay(500);}.

Presione el botón Compilar para comprobar su código. El compilador resalta cualquier error gramatical, volviéndolos de color rojo cuando se descubren. Si el sketch se compila correctamente, haga clic en Cargar para enviar el sketch a su foro. Cuando haya terminado de cargar, abra el monitor serie y verá la distancia medida en pulgadas y centímetros. Si el valor fluctúa, intente usar un objeto con una superficie mayor.

Este boceto le permite medir con precisión la distancia en línea recta. Pruebe esto con una cinta métrica y haga ajustes al código si encuentra discrepancias.

Leave a Reply