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). También leí la hoja de datos del HC-SR04 y del Arduino Uno, y descubrí que el sensor ultrasónico consume 15 mA cuando está activo, y el Uno puede suministrar un máximo de 40 mA a través de cada pin y un total de 200 mA desde 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 activación 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 :)):
Voy a suministrar energía a cada sensor con un BEC de 5V/2A. Entonces, ¿esto causará un sobregiro de corriente de los pines Arduino PWM? Si es así, ¿hay alguna solución? ¿Quizás una solución impulsada por transistores? (Hice un curso básico de electrónica en la universidad, pero nunca tuve la oportunidad de diseñar uno por mi cuenta).
La segunda preocupación tiene que ver con el diseño de mi pasador de activación. ¿Un pin podrá pulsar cinco de los sensores, o la caída de corriente no les permitirá disparar (ya que todos están 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, ¿verdad?
Busqué, pero solo encontré información sobre cómo conectar un sensor al Arduino. Leí algo sobre el funcionamiento de motores de alto amperaje con Arduino suministrando 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é en preguntar aquí. ¡Gracias!
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 de bloques y consultar con el OEM. Eso sí, no sé si tienen el soporte adecuado para su pregunta, ya que se construyen en China.
Hobby Services 3002 N. Apollo Dr. Suite 1 Champaign, IL 61822 (217) 398-0007 Correo electrónico: hobbyservices@hobbico.com Dirección de Internet: www.supertigre.com
Parece que su carga ultrasónica es TTL, por lo que no hay problema para cambiar 5 al mismo tiempo con un BEC, pero me pregunto si ha considerado los efectos de la diafonía al disparar todo 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 fase con cancelaciones de reflexión como tener 5 tweeters dirigidos en una habitación. Leer la respuesta de cada eco en paralelo con un conteo de intervalos de tiempo no será un simple resultado de libro de texto con objetos no uniformes con 5 emisores.
Puede probar su diseño de matriz ortogonal con cualquier generador de impulsos de señal y observar la señal en un analizador lógico o alcance de puerto paralelo para asegurarse de que su diseño funcionará.
La unidad de potencia es la menor de sus preocupaciones con respecto a estos dispositivos de bajo consumo. Evitar el ruido de fuentes conducidas y radiadas será primordial y el diseño de la matriz de transpondedores debe ser lo primero. Dedicaría algo de tiempo a probar esta primera parte para identificar todas las fuentes de interferencia eléctricas, físicas, acústicas, EMI, térmicas, de vibraciones, tanto conducidas como radiadas, y cómo cada una afecta sus expectativas de SONAR con diferentes objetos. ¿Será microfónico con vibración o ruidos fuertes de pulso? ¿Qué tan bien rechaza otras fuentes de ultrasonido de ruido? ¿La salida TTL Echo cambiará en ancho de pulso con la intensidad de la señal o solo el tiempo de retardo?
¿Recibirá ecos del remitente incorrecto debido a los efectos de reflexión de las esquinas?
Me doy cuenta de que este es un hilo un poco viejo, pero... Tengo un par de estos, y el problema es que para "leer" el resultado usas un pulseIn, que "ata" el Arduino para el tiempo del eco.
Entonces, primero, debe poner un tiempo de espera en pulseIn, como unsigned long pulse_length = pulseIn(iEchoPin, HIGH, 9000); donde 9000 es 9000 microsegundos o 9 milisegundos, lo que equivale a unos 150 cm o 5 pies (velocidad del sonido, distancia recorrida 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 estar esperando un resultado de 1,000 milisegundos o 1,000,000 de microsegundos (y volver a 0 porque se agotó el tiempo de espera). Así que puse 9000us, eso me da 150 cm, que es suficiente para la ubicación de obstáculos.
Y, en segundo lugar, no puedo entender cómo leer ambos sensores al mismo tiempo, ya que mi Arduino solo hará un pulso a la vez, y el eco del segundo sensor ya ha regresado para entonces.
Y en tercer lugar, debe 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 obtendrá ecos falsos del primero (están enfrentados a unos 30 grados uno del otro).
La razón por la que estaba buscando aquí es que quería saber si podía usar el mismo pin de eco para múltiples sensores SR04 (o para el caso, también para múltiples sensores de distancia IR). Si activé 1 SR04, luego leí el pin de eco "combinado", entonces solo necesito 1 pin para leer cualquier cantidad de sensores, pero 1 pin para activar cada uno.
La otra opción es cambiar el pin a salida, enviar el disparador, luego cambiarlo a entrada y hacer el pulso y hacer que el mismo cable vaya a los pines de disparo y eco en la placa SR04. Voy a probar estos dos. Pero quería ver si alguien había hecho alguno de estos antes.
pjc50
mohdjas
pjc50
mohdjas
usuario18480