Conexión de múltiples sensores ultrasónicos a un Arduino

3

Estoy tratando de conectar cinco sensores ultrasónicos (HC-SR04, para ser exactos) a una placa Arduino para detectar obstáculos en cinco direcciones (cuatro cardinales + un eje Z). Leí la hoja de datos en el HC-SR04s y el Arduino Uno también, y encontré que el sensor ultrasónico toma 15mA cuando está activo, y el Uno puede suministrar un máximo de 40mA a través de cada pin y un total de 200mA de todos los pines.

Ahora que no tengo diez pines de E / S PWM, he pensado que dado que dispararé todos los sensores a la vez, un pin de disparo es suficiente. Los pines ECHO irán a un pin PWM separado para cada módulo.

Tengo dos preocupaciones aquí (solo soy un principiante en electrónica :)):

  1. Voy a suministrar energía a cada sensor con un BEC de 5V / 2A. Entonces, ¿esto causará un sobregiro actual de los pines de Arduino PWM? Si es así, ¿hay alguna solución? Tal vez una solución impulsada por transistores? (He realizado un curso de electrónica básica en la universidad, pero nunca tuve la oportunidad de diseñar uno por mi cuenta).

  2. La segunda preocupación es con respecto al diseño de mi pasador de gatillo. ¿Un pin podrá pulsar cinco de los sensores o la caída de la corriente no les permitirá disparar (ya que están todos en paralelo)? Supongo que es solo el voltaje lo que los enciende (suposición) y en paralelo todo sería igual por lo que debería funcionar, ¿no?

Busqué, pero solo encontré información sobre cómo conectar un sensor al Arduino. Leí algo sobre el funcionamiento de motores de alto amperio con Arduino al suministrar la corriente a través de una batería, así que creo que mi primera preocupación debería estar bien. Pero no estoy seguro, así que pensé que lo pediría aquí. Gracias!

    
pregunta mohdjas

2 respuestas

1

El problema con las soluciones relacionadas con pasatiempos es que la documentación es limitada y no está especificada como componentes o módulos comerciales.

Es posible que funcione, pero se recomienda hacer un diagrama de cableado en bloques y consultar con el OEM. Tenga en cuenta que no sé si cuentan con el apoyo adecuado para su pregunta, ya que están construidos en China.

Servicios de Hobby 3002 N. Apollo Dr. Suite 1 Champaign, IL 61822 (217) 398-0007 Correo electrónico: [email protected] Dirección de Internet: www.supertigre.com

Parece que su carga ultrasónica es TTL, por lo que no hay ningún problema al cambiar 5 al mismo tiempo con un BEC, pero me pregunto si ha considerado los efectos de la interferencia al disparar al mismo tiempo. Indican un ángulo de detección de 15 grados, pero esto dependerá del ángulo de reflexión de los objetos que desee detectar. Puede haber problemas de fases con las cancelaciones por reflexión, como tener 5 tweeters dirigidos en una sala. La lectura de la respuesta de cada eco en paralelo con un recuento de intervalos de tiempo no será un simple resultado de libro de texto con objetos no suaves con 5 remitentes.

Usted puede probar el diseño de su matriz ortogonal con cualquier generador de pulsos de señal y mirar la señal en un analizador lógico de puerto paralelo o en su alcance para garantizar que su diseño funcione.

La unidad de alimentación es la menor de tus preocupaciones de estos dispositivos de bajo consumo. La evitación del ruido de las fuentes conducidas y radiadas será primordial y el diseño de la matriz del transpondedor debe ser lo primero. Pasaría un poco de tiempo probando esta parte 1 para identificar todas las fuentes de interferencias eléctricas, físicas, acústicas, EMI, térmicas y de vibración, y cómo cada una afecta sus expectativas de SONAR con diferentes objetos. Será microfónico con vibraciones o ruidos de pulso fuerte. ¿Qué tan bien rechaza otras fuentes de ruido de ultrasonido? ¿Cambiará la salida TTL Echo en el ancho del pulso con la intensidad de la señal o solo el tiempo de retardo?

¿Recibirás ecos del remitente incorrecto debido a los efectos de reflejo de las esquinas?

    
respondido por el Tony EE rocketscientist
1

Me doy cuenta de que esto es un poco de un hilo viejo, pero ... Tengo un par de estos, y el problema es que para "leer" el resultado se usa un PulseIn, que "ata" al Arduino durante el eco.

Entonces, primero, debe poner un tiempo de espera en pulseIn, como sin signo long pulse_length = pulseIn (iEchoPin, HIGH, 9000); donde 9000 es 9000 microsegundos o 9 milisegundos, lo que equivale a aproximadamente 150 cm o 5 pies (velocidad del sonido, distancia de desplazamiento dos veces, muchas matemáticas). La razón para tener un tiempo de espera es que el tiempo de espera predeterminado es un segundo completo, por lo que podría esperar 1.000 milisegundos o 1.000.000 microsegundos para obtener un resultado (y volver a 0 porque se agotó el tiempo). Así que puse 9000us, eso me da 150 cm, lo que es suficiente para la ubicación de obstáculos.

Y, en segundo lugar, no puedo encontrar la manera de leer ambos sensores al mismo tiempo, ya que mi Arduino solo hará una pulsación por vez, y el eco del segundo sensor ya habrá regresado para entonces.

Y en tercer lugar, hay que esperar un período de tiempo para cualquier eco "secundario", la hoja de datos dice 60 ms, he tenido un buen éxito con 40 ms. Pero si tengo 2 de ellos, tengo que esperar 40 ms antes de disparar el segundo, o recibiré los ecos falsos del primero (se enfrentan a una distancia de unos 30 grados).

La razón por la que estaba buscando aquí, es que quería saber si podía usar el mismo pin de eco para varios sensores SR04 (o, para el caso, múltiples sensores de distancia IR). Si disparo 1 SR04, luego leo el pin de eco "combinado", entonces solo necesito 1 pin para leer cualquier número de sensores, pero 1 pin para disparar cada uno.

La otra opción, es cambiar el pin a la salida, enviar el disparador, luego cambiarlo a entrada y hacer el PulseIn y hacer que el mismo cable vaya a los pines del disparador y del eco en la placa SR04. Voy a probar ambos. Pero quería ver si alguien había hecho alguna de estas dos cosas antes.

    
respondido por el Andrew Hughes

Lea otras preguntas en las etiquetas